Не хочу вас загружать теорией. Её с легкостью можно найти на просторах интернета :). Если по ходу повествования нужны будут пояснения, то, конечно, я их сделаю.
Предлагаю сегодня рассмотреть основные принципы работы BGP. Затронуть, так же, основные настройки для организации связи, рассмотреть различные способы добавления сетей в BGP и что-нибудь еще :).
Основывается BGP на так называемых автономных системах (AS – Autonomous System). Условно говоря, каждая группа сетевых устройств, принадлежащая к той или иной организации, помещается в свою уникальную автономную систему, внутри которой используется Interior BGP (внутренний BGP, IBGP) для обмена маршрутной информацией между роутерами. Для обмена маршрутной информацией между автономными системами используется External BGP (внешний BGP, EBGP).
Для лучшего понимания процесса соберем следующую схему:
Небольшая легенда. Существует корпоративная сеть, в которой есть 4-ре роутера. Для сетевой доступности между ними настроен протокол OSPF. Они относятся к автономной системе BGP AS 1100. Существует сеть провайдера ISP. В ней находится роутер R5 и относится она к автономной системе BGP AS 2200. Необходимо настроить связь по протоколу BGP между корпоративной сетью и провайдером. Причем, внутри корпоративной сети необходимо настроить соседство BGP между R1 и R4, которые не имеют непосредственной связи друг с другом (запускать BGP на R2 и R3 тоже будем, но позже).
Успешным завершением конфигурации будем считать наличие маршрутов на роутере R1 к loopback интерфейсам роутера R5, полученным по протоколу BGP и успешное выполнение команды ping на эти адреса.
Я буду показывать конфигурацию частями с пояснениями, но в конце покажу полную конфигурацию роутеров для ориентировки.
Начнем с роутера R5. Заходим на него:
Видно, что процесс BGP запущен и «сосед» присутствует, но пока не отвечает, так как не настроен. В отличие от других протоколов динамической маршрутизации, «соседство» в BGP необходимо настраивать вручную. Так что, если вы будете его настраивать с поставщиком услуг (ISP), то необходимо взаимодействие с обеих сторон.
Продолжим и теперь зайдем на роутер R4:
Видно, что «соседство» EBGP между AS 1100 и AS 2200 установилось. Но таблица маршрутизации BGP пуста. Это мы настроим немного позднее.
Сейчас я предлагаю настроить связь между роутерами корпоративной сети и установить «соседство» IBGP между роутером R1 и R4. Возвращаемся на роутер R4 и продолжаем настройку:
На роутере R4:
Добавлять сети в процесс BGP можно несколькими способами. Первый, это использовать команду network как и в других протоколах. Второй, это применение редистрибуции, потренируемся как раз еще и с route-map :). Следует также учитывать, что при редистрибуции в IOS до версии 12.2(8)T по умолчанию включена автосуммаризация (auto-summary), так что будьте внимательны. Рассмотрим сразу два варианта, для этого у нас имеется 7 loopback интерфейсов на R5.Итак, заходим на него:
Продолжим:
Роутер R5:
Роутер R4:
Все нормально, маршруты присутствуют как в таблице маршрутизации BGP, так и в общей таблице. Теперь, что мы видим на R1:
А видно, что что-то не так. Маршруты присутствуют в таблице маршрутизации BGP, но нет маркера «>», который обозначает лучший путь (то есть, маршрутов фактически нет). И вообще нет этих маршрутов в общей таблице маршрутизации.
Все это связано с еще одной особенностью протокола BGP, а именно с BGP синхронизацией. Она обозначает приблизительно следующее:
- не использовать и не объявлять маршруты, полученные через IBGP, пока эти же маршруты не будут получены через внутренний протокол маршрутизации (в нашем случае OSPF).
Применительно к нашей схеме получается такая ситуация, что, допустим, какой-то хост, находящийся за роутером R1, хочет попасть в сеть 100.1.1.0/24. Роутер R1 отошлет этот запрос дальше на роутер R2 или R3. Но ни один из этих роутеров не знает об этой сети и, следовательно, этот запрос будет сброшен.
Следует так же отметить, что BGP синхронизация ВКЛЮЧЕНА по умолчанию на версиях IOS до 12.2(8)T и ВЫКЛЮЧЕНА по умолчанию в версиях, начиная с 12.2(8)T. Выключение синхронизации в более новых версиях IOS связано с тем, что предполагается работа BGP на всех устройствах корпоративной сети. Другими словами, нам следовало бы запустить BGP и на роутерах R2 и R3. Но я специально не делал этого, чтобы показать вам эту особенность.
Но это не единственная особенность, которая мешает попаданию маршрутов в таблицу маршрутизации. Если вы посмотрите на картинку выше, вы заметите, что «Next hop» IP адрес у нас стоит роутера R5, о котором R1 тоже ничего не знает. И это следующий момент в BGP.
Правило гласит приблизительно следующее:
- для EBGP «соседей» менять «Next Hop» IP адрес на свой при объявлении маршрутов далее (касаемо нашей схемы это означает, что если роутер R1 объявляет маршруты роутеру R4, а тот в свою очередь роутеру R5, то R4 поменяет «Next Hop» адрес роутера R1 на свой).
- для IBGP «соседей» НЕ менять «Next Hop» IP адрес на свой при объявлении маршрутов далее (касаемо нашей схемы это означает, что при объявлении маршрутов роутером R5 роутеру R4, и далее роутеру R1, роутер R4 не поменяет «Next Hop» IP адрес на свой, что мы и видим на роутере R1).
Сделано это на тот случай, когда роутеры подключены в один сегмент (например Frame Ralay), но соседство установлено не «каждый с каждым». Тогда, чтобы исключить лишние скачки (Hops), и применяется это правило.
Решением проблемы в нашем случае может стать добавление IP адреса (сети) роутера R5 (10.1.14.2/30) в OSPF, но добавление внешних IP адресов во внутренний протокол маршрутизации это не грамотное решение и оно не применяется.
Итак, для решения нашей проблемы нам необходимо выключить BGP синхронизацию и заставить роутер R4 подставлять свой «Next Hop» IP адрес.
Заходим на R4:
Что мы имеем :). Видно, что маршруты у нас появились в общей таблице маршрутизации и приняты в таблице маршрутизации BGP. Но команда ping не проходит. Связано это с тем, что, несмотря на выключение BGP синхронизации и настройки замены «Next Hop» IP адреса, роутеры R2 и R3 все еще не знают о сетях 100.1.1.0/24, 10.1.2.0/24 и так далее.
По большому счету, для окончательной и грамотной настройки BGP нам необходимо включить и настроить этот процесс на всех роутерах Corporate network (надо создать full mesh топологию). Не делал я этого с начала поста, так как хотел показать особенности BGP.
Эту настройку я оставил напоследок, чтобы рассказать про еще одну возможность настройки BGP на роутерах, находящихся в одной автономной системе.
Это использование так называемых BGP peer groups. Они очень удобны, когда вам необходимо настроить IBGP соседство с несколькими роутерами с одинаковыми параметрами.
Итак, приступаем к заключительной части :). Начнем настройку с роутера R1:
Приведу команды show на роутерах R2, R3, R4 после выполнения настроек:
Все в порядке. Пусть вас не пугает маршрут с маркером «r». Это обозначает лишь то, что роутер не может добавить этот маршрут в таблицу маршрутизации, так есть маршрут с меньшей административной дистанцией (AD), а именно, полученный через OSPF.
Из рисунков видно, что соседство установлено «каждый с каждым». Здесь следует отметить еще одну особенность BGP. Это правило «BGP Split horizon». Оно звучит приблизительно так:
- не объявлять маршруты, полученные через IBGP, другим соседям IBGP. Другими словами, если R2 получит маршруты от R4, то он уже не будет их рассылать дальше роутерам R1 и R3, так как они являются IBGP соседями.
Вот по этой причине мы и реализовали схему «каждый с каждым» (full mesh). В противном случае, если бы у R1 не было бы соседства с R4, то и маршрутов от R5 мы бы не увидели. Можете проверить, если хотите :).
И теперь команда ping с роутера R1:
Я использовал так называемый расширенный режим команды ping, так как необходимо, чтобы источником (source IP) был 1.1.1.1. Все прошло успешно!!!
Как и обещал, приведу конфигурации роутеров для ориентировки и сверки (приведу только то, что настроено для экономии места):
Роутер R1:
Роутер R2:
Роутер R3:
Роутер R4:
Роутер R5:
Ну что же, на этом хочу закончить этот пост. Сегодня получилось много текста, но, надеюсь, пост не был для вас скучным и вы вынесли из него что то полезное для себя :). Возможно в следующих постах я расскажу о различных аспектах тюнинга BGP. Так что не уходите далеко и заходите почаще :).
Источником вдохновения послужили уроки из курса BCSI CBT Nuggets.
Источник: go-to-easyit.com/2011/10/bgp-cisco.html
Предлагаю сегодня рассмотреть основные принципы работы BGP. Затронуть, так же, основные настройки для организации связи, рассмотреть различные способы добавления сетей в BGP и что-нибудь еще :).
Основывается BGP на так называемых автономных системах (AS – Autonomous System). Условно говоря, каждая группа сетевых устройств, принадлежащая к той или иной организации, помещается в свою уникальную автономную систему, внутри которой используется Interior BGP (внутренний BGP, IBGP) для обмена маршрутной информацией между роутерами. Для обмена маршрутной информацией между автономными системами используется External BGP (внешний BGP, EBGP).
Для лучшего понимания процесса соберем следующую схему:
Небольшая легенда. Существует корпоративная сеть, в которой есть 4-ре роутера. Для сетевой доступности между ними настроен протокол OSPF. Они относятся к автономной системе BGP AS 1100. Существует сеть провайдера ISP. В ней находится роутер R5 и относится она к автономной системе BGP AS 2200. Необходимо настроить связь по протоколу BGP между корпоративной сетью и провайдером. Причем, внутри корпоративной сети необходимо настроить соседство BGP между R1 и R4, которые не имеют непосредственной связи друг с другом (запускать BGP на R2 и R3 тоже будем, но позже).
Успешным завершением конфигурации будем считать наличие маршрутов на роутере R1 к loopback интерфейсам роутера R5, полученным по протоколу BGP и успешное выполнение команды ping на эти адреса.
Я буду показывать конфигурацию частями с пояснениями, но в конце покажу полную конфигурацию роутеров для ориентировки.
Начнем с роутера R5. Заходим на него:
- R5>en
R5#conf t
R5(config)#hostname R5
R5(config)#interface loopback 1
R5(config-if)#ip address 100.1.1.1 255.255.255.0
R5(config-if)#exit
R5(config)#interface loopback 2
R5(config-if)#ip address 100.1.2.1 255.255.255.0
R5(config-if)#exit
R5(config)#interface loopback 3
R5(config-if)#ip address 100.1.3.1 255.255.255.0
R5(config-if)#exit
R5(config)#interface loopback 4
R5(config-if)#ip address 100.1.4.1 255.255.255.0
R5(config-if)#exit/br> R5(config-if)#interface loopback 5
R5(config-if)#ip address 100.1.5.1 255.255.255.0
R5(config-if)#exit
R5(config)#interface loopback 6
R5(config-if)#ip address 100.1.6.1 255.255.255.0
R5(config-if)#exit
R5(config)#interface loopback 7
R5(config-if)#ip address 50.50.50.1 255.255.255.0
R5(config-if)#exit
R5(config)#interface serial 0/2
R5(config-if)#ip address 10.1.14.2 255.255.255.252
R5(config-if)#no shutdown
R5(config-if)#exit
R5(config)#router bgp 2200 – включаем процесс BGP на роутере для автономной системы AS 2200. Роутер может работать только в одной AS
R5(config-router)#neighbor 10.1.14.1 remote-as 1100 – прописываем «соседа» вручную. Указываем IP – адрес и автономную систему, в которой находится «сосед»
R5(config-router)#exit
R5(config)#exit
R5#wr
Видно, что процесс BGP запущен и «сосед» присутствует, но пока не отвечает, так как не настроен. В отличие от других протоколов динамической маршрутизации, «соседство» в BGP необходимо настраивать вручную. Так что, если вы будете его настраивать с поставщиком услуг (ISP), то необходимо взаимодействие с обеих сторон.
Продолжим и теперь зайдем на роутер R4:
- R4>en
R4#conf t
R4(config)#hostname R4
R4(config)#int loopback 4
R4(config-if)#ip address 4.4.4.4 255.255.255.255
R4(config-if)#exit
R4(config)#int serial 0/0
R4(config-if)#ip address 10.1.12.2 255.255.255.252
R4(config-if)#no shutdown
R4(config-if)#exit
R4(config)#int serial 0/1
R4(config-if)#ip address 10.1.13.2 255.255.255.252
R4(config-if)#no shutdown
R4(config-if)#exit
R4(config)#int serial 0/2
R4(config-if)#ip address 10.1.14.1 255.255.255.252
R4(config-if)#no shutdown
R4(config-if)#exit
R4(config)#router bgp 1100
R4(config-router)#neighbor 10.1.14.2 remote-as 2200
R4#wr
R4#
*Mar 1 00:11:21.411: %BGP-5-ADJCHANGE: neighbor 10.1.14.2 Up – «соседство» установилось R4#
Видно, что «соседство» EBGP между AS 1100 и AS 2200 установилось. Но таблица маршрутизации BGP пуста. Это мы настроим немного позднее.
Сейчас я предлагаю настроить связь между роутерами корпоративной сети и установить «соседство» IBGP между роутером R1 и R4. Возвращаемся на роутер R4 и продолжаем настройку:
- R4(config)#router bgp 1100
R4(config-router)#neighbor 1.1.1.1 remote-as 1100 – добавляем второе «соседство». В этот раз прописываем ту же автономную систему, в которой находится R4 и IP - адрес loopback интерфейса R1. Тем самым настраивается соединение IBGP
- R4(config-router)#neighbor 1.1.1.1 update-source loopback 4 – указываем какой интерфейс (IP – адрес) будет выступать в качестве источника обновлений таблицы маршрутизации для R1
- R4(config-router)#exit
R4(config)#router ospf 1 – включаем OSPF для внутренней связи между роутерами
R4(config-router)#network 4.4.4.4 0.0.0.0 area 0
R4(config-router)#network 10.1.12.2 0.0.0.3 area 0
R4(config-router)#network 10.1.13.2 0.0.0.3 area 0
R4#wr
Building configuration...
R4#
- R2>en
R2#conf t
R2(config)#hostname R2
R2(config)#int loopback 2
R2(config-if)#ip address 2.2.2.2 255.255.255.255
R2(config-if)#exit
R2(config)#int serial 0/0
R2(config-if)#ip address 10.1.12.1 255.255.255.252
R2(config-if)#no shutdown
R2(config-if)#exit
R2(config)#int serial 0/1
R2(config-if)#ip address 10.1.11.2 255.255.255.252
R2(config-if)#no shutdown
R2(config-if)#exit
R2(config)#router ospf 1
R2(config-router)#network 10.1.11.2 0.0.0.3 area 0
R2(config-router)#network 10.1.12.1 0.0.0.3 area 0
R2(config-router)#network 2.2.2.2 0.0.0.0 area 0
*Mar 1 00:02:47.187: %OSPF-5-ADJCHG: Process 1, Nbr 4.4.4.4 on Serial0/0 from LOADING to FULL, Loading Done
R2(config-router)#exit
R2(config)#exit
R2#wr
R2#
- R3>en
R3#conf t
R3(config)#hostname R3
R3(config)#int loopback 3
R3(config-if)#ip address 3.3.3.3 255.255.255.255
R3(config-if)#exit
R3(config)#interface serial 0/0
R3(config-if)#ip address 10.1.10.2 255.255.255.252
R3(config-if)#no shutdown
R3(config-if)#exit
R3(config)#interface serial 0/1
R3(config-if)#ip address 10.1.13.1 255.255.255.252
R3(config-if)#no shutdown
R3(config-if)#exit
R3(config)#router ospf 1
R3(config-router)#network 10.1.10.2 0.0.0.3 area 0
R3(config-router)#network 10.1.13.1 0.0.0.3 area 0
R3(config-router)#network 3.3.3.3 0.0.0.0 area 0
*Mar 1 00:03:32.783: %OSPF-5-ADJCHG: Process 1, Nbr 4.4.4.4 on Serial0/1 from LOADING to FULL, Loading Done
R3(config-router)#^Z
R3#wr
R3#
- R1>en
R1#conf t
R1(config)#hostname R1
R1(config)#interface loopback 1
R1(config-if)#ip address 1.1.1.1 255.255.255.255
R1(config-if)#exit
R1(config)#interface serial 0/0
R1(config-if)#ip address 10.1.10.1 255.255.255.252
R1(config-if)#no shutdown
R1(config-if)#exit
R1(config)#interface serial 0/1
R1(config-if)#ip address 10.1.11.1 255.255.255.252
R1(config-if)#no shutdown
R1(config-if)#exit
R1(config)#router ospf 1
R1(config-router)#network 10.1.10.1 0.0.0.3 area 0
R1(config-router)#network 10.1.11.1 0.0.0.3 area 0
R1(config-router)#network 1.1.1.1 0.0.0.0 area 0
*Mar 1 00:03:03.503: %OSPF-5-ADJCHG: Process 1, Nbr 3.3.3.3 on Serial0/0 from LOADING to FULL, Loading Done
*Mar 1 00:03:19.079: %OSPF-5-ADJCHG: Process 1, Nbr 10.1.12.1 on Serial0/1 from LOADING to FULL, Loading Done
R1(config-router)#exit
R1(config)#router bgp 1100
R1(config-router)#neighbor 4.4.4.4 remote-as 1100
R1(config-router)#neighbor 4.4.4.4 update-source loopback 1
*Mar 1 00:04:52.143: %BGP-5-ADJCHANGE: neighbor 4.4.4.4 Up
R1(config-router)#exit
R1(config)#exit
R1#wr
R1#
На роутере R4:
- где
- 1 – роутер R1;
- 2 – роутер R5.
Добавлять сети в процесс BGP можно несколькими способами. Первый, это использовать команду network как и в других протоколах. Второй, это применение редистрибуции, потренируемся как раз еще и с route-map :). Следует также учитывать, что при редистрибуции в IOS до версии 12.2(8)T по умолчанию включена автосуммаризация (auto-summary), так что будьте внимательны. Рассмотрим сразу два варианта, для этого у нас имеется 7 loopback интерфейсов на R5.Итак, заходим на него:
- R5(config)#router bgp 2200
R5(config-router)#network 50.50.50.0 mask 255.255.255.0 – добавляем сеть, в которой находится loopback интерфейс
Продолжим:
- R5(config-router)#exit
R5(config)#ip access-list extended FOR_BGP – создаем список доступа для route-map. Разрешим для примера только 4 сети (первые 4 loopback интерфейса)
R5(config-ext-nacl)#permit ip 100.1.1.0 0.0.0.255 any
R5(config-ext-nacl)#permit ip 100.1.2.0 0.0.0.255 any
R5(config-ext-nacl)#permit ip 100.1.3.0 0.0.0.255 any
R5(config-ext-nacl)#permit ip 100.1.4.0 0.0.0.255 any
R5(config-ext-nacl)#deny ip any any
R5(config-ext-nacl)#exit
R5(config)#route-map FILTER_NETWORK – создаем route-map
R5(config-route-map)#match ip address FOR_BGP – привязываем созданный ранее список доступаR5(config-route-map)#exit
R5(config)#router bgp 2200
R5(config-router)#redistribute connected route-map FILTER_NETWORK – включаем редистрибуцию directly connected интерфейсов, причем попадать в BGP будут только те, которые разрешены в route-map
R5(config-router)#exit
R5(config)#exit
R5#wr
Роутер R5:
Роутер R4:
Все нормально, маршруты присутствуют как в таблице маршрутизации BGP, так и в общей таблице. Теперь, что мы видим на R1:
А видно, что что-то не так. Маршруты присутствуют в таблице маршрутизации BGP, но нет маркера «>», который обозначает лучший путь (то есть, маршрутов фактически нет). И вообще нет этих маршрутов в общей таблице маршрутизации.
Все это связано с еще одной особенностью протокола BGP, а именно с BGP синхронизацией. Она обозначает приблизительно следующее:
- не использовать и не объявлять маршруты, полученные через IBGP, пока эти же маршруты не будут получены через внутренний протокол маршрутизации (в нашем случае OSPF).
Применительно к нашей схеме получается такая ситуация, что, допустим, какой-то хост, находящийся за роутером R1, хочет попасть в сеть 100.1.1.0/24. Роутер R1 отошлет этот запрос дальше на роутер R2 или R3. Но ни один из этих роутеров не знает об этой сети и, следовательно, этот запрос будет сброшен.
Следует так же отметить, что BGP синхронизация ВКЛЮЧЕНА по умолчанию на версиях IOS до 12.2(8)T и ВЫКЛЮЧЕНА по умолчанию в версиях, начиная с 12.2(8)T. Выключение синхронизации в более новых версиях IOS связано с тем, что предполагается работа BGP на всех устройствах корпоративной сети. Другими словами, нам следовало бы запустить BGP и на роутерах R2 и R3. Но я специально не делал этого, чтобы показать вам эту особенность.
Но это не единственная особенность, которая мешает попаданию маршрутов в таблицу маршрутизации. Если вы посмотрите на картинку выше, вы заметите, что «Next hop» IP адрес у нас стоит роутера R5, о котором R1 тоже ничего не знает. И это следующий момент в BGP.
Правило гласит приблизительно следующее:
- для EBGP «соседей» менять «Next Hop» IP адрес на свой при объявлении маршрутов далее (касаемо нашей схемы это означает, что если роутер R1 объявляет маршруты роутеру R4, а тот в свою очередь роутеру R5, то R4 поменяет «Next Hop» адрес роутера R1 на свой).
- для IBGP «соседей» НЕ менять «Next Hop» IP адрес на свой при объявлении маршрутов далее (касаемо нашей схемы это означает, что при объявлении маршрутов роутером R5 роутеру R4, и далее роутеру R1, роутер R4 не поменяет «Next Hop» IP адрес на свой, что мы и видим на роутере R1).
Сделано это на тот случай, когда роутеры подключены в один сегмент (например Frame Ralay), но соседство установлено не «каждый с каждым». Тогда, чтобы исключить лишние скачки (Hops), и применяется это правило.
Решением проблемы в нашем случае может стать добавление IP адреса (сети) роутера R5 (10.1.14.2/30) в OSPF, но добавление внешних IP адресов во внутренний протокол маршрутизации это не грамотное решение и оно не применяется.
Итак, для решения нашей проблемы нам необходимо выключить BGP синхронизацию и заставить роутер R4 подставлять свой «Next Hop» IP адрес.
Заходим на R4:
- R4(config)#router bgp 1100
R4(config-router)#no synchronization – выключаем BGP синхронизацию
R4(config-router)#neighbor 1.1.1.1 next-hop-self – задаем правило выставления себя в качестве «Next Hop» для роутера R1
R4(config-router)#exit
R4(config)#exit
R4#wr
R4#
- R1#conf t
R1(config)#router bgp 1100
R1(config-router)#no synchronization
R1(config-router)#exit
R1(config)#exit
R1#wr
R1#
Что мы имеем :). Видно, что маршруты у нас появились в общей таблице маршрутизации и приняты в таблице маршрутизации BGP. Но команда ping не проходит. Связано это с тем, что, несмотря на выключение BGP синхронизации и настройки замены «Next Hop» IP адреса, роутеры R2 и R3 все еще не знают о сетях 100.1.1.0/24, 10.1.2.0/24 и так далее.
По большому счету, для окончательной и грамотной настройки BGP нам необходимо включить и настроить этот процесс на всех роутерах Corporate network (надо создать full mesh топологию). Не делал я этого с начала поста, так как хотел показать особенности BGP.
Эту настройку я оставил напоследок, чтобы рассказать про еще одну возможность настройки BGP на роутерах, находящихся в одной автономной системе.
Это использование так называемых BGP peer groups. Они очень удобны, когда вам необходимо настроить IBGP соседство с несколькими роутерами с одинаковыми параметрами.
Итак, приступаем к заключительной части :). Начнем настройку с роутера R1:
- R1#conf t
R1(config)#router bgp 1100
R1(config-router)#neighbor BGP_PEERS peer-group – создаем группу
R1(config-router)#neighbor BGP_PEERS remote-as 1100 – задаем автономную систему (AS)
R1(config-router)#neighbor BGP_PEERS update-source loopback 1 – делаем источником обновлений loopback интерфейс
R1(config-router)#neighbor BGP_PEERS next-hop-self – задаем условие, чтобы роутер подставлял свой IP адрес в качестве «Next Hop»
R1(config-router)#neighbor 2.2.2.2 peer-group BGP_PEERS – добавляем «соседей» и привязываем к ним конфигурацию группы
R1(config-router)#neighbor 3.3.3.3 peer-group BGP_PEERS
R1(config-router)#neighbor 4.4.4.4 peer-group BGP_PEERS
*Mar 1 02:42:37.191: %BGP-5-ADJCHANGE: neighbor 4.4.4.4 Down Member added to peergroup
R1(config-router)#network 1.1.1.1 mask 255.255.255.255 – чуть не забыл. Надо сделать так, чтобы роутер R5 знал, куда отсылать ответ на команду ping. Для этого добавляем IP адрес loopback интерфейса в процесс BGP
R1(config-router)#exit
*Mar 1 02:42:39.283: %BGP-5-ADJCHANGE: neighbor 4.4.4.4 Up
R1(config)#exit
R1#wr
R1#
Приведу команды show на роутерах R2, R3, R4 после выполнения настроек:
Все в порядке. Пусть вас не пугает маршрут с маркером «r». Это обозначает лишь то, что роутер не может добавить этот маршрут в таблицу маршрутизации, так есть маршрут с меньшей административной дистанцией (AD), а именно, полученный через OSPF.
Из рисунков видно, что соседство установлено «каждый с каждым». Здесь следует отметить еще одну особенность BGP. Это правило «BGP Split horizon». Оно звучит приблизительно так:
- не объявлять маршруты, полученные через IBGP, другим соседям IBGP. Другими словами, если R2 получит маршруты от R4, то он уже не будет их рассылать дальше роутерам R1 и R3, так как они являются IBGP соседями.
Вот по этой причине мы и реализовали схему «каждый с каждым» (full mesh). В противном случае, если бы у R1 не было бы соседства с R4, то и маршрутов от R5 мы бы не увидели. Можете проверить, если хотите :).
И теперь команда ping с роутера R1:
Я использовал так называемый расширенный режим команды ping, так как необходимо, чтобы источником (source IP) был 1.1.1.1. Все прошло успешно!!!
Как и обещал, приведу конфигурации роутеров для ориентировки и сверки (приведу только то, что настроено для экономии места):
Роутер R1:
hostname R1
interface Loopback1
ip address 1.1.1.1 255.255.255.255
interface Serial0/0
ip address 10.1.10.1 255.255.255.252
clock rate 2000000
interface Serial0/1
ip address 10.1.11.1 255.255.255.252
clock rate 2000000
router ospf 1
log-adjacency-changes
network 1.1.1.1 0.0.0.0 area 0
network 10.1.10.0 0.0.0.3 area 0
network 10.1.11.0 0.0.0.3 area 0
router bgp 1100
no synchronization
bgp log-neighbor-changes
network 1.1.1.1 mask 255.255.255.255
neighbor BGP_PEERS peer-group
neighbor BGP_PEERS remote-as 1100
neighbor BGP_PEERS update-source Loopback1
neighbor BGP_PEERS next-hop-self
neighbor 2.2.2.2 peer-group BGP_PEERS
neighbor 3.3.3.3 peer-group BGP_PEERS
neighbor 4.4.4.4 peer-group BGP_PEERS
no auto-summary
Роутер R2:
hostname R2
interface Loopback2
ip address 2.2.2.2 255.255.255.255
interface Serial0/0
ip address 10.1.12.1 255.255.255.252
clock rate 2000000
interface Serial0/1
ip address 10.1.11.2 255.255.255.252
clock rate 2000000
router ospf 1
log-adjacency-changes
network 2.2.2.2 0.0.0.0 area 0
network 10.1.11.0 0.0.0.3 area 0
network 10.1.12.0 0.0.0.3 area 0
router bgp 1100
no synchronization
bgp log-neighbor-changes
neighbor BGP_PEERS peer-group
neighbor BGP_PEERS remote-as 1100
neighbor BGP_PEERS update-source Loopback2
neighbor 1.1.1.1 peer-group BGP_PEERS
neighbor 3.3.3.3 peer-group BGP_PEERS
neighbor 4.4.4.4 peer-group BGP_PEERS
no auto-summary
Роутер R3:
hostname R3
interface Loopback3
ip address 3.3.3.3 255.255.255.255
interface Serial0/0
ip address 10.1.10.2 255.255.255.252
clock rate 2000000
interface Serial0/1
ip address 10.1.13.1 255.255.255.252
clock rate 2000000
router ospf 1
log-adjacency-changes
network 3.3.3.3 0.0.0.0 area 0
network 10.1.10.0 0.0.0.3 area 0
network 10.1.13.0 0.0.0.3 area 0
router bgp 1100
no synchronization
bgp log-neighbor-changes
neighbor BGP_PEERS peer-group
neighbor BGP_PEERS remote-as 1100
neighbor BGP_PEERS update-source Loopback3
neighbor 1.1.1.1 peer-group BGP_PEERS
neighbor 2.2.2.2 peer-group BGP_PEERS
neighbor 4.4.4.4 peer-group BGP_PEERS
no auto-summary
Роутер R4:
hostname R4
interface Loopback4
ip address 4.4.4.4 255.255.255.255
interface Serial0/0
ip address 10.1.12.2 255.255.255.252
clock rate 2000000
interface Serial0/1
ip address 10.1.13.2 255.255.255.252
clock rate 2000000
interface Serial0/2
ip address 10.1.14.1 255.255.255.252
clock rate 2000000
router ospf 1
log-adjacency-changes
network 4.4.4.4 0.0.0.0 area 0
network 10.1.12.0 0.0.0.3 area 0
network 10.1.13.0 0.0.0.3 area 0
router bgp 1100
no synchronization
bgp log-neighbor-changes
neighbor BGP_PEERS peer-group
neighbor BGP_PEERS remote-as 1100
neighbor BGP_PEERS update-source Loopback4
neighbor BGP_PEERS next-hop-self
neighbor 1.1.1.1 peer-group BGP_PEERS
neighbor 2.2.2.2 peer-group BGP_PEERS
neighbor 3.3.3.3 peer-group BGP_PEERS
neighbor 10.1.14.2 remote-as 2200
no auto-summary
Роутер R5:
hostname R5
interface Loopback1
ip address 100.1.1.1 255.255.255.0
interface Loopback2
ip address 100.1.2.1 255.255.255.0
interface Loopback3
ip address 100.1.3.1 255.255.255.0
interface Loopback4
ip address 100.1.4.1 255.255.255.0
interface Loopback5
ip address 100.1.5.1 255.255.255.0
interface Loopback6
ip address 100.1.6.1 255.255.255.0
interface Loopback7
ip address 50.50.50.1 255.255.255.0
interface Serial0/2
ip address 10.1.14.2 255.255.255.252
clock rate 2000000
router bgp 2200
no synchronization
bgp router-id 10.1.14.2
bgp log-neighbor-changes
network 50.50.50.0 mask 255.255.255.0
redistribute connected route-map FILTER_NETWORK
neighbor 10.1.14.1 remote-as 1100
no auto-summary
ip access-list extended FOR_BGP
permit ip 100.1.1.0 0.0.0.255 any
permit ip 100.1.2.0 0.0.0.255 any
permit ip 100.1.3.0 0.0.0.255 any
permit ip 100.1.4.0 0.0.0.255 any
deny ip any any
route-map FILTER_NETWORK permit 10
match ip address FOR_BGP
Ну что же, на этом хочу закончить этот пост. Сегодня получилось много текста, но, надеюсь, пост не был для вас скучным и вы вынесли из него что то полезное для себя :). Возможно в следующих постах я расскажу о различных аспектах тюнинга BGP. Так что не уходите далеко и заходите почаще :).
Источником вдохновения послужили уроки из курса BCSI CBT Nuggets.
Источник: go-to-easyit.com/2011/10/bgp-cisco.html
Комментариев нет:
Отправить комментарий