next hop self что это

BGP next-hop

Материал из Xgu.ru

[править] Описание атрибута next-hop

Next-hop в BGP отличается от IGP протоколов. В BGP next-hop, как правило, указывает на eBGP-соседа, который отправил обновление в локальную автономную систему. Соответственно, для iBGP-маршрутизаторов, next-hop находится не в непосредственно присоединенной сети.

Для того чтобы полученный маршрут был выбран как лучший в таблице BGP и был помещён в таблицу маршрутизации, необходимо чтобы указанный next-hop был доступен. Проверка доступности next-hop фактически заставляет маршрутизатор дважды просматривать таблицу маршрутизации для того чтобы определить доступность пришедшего маршрута — это и называется рекурсивной маршрутизацией. Для того чтобы проверка доступности next-hop была пройдена, необходимо чтобы в IGP протоколе, который работает в локальной автономной системе, был маршрут к этому next-hop.

Если next-hop для определенного маршрута не доступен, то этот маршрут будет сохранен в таблице BGP, но он не может быть помещён а таблицу маршрутизации.

Изменение атрибута next-hop зависит от того какому соседу анонсируется маршрут — iBGP или eBGP:

[править] Third party next hop

next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что это

[править] Next-hop в Cisco

[править] next-hop-self

Изменение поведения по умолчанию атрибута next-hop для iBGP-соседа — все обновления для соседа отправлять с указанием в качестве next-hop локального маршрутизатора:

[править] next-hop-unchanged

Изменение поведения по умолчанию атрибута next-hop для eBGP-соседа — все обновления для соседа отправлять без изменения атрибута next-hop:

Источник

Применение команды next-hop-self и объявление зоны демилитаризации в Internet

Зоной демилитаризации (demilitarized zone – – DMZ) называют сеть с совместным доступом, лежащую между несколькими AS. IP-сеть, используемая в DMZ, может принадлежать или не принадлежать одной из AS, входящих в сеть DMZ. Как мы уже выяснили ранее, адрес ближайшего следующего узла, получаемый от узла EBGP, сохраняется внутри IBGP. Таким образом, для любого протокола IGP исключительно важно, чтобы был доступен IP-адрес, указанный в атрибуте NEXT_HOP сообщения UPDATE. Одна из возможностей обеспечить это условие — сделать подсеть DMZ частью IGP и объявлять эту подсеть в AS, как и любые другие. Другой способ заключается в «перекрывании» адреса следующего узла, т.е. принудительном задании IP-адреса соседнего граничного IBGP- маршрутизатора в качестве следующего ближайшего узла.

На рис. 6.19 маршрутизатор SJ получает обновление маршрутов с информацией о сети 128.213.1.0/24, где в качестве следующего ближайшего узла указан узел с адресом

1.1.1.1 (часть DMZ). Для того чтобы маршрутизатор SJ мог связаться с этим узлом, сеть

1.1.1.1 /24 должна быть объявлена внутри AS граничным маршрутизатором SF,

next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что это

Рис. 6.19. Применение параметра next-hop-self

Еше одно условие заключается в том, чтобы на маршрутизаторе SF был установлен параметр next-hop-self для обслуживания соединения IBGP с соседним маршрутизатором SJ. Таким образом, для всех EBGP-маршрутов следующим ближайшим узлом будет узел с адресом 2.2.2.2, который уже входит в IGP. Тогда маршрутизатор SJ без проблем может попасть в свой следующий ближайший узел.

Выбор того или иного метода зависит от необходимости попасть в сеть DMZ. В

качестве примера приведем команду ping, задаваемую оператором на интерфейс маршрутизатора внутри AS, который входит в DMZ. Для того чтобы команда ping была выполнена успешно, необходимо включить DMZ в IGP. В других случаях DMZ может быть доступна через какой-либо неоптимальный маршрут вне данной AS. Вместо того чтобы попасть в DMZ изнутри AS, маршрутизатор может попытаться воспользоваться другим EBGP-соединением. В этом случае применение команды next-hop-self обеспечивает возможность достижения ближайшего следующего узла изнутри AS. Во всех других случаях

оба метода обеспечивают нормальную работу по BGP.

Кроме того, важно отметить, что участники точек обмена трафиком в сети Internet часто требуют указания в качестве атрибута NEXT_HOP в сообщении UPDATE IP-адреса взаимодействующего узла и возводят это условие в ранг правила маршрутизации.

Источник

BGP: EBGP-Multihop, TTL Security Check, next-hop-self.

Рассмотрим две фичи BGP: Ebgp-multihop и TTL Security check.
В идеологии BGP ebgp соседи должны быть подключены непосредственно линком напрямую, то есть иметь 1 hop.
Но нам может понадобиться построить пиринг через loopback интерфейсы, и тогда уже не 1 хоп получается а более, что делать в этом случае?
Если мы пиримся по loopback, то нам нужно каким-то образом разнести эти лупбаки между роутерами, будет это статические маршруты, или через протокол IGP, не важно.
Я сделал через OSPF.

Я привел сразу вывод нескольких команд. Все настроено правильно, но почему состояние Idle, а не Established?

Idle нам говорит о том, что нет пиринга между соседями, TCP сессия не может быть установлена. Почему?

next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что это

next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что это

Вот тут как раз и есть то, о чем я говорил, хоп в EBGP должен быть один, а у нас по лупбекам, а это уже по одному на каждом из роутеров.

Давайте изменим значение hop, которое по умолчанию между EBGP пирами равно 1. Делаем это с помощью ebgp-multihop <1-254>. Нам нужно значение 2.

Прописываем на нейбора: neighbor 200.200.200.200 ebgp-multihop 2, соответственно с двух сторон, друг на друга.

next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что это

Теперь все заработало.

Значение мултихопа следует всегда выставлять правильно, а не просто максимальное значение, чтоб у злоумышленника не было возможности подключиться «издалека» и не сделать dos. Поэтому будьте внимательны.

В нашем случае, можно было вместо ebgp-multihop использовать neighbor 200.200.200.200 disable-connected-check, так мы не будем уменьшать TTL если хопы у нас внутри устройства (с физического интерфейса прыгаем на лупбек), TTL остается 1, но если пакет прыгает между разными устройствами, то тут все как обычно, TTL уменьшается.

ebgp-multihop работает только между EBGP пирами, но в BGP так же имеется возможность делать такую проверку и между iBGP.

Делается это по аналогии, но используется фича TTL Security Check.

neighbor 200.200.200.200 ttl-security hops 2

Работаем абсолютно точно так же.

С hop’ами разобрались. Теперь давайте разберемся с next-hop-self, что это и для чего нужно, и когда собственно применять.

Представим такую топологию:

next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что это

У нас все линки EBGP, за исключением одного, в AS2 у нас два роутера, соответственно между ними у нас линк IBGP.

Настраиваем по типовому плану, пиринги, анонсируем сети, и нам нужно чтоб с любого роутера были доступны все возможные сети.

Нас интересует AS2.1, AS2, AS1, приведу конфигурацию BGP каждого из них:

router bgp 1
no synchronization
bgp router-id 100.100.100.100
bgp log-neighbor-changes
network 1.1.2.0 mask 255.255.255.0
network 1.1.3.0 mask 255.255.255.0
network 1.1.100.0 mask 255.255.255.0
network 111.111.111.111 mask 255.255.255.255
neighbor 1.1.3.3 remote-as 3
neighbor 1.1.3.3 description AS3
neighbor 1.1.100.100 remote-as 100
neighbor 1.1.100.100 description AS100
neighbor 200.200.200.200 remote-as 2
neighbor 200.200.200.200 description toR2
neighbor 200.200.200.200 ebgp-multihop 2
neighbor 200.200.200.200 update-source Loopback1
no auto-summary

router bgp 2
no synchronization
bgp router-id 200.200.200.200
bgp log-neighbor-changes
network 1.1.2.0 mask 255.255.255.0
network 1.1.5.0 mask 255.255.255.0
network 222.222.222.222 mask 255.255.255.255
neighbor 1.1.5.2 remote-as 2
neighbor 100.100.100.100 remote-as 1
neighbor 100.100.100.100 description toR1
neighbor 100.100.100.100 ebgp-multihop 2
neighbor 100.100.100.100 update-source Loopback1
no auto-summary

