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



Конфигурация R1:
router bgp 64500
no synchronization
bgp log-neighbor-changes
network 100.0.0.0 mask 255.255.254.0
neighbor AS64500 peer-group
neighbor AS64500 remote-as 64500
neighbor AS64500 update-source Loopback0
neighbor AS64500 next-hop-self
neighbor 2.2.2.2 peer-group AS64500
neighbor 3.3.3.3 peer-group AS64500
neighbor 4.4.4.4 peer-group AS64500
neighbor 101.0.0.1 remote-as 64501
neighbor 101.0.0.1 route-map LOCALPR in
no auto-summary
!
ip route 100.0.0.0 255.255.254.0 Null0
!
ip prefix-list VIP_RO permit 50.1.1.0/24
ip prefix-list VIP_RO permit 50.1.2.0/24
ip prefix-list VIP_RO permit 50.1.3.0/24
!
route-map LOCALPR permit 10
match ip address prefix-list VIP_RO
set local-preference 150
route-map LOCALPR permit 20


Конфигурация R2:
router bgp 64500
no synchronization
bgp log-neighbor-changes
network 100.0.0.0 mask 255.255.254.0
neighbor AS64500 peer-group
neighbor AS64500 remote-as 64500
neighbor AS64500 update-source Loopback0
neighbor AS64500 next-hop-self
neighbor 1.1.1.1 peer-group AS64500
neighbor 3.3.3.3 peer-group AS64500
neighbor 4.4.4.4 peer-group AS64500
neighbor 102.0.0.1 remote-as 64502
no auto-summary
!
ip route 100.0.0.0 255.255.254.0 Null0

Конфигурация R3:
router bgp 64500
no synchronization
bgp log-neighbor-changes
network 100.0.0.0 mask 255.255.254.0
neighbor AS64500 peer-group
neighbor AS64500 remote-as 64500
neighbor AS64500 update-source Loopback0
neighbor AS64500 next-hop-self
neighbor 1.1.1.1 peer-group AS64500
neighbor 2.2.2.2 peer-group AS64500
neighbor 4.4.4.4 peer-group AS64500
neighbor 113.0.0.1 remote-as 64513
neighbor 113.0.0.1 advertise-map ADV non-exist-map NON
neighbor 113.0.0.1 route-map LOCALPR in
no auto-summary
!
ip route 100.0.0.0 255.255.254.0 Null0
!
ip as-path access-list 10 permit ^64501
!
ip prefix-list LOCAL permit 100.0.0.0/23
ip prefix-list NON_PREFIX permit 103.0.0.0/22
ip prefix-list VIP_RO permit 50.1.1.0/24
ip prefix-list VIP_RO permit 50.1.2.0/24
ip prefix-list VIP_RO permit 50.1.3.0/24
!
route-map NON permit 10
match ip address prefix-list NON_PREFIX
match as-path 10
!
route-map ADV permit 10
match ip address prefix-list LOCAL
!
route-map LOCALPR permit 10
match ip address prefix-list VIP_RO
set local-preference 120

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

Для проверки политик на 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

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

На R3 и R4 надо настроить route-map, которая будет для маршрутов, которые пришли из AS64504, проставлять community no-export (что значит не анонсировать маршрут через EBGP):
route-map NO_EXP permit 10
set community no-export


Применяем route-map и настраиваем отправку community внутренним соседям:
На R4:
router bgp 64500
neighbor AS64500 send-community
neighbor 100.0.0.6 route-map NO_EXP in

На R3:
router bgp 64500
neighbor AS64500 send-community
neighbor 100.0.0.10 route-map NO_EXP in

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

На маршрутизаторах R1-R4:
router bgp 64500
bgp bestpath as-path ignore


Стандартная процедура выбора маршрута:
1 Максимальное значение weight (локально для маршрутизатора).
2 Максимальное значение local preference (для всей AS).
3 Предпочесть локальный маршрут маршрутизатора (next hop = 0.0.0.0).
4 Кратчайший путь через автономные системы. (самый короткий AS_PATH)
5 Минимальное значение origin code (IGP < EGP < incomplete).
6 Минимальное значение MED (распространяется между автономными системами).
7 Путь eBGP лучше чем путь iBGP.
8 Выбрать путь через ближайшего IGP-соседа.


Первая часть задания:
— маршрутизаторы R1 и R2 должны выбирать маршруты eBGP, а не iBGP, независимо от длины AS path
Для того чтобы маршрутизаторы дошли до этого пункта в процедуре выбора маршрута, надо чтобы все предыдущие пункты в выборе маршрута совпали. С помощью route-map можно установить одинаковые значения всех атрибутов и останется только уравнять AS path. Так как сделать это сложно, то проще отключить сравнение длины пути, с помощью команды bgp bestpath as-path ignore.

