return

Ответ к задаче №МВ3.8

19 октября 2013, 13:08

Для проверки политик на R7 такие настройки:

router bgp 64504
network 130.0.0.0 mask 255.255.255.0
neighbor 100.0.0.5 remote-as 64500
neighbor 100.0.0.5 send-community
neighbor 100.0.0.5 route-map ISP out
!
route-map ISP permit 10
set community 64500:7 64500:50 64500:150 64500:500

Конфигурация R4:

ip community-list standard CLI deny 64500:50
ip community-list standard CLI deny 64500:100
ip community-list standard CLI deny 64500:150
ip community-list standard CLI deny 64500:1
ip community-list standard CLI deny 64500:2
ip community-list standard CLI deny 64500:3
ip community-list standard CLI permit internet

route-map CLIENTS permit 10
set comm-list CLI delete
set community 64501:300 64502:300 additive

router bgp 64500
neighbor AS64500 send-community
neighbor 100.0.0.6 route-map CLIENTS in

Конфигурация на примере R1:

ip community-list expanded ISP deny 64501:.* 64502:.*
ip community-list expanded ISP permit 64500:.*

route-map ISP_N permit 10
set comm-list ISP delete

router bgp 64500
neighbor 101.0.0.1 remote-as 64501
neighbor 101.0.0.1 send-community
neighbor 101.0.0.1 route-map ISP_N out

———Подробнее——-
На маршрутизаторах R1-R4, R7 настроено:

ip bgp-community new-format

и отправка community (на примере R4):

router bgp 64500
neighbor AS64500 send-community

Для проверки политик на R7 такие настройки:

router bgp 64504
bgp log-neighbor-changes
network 130.0.0.0 mask 255.255.255.0
neighbor 100.0.0.5 remote-as 64500
neighbor 100.0.0.5 send-community
neighbor 100.0.0.5 route-map ISP out
!
route-map ISP permit 10
set community 64500:7 64500:50 64500:150 64500:500

То есть, R7 отправляет на R4 префикс 130.0.0.0/24 с двумя community, которые определены в наших политиках 64500:50 и 64500:150 и с двумя значениями, которые не используются и должны отбрасываться.

Теперь на R4 маршрут 130.0.0.0/24 приходит с такими значениями community:

R4#sh ip bgp 130.0.0.0/24
BGP routing table entry for 130.0.0.0/24, version 7
Paths: (1 available, best #1, table default)
Advertised to update-groups:
20
Refresh Epoch 8
64504
100.0.0.6 from 100.0.0.6 (104.0.0.1)
Origin IGP, metric 0, localpref 100, valid, external, best
Community: 64500:7 64500:50 64500:150 64500:500

Выполним первую часть задания:
— все значения community приходящие от клиентов, которые не определены политикой, должны удаляться

Конфигурация выполняется на R4.
Сначала создаем community-list, который описывает разрешенные значения community. Так мы собираемся удалить все, кроме разрешенных, то исключаем разрешенные:

ip community-list standard CLI deny 64500:50
ip community-list standard CLI deny 64500:100
ip community-list standard CLI deny 64500:150
ip community-list standard CLI deny 64500:1
ip community-list standard CLI deny 64500:2
ip community-list standard CLI deny 64500:3
ip community-list standard CLI permit internet

Указываем в route-map, что будем удалять те community, которые указаны в строке permit в community-list:

route-map CLIENTS permit 10
set comm-list CLI delete

Применяем route-map к входящим обновлениям, которые получены от соседа:

router bgp 64500
neighbor AS64500 send-community
neighbor 100.0.0.6 route-map CLIENTS in

Проверяем. Теперь остались только разрешенные значения community:

R4#sh ip bgp 130.0.0.0/24
BGP routing table entry for 130.0.0.0/24, version 11
Paths: (1 available, best #1, table default)
Advertised to update-groups:
20
Refresh Epoch 8
64504
100.0.0.6 from 100.0.0.6 (104.0.0.1)
Origin IGP, metric 0, localpref 100, valid, external, best
Community: 64500:50 64500:150

Для проверки второй части задания добавляем несколько значений community в существующую route-map на R4:

route-map CLIENTS permit 10
set comm-list CLI delete
set community 64501:300 64502:300 additive

Теперь на R4:

R4#sh ip bgp 130.0.0.0/24
BGP routing table entry for 130.0.0.0/24, version 11
Paths: (1 available, best #1, table default)
Advertised to update-groups:
20
Refresh Epoch 8
64504
100.0.0.6 from 100.0.0.6 (104.0.0.1)
Origin IGP, metric 0, localpref 100, valid, external, best
Community: 64500:50 64500:150 64501:300 64502:300

Выполняем вторую часть задания:
— значения community, которые проставлены клиентами, должны удаляться, при передаче префиксов соседним вышестоящим AS. При этом не должны удаляться другие значения, которые проставлены маршрутизаторами нашей AS.

Конфигурация на примере R1:
Так как теперь нам нужно указать шаблон значения community, используем expanded community-list (опять будем отбрасывать те значения, которые совпадут с permit):

ip community-list expanded ISP deny 64501:.* 64502:.*
ip community-list expanded ISP permit 64500:.*

Применяем в route-map:

route-map ISP_N permit 10
set comm-list ISP delete

И route-map к обновлениям, которые отправляются R5:

router bgp 64500
neighbor 101.0.0.1 remote-as 64501
neighbor 101.0.0.1 send-community
neighbor 101.0.0.1 route-map ISP_N out

Проверяем на R5:

R5#sh ip bgp 130.0.0.0/24
BGP routing table entry for 130.0.0.0/24, version 74
Paths: (3 available, best #3, table default)
Advertised to update-groups:
1
Refresh Epoch 1
64503 64502 64500 64504
101.0.0.10 from 101.0.0.10 (103.0.0.1)
Origin IGP, localpref 100, valid, external
Refresh Epoch 1
64502 64500 64504
101.0.0.6 from 101.0.0.6 (6.6.6.6)
Origin IGP, localpref 100, valid, external
Refresh Epoch 2
64500 64504
101.0.0.2 from 101.0.0.2 (100.0.0.1)
Origin IGP, localpref 100, valid, external, best
Community: 64501:300 64502:300
like 0 views 6563 message 2

2 коментария

  • Наташа Самойленко

    Спасибо пользователю ulypka007 за ответы. Мы их удалили, чтобы дать возможность другим подумать.
    Ваши ответы были такими:

    На R2 аналогично.
    ip community-list 1 permit 64500:150 64500:100 64500:50 64500:1 64500:3

    route-map com64500
    match community 1
    set community no-export

    route-map com64500
    set community none

    neighbor 101.0.0.1 route-map com64500 in

    3 ноября 2013, 16:07
  • Наташа Самойленко

    Этот ответ не совсем верный, так как:
    — применен он на R1, к входящим обновлениям от AS 64501. А это не наш клиент, а наш апстрим. Даже если применить к клиентам, то:
    — в Вашем варианте получилось, что если клиенты нашей AS анонсируют сети с принятыми значениями community, то мы их сети никому выше не анонсим. А остальные значения затираем.

    3 ноября 2013, 16:18

Ещё статьи

Анонс подкаста. Выпуск 53 ///UPD: Эфир состоялся
Вы знаете, что с Синистером скучно не бывает. Все подкасты с участием АлександраВыпуск №6. Информационная безопасность и эпические атаки Выпуск №8. ИБ — Best Practices и лаборатории пентестинга Выпуск №16, ...
like 293 4839 0
4 июля 2017
LinkMeUp. Выпуск № Внеплановый. Объявление участников Основной Группы
Тема: CCIE за год Результаты отбора в Основную Группу. Интересная статистика. Принципы подготовки в рамках проекта. Анонс Q&A для проекта. Гости: Команда CCIE за год. Эмиль Гарипов. Наташа Самойленко. Дмитрий ...
like 229 8427 2
2 апреля 2016
АДСМ2. Дизайн сети
В первых двух статьях я поднял вопрос автоматизации и набросал её фреймворк, во второй сделал отступление в виртуализацию сети, как первый подход к автоматизации настройки сервисов. А теперь пришло время ...
like 481 18763 1
12 ноября 2019