router bgp 2
no synchronization
bgp log-neighbor-changes
network 1.1.5.0 mask 255.255.255.0
network 192.168.0.0
neighbor 1.1.5.1 remote-as 2
neighbor 1.1.5.1 description toR2
no auto-summary

Пиринги везде установились. Попробуем с AS2.1 запустить пинг на лупбек AS1:

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 111.111.111.111, timeout is 2 seconds:
…..
Success rate is 0 percent (0/5)

Попробуем тоже самое но с AS2:

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 111.111.111.111, timeout is 2 seconds:
.
Success rate is 100 percent (5/5), round-trip min/avg/max = 16/28/56 ms

Здесь все хорошо.
Давайте посмотрим таблицу роутинга на AS2.1:

AS2.1(config-router)#do sh ip route
Codes: C — connected, S — static, R — RIP, M — mobile, B — BGP
D — EIGRP, EX — EIGRP external, O — OSPF, IA — OSPF inter area
N1 — OSPF NSSA external type 1, N2 — OSPF NSSA external type 2
E1 — OSPF external type 1, E2 — OSPF external type 2
i — IS-IS, su — IS-IS summary, L1 — IS-IS level-1, L2 — IS-IS level-2
ia — IS-IS inter area, * — candidate default, U — per-user static route
o — ODR, P — periodic downloaded static route

Gateway of last resort is not set

222.222.222.0/32 is subnetted, 1 subnets
B 222.222.222.222 [200/0] via 1.1.5.1, 00:07:12
1.0.0.0/24 is subnetted, 2 subnets
B 1.1.2.0 [200/0] via 1.1.5.1, 00:07:12
C 1.1.5.0 is directly connected, FastEthernet1/0
C 192.168.0.0/24 is directly connected, Loopback0

мы не видим чтоб что-то приходило из EBGP к нам, а посмотрим-ка мы BGP table:

Network Next Hop Metric LocPrf Weight Path
*>i1.1.2.0/24 1.1.5.1 0 100 0 i
* i1.1.3.0/24 100.100.100.100 0 100 0 1 i
* i1.1.5.0/24 1.1.5.1 0 100 0 i
*> 0.0.0.0 0 32768 i
* i1.1.100.0/24 100.100.100.100 0 100 0 1 i
* i10.0.3.0/24 100.100.100.100 0 100 0 1 3 i
* i111.111.111.111/32
100.100.100.100 0 100 0 1 i
*> 192.168.0.0 0.0.0.0 0 32768 i
*>i222.222.222.222/32
1.1.5.1 0 100 0 i
AS2.1(config-router)#

И что мы видим? Все то, что приходит к нам по EBGP, имеет NEXT_HOP того EBGP пира, который нам отдаем маршруты, мы как IBGP пир к AS1 ничего не знаем об этом NEXT_HOP, соответственно для нас он недостижим, и в таблицу роутинга ничего не попадает.
Чтоб все это починить, нам нужно менять NEXT_HOP при попадании маршрута на адрес AS2, делается это с помощью переписывания атрибута next-hop-self, который вешается на соседа, таким образом:

AS2(config-router)#neighbor 1.1.5.2 next-hop-self

Теперь давайте посмотрим, что изменилось у нас.

Network Next Hop Metric LocPrf Weight Path
*>i1.1.2.0/24 1.1.5.1 0 100 0 i
*>i1.1.3.0/24 1.1.5.1 0 100 0 1 i
* i1.1.5.0/24 1.1.5.1 0 100 0 i
*> 0.0.0.0 0 32768 i
*>i1.1.100.0/24 1.1.5.1 0 100 0 1 i
*>i10.0.3.0/24 1.1.5.1 0 100 0 1 3 i
*>i111.111.111.111/32
1.1.5.1 0 100 0 1 i
*> 192.168.0.0 0.0.0.0 0 32768 i
*>i222.222.222.222/32
1.1.5.1 0 100 0 i
AS2.1(config-router)#

Все необходимые next_hop изменились на внутренние.
Попробуем ping:

AS2.1(config-router)#do ping 111.111.111.111

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 111.111.111.111, timeout is 2 seconds:
.
Success rate is 100 percent (5/5), round-trip min/avg/max = 36/41/48 ms
AS2.1(config-router)#

Все работает. Наша топология полностью рабочая.
Не забываем о таком важном параметре как NEXT_HOP когда у нас есть ibgp пиры, и нужен доступ к сетям, которые приходят по EBGP.

Источник

Принципы работы протокола BGP

Сегодня мы рассмотрим протокол BGP. Не будем долго говорить зачем он и почему он используется как единственный протокол. Довольно много информации есть на этот счет, например тут.

Итак, что такое BGP? BGP — это протокол динамической маршрутизации, являющийся единственным EGP( External Gateway Protocol) протоколом. Данный протокол используется для построения маршрутизации в интернете. Рассмотрим как строится соседство между двумя маршрутизаторами BGP.

next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что это
Рассмотрим соседство между Router1 и Router3. Настроим их при помощи следующих команд:

Соседство внутри одной автономной системы — AS 10. После ввода данных на маршрутизаторе, например на Router1, данный маршрутизатор пытается настроить отношения соседства с маршрутизатором Router3. Начальное состояние, когда ничего не происходит называется Idle. Как только будет настроен bgp на Router1, он начнет слушать TCP порт 179 — перейдет в состояние Connect, а когда пытается открыть сессию с Router3, то перейдет в состояние Active.

После того, как сессия установится между Router1 и Router3, то происходит обмен Open сообщениями. Когда данное сообщение отправит Router1, то данное состояние будет называться Open Sent. А когда получит Open сообщение от Router3, то перейдет в состояние Open Confirm. Рассмотрим более подробно сообщение Open:

next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что это
В данном сообщение передается информация о самом протоколе BGP, который использует маршрутизатор. Обмениваясь Open сообщениями, Router1 и Router3 сообщают друг другу информацию о своих настройках. Передаются следующие параметры:

Для установления соседства необходимо выполнения следующих условий:

next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что это

Здесь указывают сети, о которых сообщает Router1 и Path attributes, которые являются аналогом метрик. О Path attributes мы поговорим более подробно. Также внутри TCP сессии передаются Keepalive сообщения. Они передаются, по умолчанию, каждые 60 секунд. Это Keepalive Timer. Если в течении Hold Timer-а не будет получено Keepalive сообщение, то это будет означать потерю связи с соседом. По умолчанию, он равен — 180 секундам.

next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что это

Вроде бы разобрались как маршрутизаторы передают друг другу информацию, теперь попытаемся разобраться с логикой работы протокола BGP.

Чтобы анонсировать какой-нибудь маршрут в таблицу BGP, как и в протоколах IGP, используется команда network, но логика работы отличается. Если в IGP, после указание маршрута в команде network, IGP смотрит — какие интерфейсы принадлежат данной подсети и включает их в свою таблицу, то команда network в BGP смотрит в таблицу маршрутизации и ищет точное совпадение с маршрутом в команде network. При нахождении таких, данные маршруты попадут в таблицу BGP.

Look for a route in the router’s current IP routing table that exactly matches the parameters of the network command; if the IP route exists, put the equivalent NLRI into the local BGP table.

Теперь поднимем BGP на всех оставшихся и посмотрим как происходит выбор маршрута внутри одной AS. После того, как BGP маршрутизатор получит маршруты от соседа, то начинается выбор оптимального маршрута. Здесь надо понять какого вида соседи могут быть — внутренние и внешние. Маршрутизатор по конфигурации понимает является ли сконфигурированный сосед внутренним или внешним. Если в команде:

в качестве параметра remote-as указан AS, который сконфигурирован на самом маршрутизаторе в команде router bgp 10. Маршруты, пришедшие из внутренней AS считаются внутренними, а маршруты из внешней соответственно внешними. И по отношению к каждому работает разная логика получения и отправки. Рассмотрим такую топологию:

next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что это