Аналогично и со второй частью задания:
— маршрутизаторы R3 и R4 внутри автономной системы должны выбирать маршруты на основании метрики OSPF.
Будем использовать ту же команду bgp bestpath as-path ignore. Надо выровнять значение всех атрибутов. И, так как все маршруты, которые приходят к R3 и R4, приходят по IBGP, то лучший маршрут будет выбираться по кратчайшему пути с точки зрения IGP.

Подробнее:
Например, до применения команды bgp bestpath as-path ignore, R1 выбирает маршрут к сети AS64502 через IBGP, через R2

R1#sh ip bgp
*>i 102.0.0.0/21 2.2.2.2 0 100 0 64502 i
* 101.0.0.1 0 64501 64502 i

Если применить команду bgp bestpath as-path ignore, то теперь R1 игнорирует длину AS path (а остальные атрибуты одинаковые) и выбирает маршрут EBGP:
R1#sh ip bgp
* i 102.0.0.0/21 2.2.2.2 0 100 0 64502 i
*> 101.0.0.1 0 64501 64502 i


Аналогично на R4. До применения bgp bestpath as-path ignore:
R4#sh ip bgp
* i 102.0.0.0/21 1.1.1.1 0 100 0 64501 64502 i
*>i 2.2.2.2 0 100 0 64502 i

После применения bgp bestpath as-path ignore:
R4#sh ip bgp
* i 102.0.0.0/21 2.2.2.2 0 100 0 64502 i
*>i 1.1.1.1 0 100 0 64501 64502 i

До применения bgp bestpath as-path ignore в нашей AS пакеты в AS64502 ходили так:



После применения bgp bestpath as-path ignore в нашей AS пакеты в AS64502 ходят так:

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

В этой задаче проблема в том, что при агрегировании префиксов, префикс анонсируется из AS 64503, как ее локальный. И исчезли AS, которые были в префиксах, объединенных в один суммарный.
Для того чтобы номера этих AS передавались с агрегированным префиксом, надо установить параметр as-set. Тогда, например, когда наша AS64500 получит агрегированный префикс, то она увидит свой номер в пути и отбросит его.

На R8:

router bgp 64503
aggregate-address 100.0.0.0 252.0.0.0 summary-only as-set

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

На маршрутизаторах R1-R4:
router bgp 64500
bgp maxas-limit 10


R4:

ip prefix-list MASK deny 0.0.0.0/0 ge 25
ip prefix-list MASK permit 0.0.0.0/0 le 32

router bgp 64500
neighbor 100.0.0.6 remote-as 64504
neighbor 100.0.0.6 prefix-list MASK in

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

R1:
router bgp 64500
neighbor 101.0.0.1 remote-as 64501
neighbor 101.0.0.1 remove-private-as


R2:
router bgp 64500
neighbor 102.0.0.1 remote-as 64502
neighbor 102.0.0.1 remove-private-as

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

На маршрутизаторе R7:

router bgp 64504
network 109.0.0.0 mask 255.255.255.0 backdoor

На маршрутизаторе R9:

router bgp 64509
network 104.0.0.0 mask 255.255.255.0 backdoor

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

Дело в том, что промежуточный маршрутизатор ничего не знает о маршрутах BGP (100.0.0.0/24 и 200.0.0.0/24) — он же не BGP-оратор. И поэтому когда R1 отправляет на него трафик для подсети 200.0.0.0, R2 его просто отбрасывает.

Задача №МВ3.9

Одним из наших клиентов стала крупная компания. Платят они нам довольно много, но тут возникла проблема с тем, что когда происходят какие-то проблемы с провайдером AS64501, то качество связи, которую обеспечивает линк с провайдером AS64502, не устраивает клиента. Главное для нашего клиента, хорошее качество связи к филиалам.
Так как клиент солидный, то пришлось установить пиринг с еще одним провайдером AS64513. Но он нам дорого обходится поэтому использовать его мы будем только когда провайдер AS64501 недоступен и только для этого важного клиента.
Задание:
Надо настроить работу сети таким образом, чтобы через провайдера AS64513 сеть клиента 150.0.0.0/24 анонсировалась только в том случае, если через провайдера AS64501 недоступна сеть 103.0.0.0/22 (она используется для проверки работы провайдера). Кроме того, от провайдера AS64513 нам надо принимать только сети филиалов клиента (50.1.1.0/24, 50.1.2.0/24, 50.1.3.0/24) и использовать их только если они недоступны через провайдера AS64501. Остальной трафик клиента будет ходить через AS64502.

Конфигурация: базовая.

Ответ будет опубликован позже.

Комментарии к задачам закрыты. Если у вас есть ответ или вопросы или вам просто не с кем поговорить на технические темы, пишите на адрес: natasha@linkmeup.ru.