В этой статье мы рассмотрим некоторые конкретные концепции BGP, которые имеют решающее значение для понимания того, как работает BGP. Мы рассмотрим, что означает следующий переход 0.0.0.0 в BGP, углубимся в значение различных кодов происхождения и поймем, что означает сбой RIB. Я собираюсь использовать следующий пример в качестве основы для объяснения этих концепций.
В нашем примере HQ-01 находится в AS 1000, ENT-01 — в AS 2000, а в AS 100 — два промежуточных маршрутизатора ISP. Эти маршрутизаторы провайдера устанавливают сеанс iBGP между собой для прохождения по маршрутам BGP. HQ-01 рекламирует префикс 100.100.0.0/16 на свой одноранговый узел eBGP ISP-01 с помощью команды network 100.100.0.0 mask 255.255.0.0 команда.
#HQ-01
router bgp 1000
network 100.100.0.0 mask 255.255.0.0
neighbor 12.12.12.2 remote-as 100
Мы подробно рассмотрели конфигурации в нашей предыдущей части, так что не стесняйтесь рассказать об этом.
Что такое BGP Next Hop 0.0.0.0?
В BGP, когда вы видите следующий прыжок, указанный как 0.0.0.0, он указывает, что маршрут, на который идет ссылка, инициирован локальным маршрутизатором. Это способ BGP сказать: «Эта сеть начинается прямо здесь, со меня."
#hq-01
hq-01#show ip bgp
*Apr 1 18:25:40.694: %SYS-5-CONFIG_I: Configured from console by consolep
BGP table version is 12, local router ID is 12.12.12.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
x best-external, a additional-path, c RIB-compressed,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path
*> 100.100.0.0/16 0.0.0.0 0 32768 i
Взгляд на выходные данные show ip bgp, видим приставку 100.100.0.0/16 со следующим прыжком 0.0.0.0. Эта запись говорит нам о том, что hq-01 является создателем 100.100.0.0/16 сеть. Маршрут напрямую связан с hq-01 и внедряется в BGP с помощью команды network или перераспределяется в BGP из локальной таблицы маршрутизации, и hq-01 объявляет об этом маршруте другим одноранговым узлам BGP как о локальной сети.
Когда вы проверяете таблицу BGP на ISP-01 с помощью той же команды, следующий прыжок для 100.100.0.0/16 префикс не будет отображаться как 0.0.0.0. Это потому, что ISP-01 не является создателем этого префикса. Вместо этого следующий прыжок будет установлен на IP-адрес hq-01, маршрутизатор, который объявил префикс через eBGP.
#ISP-01
ISP-01#show ip bgp
BGP table version is 10, local router ID is 192.168.12.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
x best-external, a additional-path, c RIB-compressed,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path
*> 100.100.0.0/16 12.12.12.1 0 0 1000 i
Коды происхождения BGP
Исходный код — это хорошо известный обязательный атрибут пути BGP, который определяет источник информации о маршрутизации, то есть о том, как маршрут стал маршрутом BGP. Хорошо известные обязательные атрибуты должны быть распознаны всеми реализациями BGP и включены в каждое объявление с префиксом. Таким образом, вы увидите их в каждом префиксе BGP.
Существует три типа кодов происхождения:
- i (IGP) — имеет наивысший приоритет, и маршруты добавляются в таблицу маршрутизации BGP с помощью команды network команда
- e (EGP) - Это довольно редкое явление, но это означает, что маршрут пришел от EGP. Такое увидишь не часто.
- ? (неполный) — маршруты, которые перераспределяются из других протоколов маршрутизации в BGP.
Когда я говорю, что код IGP Origin имеет наивысший приоритет, я имел в виду, что, скажем, маршрутизатор узнает об одном и том же маршруте из двух разных мест, а все остальное (вес, локальные предпочтения AS_Path) эти маршруты одинаковы. Что будет дальше? Ваш маршрутизатор посмотрит на исходный код, чтобы разорвать связь. Если один из маршрутов имеет исходный код i, этот маршрут является победителем.
Если мы посмотрим на show ip bgp снова с маршрутизатора HQ-01, мы видим i рядом с кнопкой 100.100.0.0/16 (Path). Ну, мы использовали метод network Итак, это то, что мы ожидаем увидеть.
#hq-01
hq-01#show ip bgp
*Apr 1 18:25:40.694: %SYS-5-CONFIG_I: Configured from console by consolep
BGP table version is 12, local router ID is 12.12.12.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
x best-external, a additional-path, c RIB-compressed,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path
*> 100.100.0.0/16 0.0.0.0 0 32768 i
Давайте уберем network и добавьте команду redistribute connected командуйте и посмотрите, что произойдет.
hq-01(config-router)#no network 100.100.0.0 mask 255.255.0.0
hq-01(config-router)#redistribute connected
hq-01(config-router)#end
#hq-01
hq-01#show ip bgp
BGP table version is 8, local router ID is 12.12.12.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
x best-external, a additional-path, c RIB-compressed,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path
*> 10.10.0.0/16 0.0.0.0 0 32768 ?
*> 12.12.12.0/24 0.0.0.0 0 32768 ?
*> 100.100.0.0/16 0.0.0.0 0 32768 ?
Во-первых, сейчас мы видим три приставки, почему? Ну, я использую сеть 10.10.0.0/16 для целей управления, поэтому игнорируйте ее. Второй – это связь между HQ-01 и ISP-01, а третий, конечно же, то, о чем мы сейчас говорим.
Но, если посмотреть на исходный код, то сейчас он изменился на ? указывает на то, что префиксы перераспределяются в BGP.
Отказ RIB
Сбой RIB возникает, когда маршрут, выбранный BGP, не может быть установлен в таблице маршрутизации. Это может произойти по нескольким причинам, например, из-за того, что в таблице маршрутизации указан более конкретный или предпочтительный маршрут к тому же пункту назначения. Мы просто продолжаем с того места, на котором остановились (HQ-01 использует redistribute connected)
#ISP-01
ISP-01#show ip bgp
BGP table version is 6, local router ID is 192.168.12.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
x best-external, a additional-path, c RIB-compressed,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path
r> 10.10.0.0/16 12.12.12.1 0 0 1000 ?
r> 12.12.12.0/24 12.12.12.1 0 0 1000 ?
*> 100.100.0.0/16 12.12.12.1 0 0 1000 ?
#ISP-01
ISP-01#show ip interface brief | incl up
GigabitEthernet1 12.12.12.2 YES TFTP up up
GigabitEthernet2 192.168.12.1 YES TFTP up up
GigabitEthernet8 10.10.50.41 YES manual up up
Если посмотреть на вывод от ISP-01, то мы увидим маршруты, отмеченные значком r>, указывая на то, что они распознаны BGP как наилучший путь для своих пунктов назначения, но не были установлены в таблице маршрутизации из-за сбоя RIB.
Причина сбоев RIB в примере от ISP-01 связана с наличием подключенных маршрутов, которые перекрываются с маршрутами, объявленными BGP.
- Тем 10.10.0.0/16 сеть используется провайдером Интернет-01 для целей управления (таким образом, я могу подключиться по SSH ко всем устройствам). Эта сеть напрямую подключена к ISP-01 (и всем остальным маршрутизаторам), что делает ее подключенным маршрутом. При IP-маршрутизации подключенным маршрутам отдается более высокий приоритет по сравнению с маршрутами, полученными через BGP или другие протоколы маршрутизации. Таким образом, маршрут BGP к 10.10.0.0/16 происходит сбой RIB, так как таблица IP-маршрутизации маршрутизатора отдает приоритет подключенному маршруту для этой сети.
- Подобным образом 12.12.12.0/24 — это другая сеть, напрямую подключенная к ISP-01. Например, 10.10.0.0/16 network, этот подключенный маршрут имеет приоритет над маршрутом, полученным BGP, к тому же пункту назначения.
Таким образом, сбои RIB для этих префиксов связаны с тем, что соединенным маршрутам отдается предпочтение по сравнению с маршрутами, обученными с помощью BGP.