На каждом маршрутизаторы настроен loopback интрефейс с ip: x.x.x.x 255.255.255.0 — где x номер маршрутизатора. На Router9 у нас есть loopback интерфейс с адресом — 9.9.9.9 255.255.255.0. Его мы будем анонсировать по BGP и посмотрим как он распространяется. Данный маршрут будет передан на Router8 и Router12. С Router8 данный маршрут попадет на Router6, но на Router5 в таблице маршрутизации его не будет. Также и на Router12 данный маршрут попадет в таблицу, но на Router11 его также не будет. Попытаемся разобраться с этим. Рассмотрим какие данные и параметры передается Router9 своим соседям, сообщая об этом маршруте. Пакет внизу будет отправлен с Router9 на Router8.

next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что это
Информация о маршруте состоит из аттрибутов пути (Path attributes).

Атрибуты пути разделены на 4 категории:

Атрибут Origin — указывает на то, каким образом был получен маршрут в обновлении. Возможные значения атрибута:

Далее, Next-hop. Атрибут Next-hop

Теперь Router6 передал маршрут Router5 и первому правилу Next-hop не изменил. То есть, Router5 должен добавить 9.9.9.0 [20/0] via 192.168.68.8, но у него нет маршрута до 192.168.68.8 и поэтому данный маршрут добавлен не будет, хотя информация о данном маршруте будет храниться в таблице BGP:

Та же самая ситуация произойдет и между Router11-Router12. Чтоб избежать такой ситуации необходимо настроить, чтоб Router6 или Router12, передавая маршрут своим внутренним соседям, подставляли в качестве Next-hop свой ip адрес. Делается при помощи команды:

После данной команды, Router6 отправит Update сообщение, где для маршрутов в качества Next-hop будет указан ip интерфейса Gi0/0 Router6 — 192.168.56.6, после чего данный маршрут уже попадет в таблицу маршрутизации.

Пойдем дальше и посмотрим появиться ли этот маршрут на Router7 и Router10. В таблице маршрутизации его не окажется и мы могли бы подумать, что проблема как в первом с параметром Next-hop, но если мы посмотрим вывод команды show ip bgp, то увидим, что там маршрут не был получен даже с неправильным Next-hop, что означает, что маршрут даже не передавался. И это нас приведет к существованию еще одного правила:

Маршруты, полученные от внутренних соседей не передаются другим внутренним соседям.

Так как, Router5 получил маршрут от Router6, то другому своему внутреннему соседу он передаваться не будет. Для того, чтобы передача произошла необходимо настроить функцию Route Reflector, либо настроить полносвязные отношения соседства ( Full Mesh), то есть Router5-7 каждый будет соседом с каждым. Мы будем в данном случае использовать Route Reflector. На Router5 необходимо использовать данную команду:

Route-Reflector меняет поведение BGP при передаче маршрута внутреннему соседу. Если внутренний сосед указан как route-reflector-client, то данным клиентам будут анонсироваться внутренние маршруты.

Маршрут не появился на Router7? Не забываем также и про Next-hop. После данных манипуляций маршрут должен и на Router7, но этого не происходит. Это нас подводит к еще одному правилу:

Правило next-hop работает только для External маршрутов. Для внутренних маршрутов замена атрибута next-hop не происходит.

И мы получаем ситуацию, в которой необходимо создать среду при помощи статичной маршрутизации или протоколов IGP сообщить маршрутизаторам о всех маршрутах внутри AS. Пропишем статические маршруты на Router6 и Router7 и после этого получим нужный маршрут в таблице маршрутизаторе. В AS 678 же мы поступим немного иначе — пропишем статические маршруты для 192.168.112.0/24 на Router10 и 192.168.110.0/24 на Router12. Далее, установим отношения соседства между Router10 и Router12. Также настроим на Router12 отправку своего next-hop для Router10:

Итогом будет то, что Router10 будет получать маршрут 9.9.9.0/24, он будет получен и от Router7 и от Router12. Посмотрим какой выбор сделает Router10:

Как мы видим, два маршрута и стрелка ( > ) означает, что выбран маршрут через 192.168.112.12.
Посмотрим как происходит процесс выбора маршрута:

Теперь все маршруты от данного соседа будут иметь такой вес. Посмотрим как изменится выбор маршрута после данной манипуляции:

Но как видим один маршрут через Router6. А где же маршрут через Router7? Может и на Router7 его нет? Смотрим:

Странно, вроде все в порядке. Почему же он не передается на Router5? Все дело в том, что у BGP есть правило:

Маршрутизатор передает только те маршруты, которые использует сам.

Router7 используется маршрут через Router5, поэтому маршрут через Router10 передаваться не будет. Вернемся к Local Preference. Давайте зададим Local Preference на Router7 и посмотрим как отреагирует на это Router5:

Итак, мы создали route-map, в который попадаются все маршруты и сказали Router7, чтоб при получение он менял параметр Local Preference на 250, по умолчанию равен 100. Смотрим, что произошло на Router5:

Посмотрим, что произойдет, если допустим Router6 потеряет маршрут 9.9.9.0/24 через Router9. Отключим интерфейс Gi0/1 Router6, который сразу поймет, что BGP сессия с Router8 оборвана и сосед пропал, а значит и маршрут, полученные от него не действительны. Router6 сразу отправляет Update сообщения, где указывает сеть 9.9.9.0/24 в поле Withdrawn Routes. Как только Router5 получит подобное сообщение, отправит его к Router7. Но так как у Router7 есть маршрут через Router10, то в ответ сразу отправит Update c новым маршрутом. Если детектировать падения соседа по состоянию интерфейса не получается, то придеться ждать срабатывания Hold Timer-а.

Если помните, то мы говорили о том, что часто приходится использовать полносвязную топологию. С большим количеством маршрутизаторов в одной AS это может доставить большие проблемы, чтоб избежать этого необходимо использовать конфедерации. Одна AS разбивается на несколько sub-AS, что позволяет работать им без требования полносвязной топологии.

next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что это

Здесь ссылка на данную лабу, а тут конфигурация для GNS3.

Пришлось бы настраивать Route-Reflector или полносвязые отношения соседства. Разбивая одну AS 2345 на 4 sub-AS ( 2,3,4,5) для каждого маршрутизатора, мы в итоге получаем другую логику работы. Все отлично описано здесь.

Источник

Что такое IBGP?

Начнём с того, что вообще такое Internal BGP. По сути это тот же самый BGP, но внутри AS. Он даже настраивается практически так же.
Основных применения два:
Резервирование. Когда есть несколько линков к провайдерам и не хочется замыкать всё на одном своём граничном маршрутизаторе (т.н. бордере (от старославянского border — граница), ставится несколько маршрутизаторов, а между ними поднимается IBGP для того, чтобы на них всегда была актуальная информация обо всех маршрутах. next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что этоВ случае проблем у провайдера ISP2 R2 будет знать о том, что те же самые сети доступны через ISP1. Об этом ему сообщит R1 по IBGP.
Подключение клиентов по BGP. Если стоит задача подключить клиента по BGP, при этом у вас больше, чем один маршрутизатор, без IBGP не обойтись. next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что этоЧтобы R4 передал Клиенту1 Full View, он должен получить его по IBGP от R1 или R2.
Повторимся, EBGP используется между Автомномными Системами, IBGP — внутри.

Различия IBGP и EBGP

1) Главная тонкость, которая появляется при переходе внутрь Автономной Системы и откуда растут ноги почти всех отличий — петли. В EBGP мы с ними справлялись с помощью AS-Path. Если в списке уже был номер собственной AS, то такой маршрут отбрасывался.
Но, как вы помните, при передаче маршрута внутри Автономной Системы AS-Path не меняется. Вместо этого в IBGP прибегают к хитрости: используется полносвязная топология — все соседи имеют сессии со всеми — Full Mesh.
При этом маршрут, полученный от IBGP-соседа не анонсируется другим IBGP-соседям.
Это позволяет на всех маршрутизаторах иметь все маршруты и при этом не допустить петель.
Поясним на примерах.
Как это могло бы быть в такой топологии, например, если не использовать технологию избежания петель: next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что этоR1 получил анонс от EBGP-соседа, передал его R2, тот передал R3, R3 передал R4. Вроде, все молодцы, все знают, где находится сеть Интернет. Но R4 передаёт этот анонс обратно R1. next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что этоR1 получил маршрут от R4, и он по выгодности точно такой-же, как оригинальный от ISP — AS-Path-то не менялся. Поэтому в качестве приоритетного может выбраться даже новый маршрут от R4, что, естественно, неразумно: мало того, что маршруты будут изучены неверно, так и трафик в итоге может заloopиться и не попадёт к точке назначения. next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что этоВ случае же полносвязной топологии и правила Split Horizon, такая ситуация исключается. R1, получив анонс от ISP1, передаёт его сразу всем своим соседям: R2, R3, R4. А те в свою очередь эти анонсы сохраняют, но передают только EBGP-партнёрам, но не IBGP, именно потому, что получены от IBGP-партнёра. То есть все BGP-маршрутизаторы имеют актуальную информацию и исключены петли. next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что этоПричём, не имеет значение, подключены соседи напрямую или через промежуточные маршрутизаторы. Так, например, на вышеприведённой схеме R1 не имеет связи с R3 напрямую — они общаются через R2, однако это не мешает им установить TCP-сессию и поверх неё BGP.

Понятие Split Horizon тут применяется в более широком смысле. Если в RIP это означало «не отсылать анонсы обратно в тот интерфейс, откуда они пришли», в IBGP это означает «не отсылать анонсы от IBGP-партнёров другим IBGP-партнёрам

2) Вторая тонкость — адрес Next Hop. В случае External BGP маршрутизатор при отправке анонса своему EBGP-соседу сначала меняет адрес Next-Hop на свой, а потом уже отсылает. Вполне логичное действие. next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что этоВот как анонс сети 103.0.0.0/22 выглядит при передаче от R5 к R1:
next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что это Если же маршрутизатор передаёт анонс IBGP-соседу, то адрес Next-Hop не меняется. Хм. Непонятно. Почему? Это расходится с привычным пониманием DV-протокола маршрутизации.
Вот тот же анонс при передаче от R1 r R2:
next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что это Дело в том, что здесь понятие Next-Hop отличается от того, которое используется в IGP. В IBGP он сообщает о точке выхода из локальной AS. next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что этоИ тут возникает ещё один момент — важно, чтобы у получателя такого анонса был маршрут до Next-Hop — это первое, что проверяется при выборе лучшего маршрута. Если его не будет, то маршрут будет помещён в таблицу BGP, но его не будет в таблице маршрутизации.
Такой процесс называется рекурсивной маршрутизацией.
То есть, чтобы R2 мог отправлять пакеты ISP1 он должен знать, как добраться до адреса 101.0.0.1, который в данной схеме и является Next-Hop’ом для сети 103.0.0.0/22.
В принципе, практически всё оборудование даёт возможность менять адрес Next-Hop на свой при передаче маршрута IBGP-соседу.
На циске это делается командой «neighbor XYZ Next-Hop-self«. Позже вы увидите, как это применяется на деле.
3) Третий момент: если в EBGP обычно подразумевается прямое подключение двух соседей друг к другу, то в Internal BGP соседи могут быть подключены через несколько промежуточных устройств.

На самом деле в EBGP также можно настраивать соседей, которые находятся за несколько хопов друг от друга и это на самом деле практикуется, например, в случае настройки Inter-AS Option C. Называется это дело MultiHop BGP и включается командой «neighbor XYZ ebgp-multihop» в режиме конфигурации BGP.
Но для IBGP это работает по умолчанию.

Это позволяет устанавливать IBGP-партнёрство между Loopback-адресами. Делается это для того, чтобы не привязываться к физическим интерфейсам — в случае падения основного линка, BGP-сессия не прервётся, потому что лупбэк будет доступен через резервный.
Это самая распространённая практика.
При этом EBGP однако обычно устанавливается на линковых адресах, потому что как правило имеется только одно подключение и в случае его падения, всё равно Loopback будет не доступен. Да и настраивать ещё какую-то дополнительную маршрутизацию с провайдером не очень-то хочется.
Пример конфигурации такого соседства: next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что это===================== next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что этоЗадача № 1 Схема: next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что этоВ таком сценарии у нас два BGP-маршрутизатора R1 и R3, но они находятся в разных концах города и подключены через промежуточный маршрутизатор, на котором BGP не настроен.
Условие:
IBGP-сессия прекрасно установится, несмотря даже на то, что на промежуточном маршрутизаторе BGP не включен, и мы видим даже маршруты: next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что этоНо где пинг? next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что этоПодробности задачи тут.
=====================
Вам нужно стараться избегать таких ситуаций, когда между IBGP-соседями будут не-BGP маршрутизаторы.

Вообще-то есть механизм, позволяющий если не исправить, то по крайней мере предупредить такую ситуацию, — IGP Synchronization. Он не позволит добавить маршрут в таблицу, если точно такой же маршрут не известен через IGP. Это в какой-то мере гарантирует, что на промежуточных устройствах, независимо от того, активирован на них BGP или нет, будут нужные маршруты. Но я не знаю тех десперадо, которые решились включить IGP Synchronization.
Во-первых, каким образом такие маршруты попадут в IGP? Только редистрибуцией. Теперь представьте себе, как Full View медленно наполняет LSDB OSPF, проникая в отдалённые уголки памяти и заставляя процессор до изнеможения выискивать кратчайшие маршруты. Хотите ли вы этого? А, во-вторых, вытекающее из «во-первых», по умолчанию, IGP-synchronization выключен практически на всех современных маршрутизаторах.

=====================
next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что этоЗадача № 2 Между AS64504 и AS64509 появился линк, который связывает их напрямую. Обе сети использовали OSPF и без проблем объединили сеть в одно целое. Но, после проверки, оказалось, что трафик ходит через AS64500, а не напрямую от AS64504 к AS64509, через OSPF.
Изменить конфигурацию BGP:
— R7 должен использовать OSPF, если трафик идет в сеть 109.0.0.0/24
— R9 должен использовать OSPF, если трафик идет в сеть 104.0.0.0/24
Подробности задачи тут
=====================

Практика BGP

Давайте теперь вернёмся к сети linkmeup и попробуем запустить BGP в ней.
Схема будет следующей (по клику более подробная с интерфейсами и IP-адресами): next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что это Как видите, мы её значительно видоизменили. Отказались от именования устройств по геолокации и функциям, изменили адресацию в угоду удобства запоминания и понимания.
Маршрутизаторы будем называть RX, ликновая подсеть между маршрутизаторами RX и RY назначается следующим образом: 10.0.XY.0/24. Адреса соответственно 10.0.XY.X у RX и 10.0.XY.Y у RY.
Сверху всё осталось также, как было в основной статье по BGP.
А снизу добавился наш первый коммерческий клиент, который подключился по BGP.
=====================
next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что этоЗадача № 3
Наш новый клиент AS 64504 подключен к нашей сети. И в дальнейшем планирует подключение к другому провайдеру и у него уже есть свой PI-блок адресов. Но на данном этапе, есть подключение только к нашей AS и поэтому клиент может использовать приватный номер AS.
Задание: При анонсе сети клиента вышестоящим провайдерам, удалить номер приватной AS64504.
Конфигурация и схема: базовые.
Подробности задачи тут.
=====================

Я думаю, не стоит останавливаться на настройке и работе EBGP — мы сделали это в прошлой статье.
Просто для примера приведём конфигурацию сессии с новым клиентом:
R4

Тут всё просто и понятно, после настройки всех внешних соседей мы будем иметь такую ситуацию: next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что это

next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что это
next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что этоnext hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что это

Каждый BGP маршрутизатор знает только о тех сетях, которые получены им непосредственно от EBGP-соседа.

Теперь обратимся к настройке маршрутизаторов нашей AS с точки зрения IBGP.
Во-первых, как мы говорили ранее, IBGP обычно устанавливается между Loopback-интерфейсами для повышения доступности, поэтому в первую очередь создадим их:
На всех маршрутизаторах на интерфейсе Loopback0 настраиваем IP-адрес X.X.X.X, где Х — номер маршрутизатора (это исключительно для примера и не вздумайте такое делать на реальной сети):
R1

Они станут Router ID и для OSPF и для BGP.
Кстати, об OSPF. Как правило, IBGP «натягивается» поверх существующего на сети IGP. IGP обеспечивает связность всех маршрутизаторов между собой по IP, быструю реакцию на изменения в топологии и перенос маршрутной информации о внутренних сетях.

Настройка внутренней маршрутизации. OSPF

Собственно к этому и перейдём.
Наша задача, чтобы все знали обо всех линковых подсетях, адресах Loopback-интерфейсов и, естественно, о наших белых адресах.
Конфигурация OSPF:
R1

После этого появляется связность со всеми Loopback-адресами. next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что это

Настраиваем BGP

На каждом узле нужно настроить всех соседей вручную:
R1

Команда вида neighbor 2.2.2.2 remote-as 64500 объявляет соседа и сообщает, что он находится в AS 64500, BGP понимает, что это та же AS, в которой он сам работает и далее считает 2.2.2.2 своим IBGP-партнёром.
Команда вида neighbor 2.2.2.2 update-source Loopback0 сообщает, что соединение будет устанавливаться с адреса интерфейса Loopback. Дело в том, что на другой стороне (на 2.2.2.2) сосед настроен, как 1.1.1.1 и именно с этого адреса ждёт все BGP-сообщения.
Такую настройку применяем на всех узлах нашей AS:
R2

Сейчас мы можем проверить, что отношения соседства установились благополучно next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что этоВсе маршруты есть в нашей таблице BGP.
Сеть 130.0.0.0/24 видно на R1: next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что этоСеть 103.0.0.0/22 видно на R4: next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что этоПора проверить сквозной пинг c R7 (нашего клиента) в Интернет (103.0.0.1)? next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что этоПриехали.
Не будем долго мучить читателя и сразу посмотрим в таблицу маршрутизации, R4. next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что этоА на R7 при этом: next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что этоА? Где мои маршруты? Где все мои маршруты? R4 ничего не знает про сети Балаган-Телекома, Филькина Сертификата, Интернета, соответственно нет их и на R7.
Помните, мы выше говорили про Next-Hop? Мол, он не меняется при передаче по IBGP?
Обратите внимание на Next-Hop полученных R4 маршрутов: next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что этоНесмотря на то, что они пришли на R4 от R1 и R2, адреса Next-Hop на них стоят R5 и R6 — то есть не менялись.
Это значит, что трафик в сеть 103.0.0.0/22 R4 должен отправить на адрес 101.0.0.1, ну, либо на 102.0.0.1. Где они в таблице маршрутизации? Нету их в таблице маршрутизации. Ну, и это естественно — откуда им там взяться.
Для решения этой проблемы у нас есть 3 пути:
1) Настроить статические маршруты до этих адресов — то ещё удовольствие, даже если это шлюз последней надежды.
2) Добавить эти интерфейсы (в сторону провайдеров) в домен IGP-маршрутизации. Тоже вариант, но, как известно, внешние сети не рекомендуется добавлять в IGP.
3) Менять адрес Next-Hop при передаче IBGP-соседям. Красиво и масштабируемо. А ситуации, которая нам помешает это реализовать, просто не может быть.
В итоге добавляем в BGP ещё такую команду: neghbor 2.2.2.2 Next-Hop-self. Для каждого соседа, на каждом узле.
После этого мы видим следующую ситуацию, next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что этоА уж, как добраться до адреса 1.1.1.1 — мы знаем благодаря OSPF: next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что этоКак видите в таблице R7 уже появилась все интересные нам сети. next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что этоТеперь пинг успешной проходит: next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что этоnext hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что это

Очень простой вопрос: откуда такие гигантские задержки в трассировке? А ещё часто и такая ситуация бывает: next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что это

Конфигурация устройств
=====================
next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что этоЗадача № 4 Необходимо настроить такие правила работы с соседними AS:
— от всех соседних AS принимаются префиксы только если в них количество автономных систем в пути не более 10 (в реальной жизни порядок этого значения может быть около 100). — все префиксы, которые принимаются от клиентов, должны быть с маской не более 24 бит.
Конфигурация и схема: базовые.
Подробности задачи тут.
=====================

Что мы можем улучшить?

Разумеется, процесс настройки BGP. Всё-таки это трудозатраты — сделать весьма похожие настройки на каждом узле. Для упрощения вводится понятие peer-group, которая исходя из названия позволяет объединять соседей в группы и одной командой задавать нужные параметры сразу всем.
Дабы не быть голословными, внедрим это на нашей сети:
R1

Команда neighbor AS64500 peer-group создаёт группу соседей AS64500.
Команда neighbor AS64500 remote-as 64500 сообщает, что все соседи находятся в AS 64500.
Команда neighbor AS64500 update-source Loopback0 указывает, что со всеми соседями соединение будет устанавливаться с адреса Loopback-интрефейса.
Команда neighbor AS64500 Next-Hop-self заставляет маршрутизатор менять адрес Next-Hop на свой при передаче анонсов всем соседям.
Дальше, собственно, мы добавляем соседей в эту группу.
Причём мы можем запросто копировать команды конфигурации группы соседей на другие маршрутизаторы, меняя только адреса соседей.

Пара замечаний по Peer-group:
1) Для всех участников группы политики должны быть идентичны.
2) На самом деле cisco уже давно использует динамические Update-группы. Это позволяет сэкономить ресурсы процессора, так как обработка проводится не по разу на каждого члена группы, а один раз на всю группу. Фактические Peer-группы только облегчают конфигурацию, а оптимизация отдана на откуп Update-групп.

Наверняка, у молодых зелёных инженеров возник вопрос: почему нельзя информацию про публичные адреса передавать по IBGP? Он же, вроде бы, для этого и предназначен? И даже более общий вопрос, почему нельзя обойтись вообще одним BGP, без OSPF или IS-IS, например? (Нет, серьёзно, на форумах иногда вскипают холивары на тему BGP vs OSPF). Ну, по сути ведь тоже протокол маршрутизации — какая разница, передавать информацию между AS или между маршрутизаторами — есть же Internal BGP.
На это я хочу сказать, что достаточно вам будет поработать немного с BGP на реальной сети, чтобы понять всю безумность такой затеи.
Самое главное препятствие — Full Mesh. Придётся устанавливать соседство со всеми всеми маршрутизаторами вручную. OMG, мне дороги моя жизнь и здоровье. (Да, даже не смотря на наличие Route Reflector’ов и скриптов — это лишние операции)
Другая проблема — медленная реакция и Дистанционно-Векторный подход к распространению маршрутной информации.
Да и тут можно резонно возразить, что, дескать, существует BFD. Однако он уменьшит время обнаружение проблемы, но сходимость/восстановление связности всё равно будет медленным.
Третий тонкий момент — отсутствие возможности автоматического изучения соседей. Что ведёт к ручной их конфигурации.
Из всего вышеуказанного вытекают проблемы масштабируемости и обслуживания.
Просто попробуйте сами использовать BGP вместо IGP на сети из 10 маршрутизаторов, и всё станет ясно.
То же самое касается и распространения белых адресов — IBGP с этим справится, но на каждом маршрутизаторе придётся вручную прописывать все подсети.
Ну например, наша сеть 100.0.0.0/23. Допустим, к маршрутизатору R3 подключены 3 клиента по линковым адресам: 100.0.0.8/30, 100.0.0.12/30 и 100.0.0.16/0.
Так вот эти 3 подсети вам нужно будет ввести в BGP тремя командами network, в то время как в IGP достаточно активировать протокол на интерфейсе.
Можно, конечно, прибегнуть к хитрой редистрибуции маршрутов из IGP, но это попахивает уже костылями и ещё менее прозрачной конфигурацией.
К чему всё это мы ведём? eBGP — протокол маршрутизации, без дураков. В то же время iBGP — не совсем. Он больше похож на приложение верхнего уровня, организующее распространение маршрутной информации по всей сети. В неизменном виде, а не сообщая при каждой итерации соседу «вон туда через меня». У IGP такое поведение тоже иногда встречается, но там это исключение, а тут — норма. Я хочу подчеркнуть ещё раз, IGP и IBGP работают в паре, в связке, каждый из них выполняет свою работу.
IGP обеспечивает внутреннюю IP-связность, быструю (читай мгновенную) реакцию на изменения в сети, оповещение всех узлов об этом как можно быстрее. Он же знает о публичных адресах нашей AS.
IBGP занимается обработкой Интернетных маршрутов в нашей AS и их транзитом от Uplink’a к клиентам и обратно. Обычно он ничего не знает о структуре внутренней сети.
Если вам пришёл в голову вопрос «что лучше BGP или IS-IS?» — это хорошо, значит у вас пытливый ум, но вы должны отчётливо понимать, что верный ответ тут только один — это принципиально разные вещи, их нельзя сравнивать и выбирать мисс “технология маршрутизации 2013”. IBGP работает поверх IGP.

=====================
next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что этоЗадача № 5 Вышестоящая AS 604503 агрегирует несколько сетей, в том числе и нашу, в один диапазон 100.0.0.0/6. Но этот суммарный префикс вернулся в нашу автономную систему, хотя и не должен был. Настроить R8 так, чтобы агрегированный префикс не попадал в таблицу BGP маршрутизаторов, которые анонсируют подсети этого префикса. Не использовать фильтрацию для этого.
Конфигурация и схема: базовые.
Подробности задачи тут.
=====================

Проблема Эн квадрат

На этом месте тему IBGP можно было бы закрыть, если бы не одно «НО» — Full Mesh. Мы говорили о проблемах полносвязной топологии, когда обсуждали OSPF. Там выходом являлись DR — Designated Router, позволяющие сократить количество связей между маршрутизаторам с n*(n-1)/2 до n-1. Но, если в случае OSPF такая топология была, скорее, исключением, потому что больше 2-3 маршрутизаторов в одном L2-сегменте бывает довольно редко, то для IBGP — это самая обычная практика. У «больших» счёт BGP-маршрутизаторов внутри AS идёт на десятки. А уже для 10 устройств на каждом узле нужно будет прописать 9 соседей, то есть всего 45 связей и 90 команд neighbor как минимум. Не хило так. Итак, мы подошли к таким понятиям, как Route Reflector и Confederation. Уж не знаю почему, но эта тема меня всегда пугала какой-то надуманной сложностью.

Route Reflectror

В чём суть понятия Route Reflector? Это специальный IBGP-маршрутизатор, который, исходя из дословного его перевода, выполняет функцию отражения маршрутов — ему присылает маршрут один сосед, а он рассылает его всем другим. То есть фактически на IBGP-маршрутизаторах вам нужно настроить сессию только с одним соседом — с Route Reflector’ом, а не с девятью. Всё довольно просто и тут прямая аналогия с тем самым DR OSPF.
Чуть больше о правилах работы RR.
Во-первых введём понятия клиент RR и не-клиент RR.
Для данного маршрутизатора клиент — iBGP сосед, который специально объявлен, как RR client, и для которого действуют особые правила. Не-клиент — iBGP сосед, который не объявлен, как RR client RR серверов может быть (и должно быть в плане отказоустойчивости) несколько. И понятия клиент/не-клиент строго локальны для каждого RR-сервера.
RR-сервер (или несколько) в совокупности с со своими клиентами формируют кластер. next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что это

Правила работы RR

Как мы сказали выше, в сети может быть несколько Route-reflector’ов. Это нормально, это не вызовет образование петли, потому что существует атрибут Originator ID — как только RR получит маршрут, где указан он сам, как отправитель этого маршрута, он его отбросит. Каждый RR в таком случае будет иметь таблицу маршрутов BGP точно такую же, как у других. Это вынужденная избыточность, позволяющая значительно увеличить стабильность, но при этом у вас должна быть достаточная производительность самих устройств, чтобы, например, поддерживать по паре Full View на каждом.
Но несколько RR могут собираться в кластеры и разрушать деревни обеспечивать экономию ресурсов — таблица BGP будет делиться между несколькими RR.
Принадлежность к одному кластеру настраивается на каждом RR и определяется атрибутом Cluster ID.

И вот тут тонкий момент — считается, что Best Practice — это настройка одинакового Cluster-ID на всех RR, но на самом деле это не всегда так. Выбирать нужно, исходя из дизайна вашей сети. Более того, часто рекомендуют даже намеренно разделять Route Reflector’ы — как ни странно, это увеличивает стабильность сети.
Дабы не растекаться мысью по древу, просто дам ссылку на материал об этом.

Вот так выглядит обычная схема с RR: next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что этоСхема с основным и резервным RR: next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что этоВнутри кластера между всему RR должна быть полная связность.
Кластеров может быть несколько и между ними также следует создавать Full-Mesh сеть: next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что этоПовторимся, что кластер: это Рут-рефлектор (один или несколько) вместе со всеми своими клиентами.
Кроме того, часто практикуют иерархические RR. Например, так: next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что этоRR1 получает маршруты от удалённой AS и раздаёт их своим дочерним RR (Client/RR1), которые в свою очередь раздают их клиентам.
Это имеет смысл только в достаточно крупных сетях.
Относительно Route Reflector’ов важно понимать, что сам маршрутизатор, выполняющий функции RR не обязательно участвует в передаче данных. Более того, часто RR специально выносят за пределы пути передачи трафика, чтобы он выполнял исключительно обязанности по передаче маршрутов, чтобы не увеличивать нагрузку на него.

Практика RR

Для примера предположим, что в нашей сети в качестве RR будет выступать R1.
Вот конфигурация самого простого случая RR — одинокого, без кластера.
R1

Обратите внимание на команду «neighbor AS64500 route-reflector-client«, добавившуюся в настройку R1 и то, что конфигурация BGP на всех других устройствах полностью идентична, за исключением внешних соседей (102.0.0.1 для R2 и 100.0.0.6 для R4).
В общем-то внешне ничего не поменяется. R4, например, всё будет видеть точно также, за исключением количества соседей: next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что этоОбратите внимание на то, что Route Reflector не меняет Next-Hop отражённых маршрутов на свой, несмотря на наличие параметра Next-Hop-self.
На самом Route Reflector’е отличие будет выглядеть так: next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что этоЕсли смотреть по конкретным маршрутам: next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что этоЗдесь видно полную подсеть, количество путей до неё, какой из них лучший, в какую таблицу он добавлен, куда передаётся (update-group 2 — как раз наш кластер).
Далее перечисляются все эти пути, содержащие такие важные параметры, как AS-Path, Next-Hop, Origin итд, а также информацию о том, что например, первый маршрут был получен от RR-клиента.
Эту информацию можно успешно использовать для траблшутинга. Вот так, например выглядит её вывод, когда не настроен Next-Hop-self: next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что этоКонфигурация устройств.

Проблема резервирования

Какая сейчас с рут-рефлектором есть проблема? У всех маршрутизаторов связи установлены только с ним. И если R1 вдруг выйдет из строя, пиши пропало — сеть ляжет.
Для этих целей, давайте настроим кластер и в качестве второго RR выберем R2.
То есть теперь на R3 и R4 нужно поднимать соседства не только с R1, но и с R2.
Теперь sh ip bgp update-group выглядит так: next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что этоОдин внешний, один внутренний — не RR-клиент и два внутренних RR-клиента. Аналогично на R2: next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что этоНа клиентах у нас теперь два соединения с RR: next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что этоОбратите внимание, в сообщениях Update теперь появились два новых атрибута: Cluster-List и Originator-ID. Исходя из названия, они несут в себе номер RR-кластера и идентификатор отправителя анонса:
R1 R2
next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что это
Эти параметры добавляются только маршрутам, передающимся по IBGP.
Они необходимо для того, чтобы избежать образования петель. Если, например, маршрут прошёл несколько кластеров и вернулся в исходный, то в параметре Cluster-List среди всех прочих, маршрутизатор увидит номер своего кластера, и после этого удалит маршрут. next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что это

Попробуйте ответить на вопрос, зачем нужен атрибут Originator-ID? Разве Cluster-List не исчерпывает все варианты?

Если сейчас даже сжечь R1, то связь частично ляжет только на время обнаружения проблемы и перестроения таблиц маршрутизации (в худшем случае это 3 минуты ожидания Keepalive сообщения BGP и ещё какое-то время на изучение новых маршрутов).
Но, если дизайн сети у вас предполагал, что RR — это самостоятельные железки, и через них не ходил трафик (то есть они занимались исключительно распространением маршрутов), то, вполне вероятно, что перерыва трафика не будет вовсе. Во-первых, отправитель только через 3 минуты заметит, что что-то не так с RR — в течение этого времени маршрут у него всё-равно будет, а поскольку он ведёт не через бесславно погибший RR, трафик будет ходить вполне благополучно. По прошествии этих трёх минут отправитель переключится на резервный RR и получит от него новый актуальный маршрут. Таким образом связь не будет прервана.
Суть иерархических рут-рефлекторов лишь в том, что один из них является клиентом другого. Это помогает выстроить более понятную и прозрачную схему работы, которую будет проще траблшутить далее.
На нашей сети это лишено какого бы то ни было смысла, поэтому данный случай рассматривать не будем.

Конфедерации

Другой способ решения проблемы Full-Mesh — это конфедерации или иначе их называют sub-AS, под-АС. По сути — это маленькая виртуальная АС внутри большой настоящей АС.
Каждая конфедерация ведёт себя как взрослая AS — внутри полная связность, снаружи, как Лейбниц на душу положит — IBGP работает тут по принципу EBGP (с некоторыми оговорками), граничные маршрутизаторы конфедераций, ведут себя как EBGP-соседи, должны быть подключены напрямую.
Пример топологии: next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что этоКогда маршруты передаются внутри АС между конфедерациями в их AS-Path добавляется номер конфедерации (сегменты AS_CONFED_SEQ и AS_CONFED_SET) для избежания петель. Как только маршрут покидает AS, удаляются все эти номера, чтобы внешний мир о них не знал.
Встречается он довольно редко из-за своей слабой масштабируемости и непрозрачности, поэтому рассматривать мы его не будем.
Более подробно можно почитать на xgu.ru.
____________________________

Атрибуты BGP

Последняя тема, которую мы затронем касательно BGP — это его атрибуты. Мы их уже начали рассматривать в основной статье (AS-Path и Next-Hop, например). Теперь же имеющиеся знания систематизируем и дополним.
Они делятся на четыре типа:

Хорошо известные обязательные (Well-known Mandatory)

Это атрибуты, которые должны присутствовать в анонсах всегда, и каждый BGP-маршрутизатор должен их знать.
Следующие три атрибута и только они принадлежат к этому типу.
Next-Hop говорит маршрутизатору, получающему анонс, о том, куда отправлять пакет.
При передаче маршрута между различными AS значение Next-Hop меняется на адрес отправляющего маршрутизатора. Внутри AS атрибут Next-Hop по умолчанию не меняется при передаче от одного IBGP-оратора другому. Выше мы уже рассматривали почему.
AS-path несёт в себе список всех Автономных Систем, которые нужно преодолеть для достижения цели. Используется для выбора лучшего пути и для исключения петель маршрутизации. Когда маршрут передаётся из одной AS в другую, в AS-path вставляется номер отправляющей AS. При передаче внутри AS параметр не меняется.
Origin сообщает, как маршрут зародился — командой network (IGP — значение 0) или редистрибуцией (Incomplete — значение 2). Значение 1 (EGP) — уже не встречается ввиду того, что протокол EGP не используется. Назначается единожды маршрутизатором-папой, сгенерировавшим маршрут, и более нигде не меняется. По сути означает степень надёжности источника. IGP — самый крутой. next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что это

Хорошо известные необязательные (Well-known Discretionary)

Эти атрибуты должны знать все BGP-маршрутизаторы, но их присутствие в анонсе не требуется. Хочешь — есть, не хочешь — не есть.
Примеры:
Local Preference помогает выбрать один из нескольких маршрутов в одну сеть. Данный атрибут может передаваться лишь в пределах одной AS. Если анонс с Local Preference приходит от EBGP-партнёра, атрибут просто игнорируется — мы не можем с помощью Local Preference управлять маршрутами чужой AS.
Atomic Aggregate говорит о том, что префикс был получен путём агрегирования более мелких.

Опциональные передаваемые/транзитивные (Optional Transitive)

Атрибуты, которые не обязательно знать всем. Кто знает — использует, кто не знает — передаёт их дальше.
Примеры:
Aggregator. Указывает на Router ID маршрутизатора, где произошло агрегирование.
Community. Про этот атрибут мы подробно поговорим далее, в заключительной части статьи.

Опциональные непередаваемые/нетранзитивные (Optional Non-transitive)

Атрибуты, которые не обязательно знать всем. Но маршрутизатор, который их не поддерживает, их отбрасывает и никуда дальше не передаёт.
Пример:
MED — Multi-exit Descriminator. Этим атрибутом мы можем попытаться управлять приоритетами в чужой AS. Можем попытаться, но вряд ли что-то получится 🙂 Часто этот атрибут фильтруется, он имеет значение только при наличии как минимум двух линков в одну AS, он проверяется после многих очень сильных атрибутов (Local Preference, AS-Path), да и разные вендоры могу по-разному трактовать MED.
next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что это Упомянутые прежде Cluster List и Originator-ID. Естественно, они являются опциональными, и естественно, передавать их куда-то за пределы AS нет смысла, поэтому и непередаваемые.
=====================
next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что этоЗадача № 6*
Необходимо изменить стандартную процедуру выбора лучшего маршрута на маршрутизаторах в AS64500:
— маршрутизаторы R1 и R2 должны выбирать маршруты eBGP, а не iBGP, независимо от длины AS path,
— маршрутизаторы R3 и R4 внутри автономной системы должны выбирать маршруты на основании метрики OSPF.
Конфигурация и схема: базовые.
Подробности задачи тут.
=====================

Community

Вот он — один из самых интересных аспектов BGP, вот где проявляется его гибкость — возможность помимо самих маршрутов, передавать дополнительную информацию.
С помощью атрибута Community можно из своей AS управлять поведением маршрутизаторов другой AS.
Я долгое время по непонятной сейчас для себя причине недооценивал мощь этого инструмента.
Управление своими анонсами в чужой AS с помощью community поддерживается подавляющим большинством вендоров. Но на самом деле говорить тут надо не о вендорах, а, скорее, о операторах/провайдерах — именно от них зависит, от их конфигурации, сможете ли вы управлять или нет.
Начнём с теории, Community, как было сказано выше, — это опциональный передаваемый атрибут (Optional Transitive) размером 4 байта. Он представляет из себя запись вида AA:NN, где AA — двухбайтовый номер AS, NN — номер коммьюнити (например, 64500:666).
Существует 4 так называемых Well-Known community (хорошо известные):
Internet — Нет никаких ограничений — передаётся всем.
No-export — Нельзя экспортировать маршрут в другие AS. При этом за пределы конфедерации передавать их можно.
No-export-subconfed (называется также Local AS) — Как No-export, только добавляется ограничение и по конфедерациям — между ними уже тоже не передаётся.
No-advertise — Не передавать этот маршрут никому — только сосед будет знать о нём.
=====================
next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что этоЗадача № 7 Наш новый клиент AS 64504 подключен к нашей сети. И пока что не планирует подключение к другому провайдеру. На данном этапе клиент может использовать номер автономной системы из приватного диапазона. Блок адресов, который использует клиент, будет частью нашего диапазона сетей.
Задание: Так как сеть клиента является частью нашего блока адресов, надо чтобы сеть клиента не анонсировалась соседним провайдерам.
Не использовать фильтрацию префиксов или фильтрацию по AS для решения этой задачи.
Конфигурация и схема: Community.
Отличия только в том, что сеть, которую анонсирует AS64504: 100.0.1.0/28, а не 130.0.0.0/24
Подробности задачи тут.
=====================
В сети тысячи примеров настройки таких базовых коммьюнити и крайне мало примеров реального использования.
А меж тем одно из самых интересных применений этого атрибута — блэкхоулинг от старославянского black hole — способ борьбы с DoS-атаками. Очень подробно с примером настройки о нём уже было рассказано на хабре.
Суть в том, что когда началась атака на какой-то из адресов вашей AS, вы этот адрес передаёте вышестоящему провайдеру с комьюнити 666, и он отправляет такой маршрут в NULL — блэкхолит его. То есть до вас уже этот паразитный трафик не доходит. Провайдер может передать такой маршрут дальше, и так, шаг за шагом, трафик от злоумышленника или системы ботов будет отбрасываться уже на самых ранних этапах, не засоряя Интернет.
Достигается такой эффект расширяющейся чёрной дыры именно благодаря коммьюнити. То есть в обычном случае вы анонсируете этот адрес в составе большой сети /22, например, а в случае DoS’а передаёте самый специфичный маршрут /32, который будет, естественно, более приоритетным.

О таких атаках вы, кстати, можете послушать в шестом выпуске нашего подкаста linkmeup.

Другие примеры — управление атрибутом Local Preference в чужой AS, сообщать ему, что анонсу нужно увеличить AS-path (AS-path prepending) или не передавать маршрут каким-либо соседям. Насчёт последнего. Как, например, вы решите следующую задачу?
Имеется сеть, представленная на рисунке ниже. Вы хотите отдавать свои маршруты соседям из AS 100 и 200 и не хотите 300. next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что этоБез использования коммьюнити силами только своей AS сделать это не представляется возможным.
Кстати, как бы это ни было прискорбно, но такие ограничения реально используются в нашей жизни. Распространены ситуации, когда несколько провайдеров устанавливают между собой пиринговые отношения — трафик между их сетями не ходит через вышестоящих провайдеров, не даёт круг через пол-России, но кого-то не пускают — кому-то свои сети не анонсируют.
Интереснейшие статьи об Интернете и BGP и о пиринговых войнах.

Практика Community

Мы же в качестве примера рассмотрим следующую ситуацию.
Основная схема статьи дополняется ещё одним маршрутизатором клиента и двумя линками. next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что этоR7 и R9 разнесены территориально — так называемое георезервирование. Главным является его правый сайт, левый — резервный.
Внутри своей AS он без проблем настроил передачу исходящего трафика в нужном месте — через R3. А вот со входящим посложнее — MED не позволяет использовать религия, да и доверия ему нет.
Поэтому мы разработали схему взаимодействия, используя community. На самом деле она будет общая для всех. Например, ниже мы установим правило — если получили маршрут с коммьюнити 64500:150, увеличить Local Preference для него до 150. А потом такую политику применяем к нужным нам маршрутам.
На нашем оборудовании (на всём) мы определяем ip community-list:

Задаём правило обработки:

Это общий блок, который будет одинаков для всех устройств. После этого клиент может сказать, что хочет воспользоваться этой функцией и мы применяем карту на BGP-соседа:
Применяем карту к BGP-соседу на R3:

Итак, если в анонсе от соседа 100.0.0.10 community совпадает со значением в условии, установить Local Preference для этих маршрутов в 150.

Часто такие политики (route-map) применяются по умолчанию на всех внешних соседей. Клиентам остаётся только настроить передачу нужной коммьюнити и даже не нужно просить о чём-то провайдера — всё сработает автоматически.

Это наша политика по использовании коммьюнити. О ней мы сообщаем клиенту, мол, хочешь Установить для своего маршрута Local Preference в 150 в нашей AS, используй community 64500:150 И вот он настраивает на R9:

При необходимости то же самое он может настроить на R7.
После clear ip bgp * soft в отправляемых анонсах мы можем увидеть community: next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что этоВ итоге R3 имеет маршрут с более высоким Local Preference: next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что этоПередаёт его рут-рефлектору (R1 и R2), который делает выбор и распространяет всем своим соседям: next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что этоИ даже R4, которому рукой дотянуться до R7, будет отправлять трафик на R3: next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что этоТрафик идёт именно тем путём, который мы выбрали. next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что это

Пусть вас не пугает по 3 записи для каждого хопа — это говорит о балансировке трафика между равноценными линками R1 R2 R3 и R1 R4 R3. Просто один раз он идёт по одному пути, второй по другому. А вот вы лучше попробуйте ответить на вопрос, почему на первом хопе 1-я и 3-я попытки идут через R4, а вот на втором хопе на R3. Почему пакет “перепрыгивает”? Как так получается?

Кстати, не стоит забывать команду ip bgp-community new-format, а иначе вместо этого:
next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что этовы увидите это: next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что этоОтправляться будет то же самое, но в выводах show команд будет отображаться в удобном виде. ===================== next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что этоЗадача № 8
В нашей AS для настройки политик с клиентскими AS, используются community. Используются такие значения: 64500:150, 64500:100, 64500:50, 64500:1, 64500:2, 64500:3.
Кроме того, маршрутизаторы нашей AS также используют community для работы с соседними AS. Их формат: 64501:xxx, 64502:xxx.
Задание:
— все значения community приходящие от клиентов, которые не определены политикой, должны удаляться,
— значения community, которые проставлены клиентами, должны удаляться, при передаче префиксов соседним вышестоящим AS. При этом не должны удаляться другие значения, которые проставлены маршрутизаторами нашей AS.
Конфигурация и схема: базовые.
Подробности задачи тут.
=====================
Конфигурация устройств
В приведённом примере видно, что коммьюнити позволяет работать не с отдельными анонсами и для каждого из них отдельно применять какие-то политики, а рассматривать их сразу как группу, что естественно, значительно упрощает обслуживание.
Иными словами, коммьюнити — это группа анонсов с одинаковыми характеристиками.
При работе с community важно понимать, что настройка необходима с двух сторон — чтобы желаемое заработало, у провайдера тоже должна быть выполнена соответствующая конфигурация.
Часто у провайдеров бывает уже выработанная политика использования коммьюнити, и они просто дают вам те номера, которые необходимо использовать. То есть после того, как вы добавите к анонсу номер коммьюнити, провайдеру не придётся ничего делать руками — всё произойдёт автоматически.
Например, у Балаган-Телекома может быть такая политика:

ЗначениеДействие
64501:100ХПри анонсировании маршрута соседу A добавить Х препендов, где Х от 1 до 6
64501:101XПри анонсировании маршрута соседу B добавить Х препендов, где Х от 1 до 6
64501:102XПри анонсировании маршрута соседу C добавить Х препендов, где Х от 1 до 6
64501:103XПри анонсировании маршрута в AS64503 добавить Х препендов, где Х от 1 до 6
64501:20050Установить Local Preference для полученных маршрутов в 50
64501:20150Установить Local Preference для полученных маршрутов в 150
64501:666Установить Next-Hop для маршрут в Null — создать Black Hole
64501:3333выполнить скрипт по уничтожению конфигурации BGP на всех маршрутизаторах AS

Исходя из этой таблички, которая опубликована на сайте Балаган-телекома, мы можем сами принять решение об управлении трафиком.
Как это реально может помочь нам?
У нас Dual-homing подключение к двум различным провайдерам — Балаган Телеком и Филькин Сертификат. У датацентра подключение также к обоим провайдерам. Он принадлежит какому-то контент-генератору, допустим это оператор потового видео.
По умолчанию, в нашу сеть всё ходит через Балаган-Телеком (AS64501). Канал там хоть и широкий, но его утилизация уже достаточно высока. Мы хотим продавать домашним клиентам услугу IPTV и прогнозируем значительный рост входящего трафика. Неплохо было бы его завернуть в Филькин Сертификат и не бояться о том, что основной канал забьётся. При этом, естественно, весь другой трафик переносить не нужно.
В таблице BGP проверяем, где находится сеть 103.0.0.0. Видим, что это AS64503, которая достижима через обоих провайдеров с равным числом AS в AS-Path. next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что этоВот как видит нас маршрутизатор из AS 64503: next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что этоМаршрут в Балаган-Телеком выбран предпочтительным
Какие мысли?
Анонсировать определённые сети в Филькин Сертификат, а остальные оставить в Балаган Телеком? Негибко, немасштабируемо.
Вешать препенды на маршруты, отдаваемые в Балаган Телеком? Тогда, скорее всего, куча другого трафика перетечёт на Филькин Сертификат.
Попросить инженера Балаган-Телекома вручную удлинить наши маршруты при передаче их в AS64503. Уже ближе к истине, и это даже сработает, но, скорее всего, инженер провайдера пошлёт вас… на сайт с табличкой, где прописана их политика Community.
Собственно, всё, что нужно сделать нам — на маршрутизаторе R1 применить route-map по добавлению коммьюнити 64500:1031 к соседу R5(напоминаем, что 103Х — это для соседа из AS 64503). Дальше всё сделает автоматика.
Вот как R5 видит маршрут сам: next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что этоВсё без изменений. Вот как его видит R8: next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что этоКак видите, галочка стоит напротив более короткого пути через Филькин Сертификат, чего мы и добивались. next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что это=====================
next hop self что это. Смотреть фото next hop self что это. Смотреть картинку next hop self что это. Картинка про next hop self что это. Фото next hop self что этоЗадача № 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.
Конфигурация: базовая.
Подробности задачи тут.
=====================

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *