Использование BGP для резервирования Интернет-каналов
Материал из Xgu.ru
- Автор: Наташа Самойленко
- Короткий URL: BGP 2 ISP
Страница посвящена использованию BGP для резервирования Интернет-каналов.
Пока что информация предоставлена в виде лабораторных, со временем она будет переработана в странички.
К сожалению, сейчас на странице отсутствуют финальные конфигурации устройств, есть только пошаговое выполнение задания. Конфигурации будут, по возможности, добавлены позже.
При использовании этой информации обратите внимание на то, что это учебный материал. Не все сценарии и решения могут соответствовать реальной жизни.
Основная задача лабораторных показать какие механизмы доступны при работе с BGP для резервирования Интернет-каналов.
Все лабораторные ориентированы на то, что AS 100 это клиент подключенный к провайдерам. Во всех лабораторных, кроме первой, настройки выполняются для AS 100 и для пограничных маршрутизаторов подключенных провайдеров (AS 500 и AS 600). В первой лабораторной необходимо выполнить настройку BGP во всех AS: указать соседей и анонсировать сети.
[править] Лабораторная 1. Настройка BGP в сети с одним пограничным маршрутизатором и двумя каналами к разным провайдерам. Базовая фильтрация маршрутов
[править] Задание
Все лабораторные ориентированы на то, что AS 100 это клиент подключенный к провайдерам. В этой лабораторной необходимо выполнить настройку BGP во всех AS: указать соседей и анонсировать сети.
- Настройка IP-адресации
- Необходимо выполнить настройку IP-адресации в сети в соответствии с топологией.
- Если не указано явно, то 4 октет IP-адреса, соответствует номеру маршрутизатора.
- Настройка BGP на маршрутизаторах провайдеров.
- Необходимо настроить BGP для автономных систем 500, 600. Для AS 1100 и 1200 можно воспользоваться подготовленной конфигурацией. По желанию можно также выполнить настройку BGP во всей сети.
- Это задание выполняется без настроек связи с AS 100. Они будут выполнены отдельно.
- Настройка автономных систем 500, 1100, 1200
- Для этих автономных систем необходимо настроить связь с соседями BGP через IP-адреса физических интерфейсов (кроме AS 100). Проверить связь с соседями.
- Анонсировать все сети автономной системы. После этого шага проверить доступность сетей.
- В AS 500 настроить маршрутизаторы dyn5 и qua8 так, чтобы при получении информации из других автономных систем (по eBGP), они передавали маршруты внутренним соседям (по iBGP) с атрибутом NEXT HOP равным IP-адресу маршрутизатора, который анонсирует маршрут.
- Настройка автономной системы 600
- Настроить связь с соседями BGP через IP-адреса физических интерфейсов (кроме AS 100). Проверить связь с соседями.
- Анонсировать все сети автономной системы в BGP.
- На маршрутизаторах dyn6, qua9, qua10 необходимо настроить OSPF (эта настройка выполняется для того чтобы показать принципы работы BGP с протоколами IGP). В OSPF надо анонсировать все сети автономной системы и сети с другими автономными системами. Интерфейсы ведущие к другим автономным системам необходимо сделать пассивными для того чтобы анонсы OSPF не распространялись за пределы сети.
- Настройка подключения AS 100
- Настройка BGP-соседей на dyn1, dyn5 и dyn6.
- На топологии указаны IP-адреса, которые используются для связи с AS100. Соседи BGP должны быть настроены через loopback-интерфейсы (это не является обязательным требованием в реальной жизни, и используется для того чтобы знать как настраивать связь с соседями в таком случае).
- Проверка работы BGP.
- Проверить доступность всех сетей из локальной сети AS 100.
- Проверить правильность анонсирования маршрутов. И убедиться, что AS100 не используется как транзитная.
[править] Пошаговая настройка
[править] Настройка IP-адресации
Необходимо выполнить настройку IP-адресации в сети в соответствии с топологией. Если не указано явно, то 4 октет IP-адреса, соответствует номеру маршрутизатора.
[править] Настройка BGP на маршрутизаторах провайдеров
Необходимо настроить BGP для автономных систем 100, 500, 600. Для AS 1100 и 1200 можно воспользоваться подготовленной конфигурацией. По желанию можно также выполнить настройку BGP во всей сети.
Это задание выполняется без настроек связи с AS 100. Они будут выполнены отдельно.
[править] Настройка автономных систем 500, 1100, 1200
Для этих автономных систем необходимо настроить связь с соседями BGP через IP-адреса физических интерфейсов (кроме AS 100).
Настройки dyn5 из AS 500:
router bgp 500 neighbor 192.168.6.8 remote-as 500
Настройки qua8 из AS 500:
router bgp 500 neighbor 192.168.6.5 remote-as 500 neighbor 192.168.10.11 remote-as 1100
Настройки qua11 из AS 1100:
router bgp 1100 neighbor 192.168.10.8 remote-as 500 neighbor 192.168.14.12 remote-as 1200
Аналогично для AS1200. Проверить связь с соседями:
show ip bgp summary
Анонсировать все сети автономной системы.
Настройки dyn5 из AS 500:
router bgp 500 network 192.168.1.0 network 192.168.6.0
Так как сети 192.168.1.0/24 нет в таблице маршрутизации, то, для того чтобы BGP мог её анонсировать, необходимо создать статический маршрут в null0:
ip route 192.168.1.0 255.255.255.0 Null0
Настройки qua8 из AS 500:
router bgp 500 network 192.168.6.0/24 network 192.168.8.0/24 network 192.168.10.0/24
Настройки qua11 из AS 1100:
router bgp 1100 network 192.168.10.0/24 network 192.168.12.0/24 network 192.168.14.0/24
Настройки qua12 из AS 1200:
router bgp 1200 network 192.168.11.0/24 network 192.168.13.0/24 network 192.168.14.0/24
После этого шага проверить доступность сетей:
sh ip route sh ip bgp
В AS 500 настроить маршрутизаторы dyn5 и qua8 так, чтобы при получении информации из других автономных систем (по eBGP), они передавали маршруты внутренним соседям (по iBGP) с атрибутом NEXT HOP равным IP-адресу маршрутизатора, который анонсирует маршрут.
Настройки dyn5 из AS 500:
router bgp 500 neighbor 192.168.6.8 next-hop-self
Настройки qua8 из AS 500:
router bgp 500 neighbor 192.168.6.5 next-hop-self
Проверить доступность всех сетей.
[править] Настройка автономной системы 600
Настроить связь с соседями BGP через IP-адреса физических интерфейсов (кроме AS 100).
dyn6:
router bgp 600 neighbor 192.168.7.9 remote-as 600 neighbor 192.168.9.10 remote-as 600
qua9:
router bgp 600 neighbor 192.168.7.6 remote-as 600 neighbor 192.168.9.10 remote-as 600 neighbor 192.168.11.12 remote-as 1200
qua10:
router bgp 600 neighbor 192.168.7.6 remote-as 600 neighbor 192.168.9.9 remote-as 600
Анонсировать все сети автономной системы в BGP.
dyn6:
router bgp 600 network 192.168.3.0 network 192.168.7.0
Так как сети 192.168.3.0/24 нет в таблице маршрутизации, то, для того чтобы BGP мог её анонсировать, необходимо создать статический маршрут в null0:
ip route 192.168.3.0 255.255.255.0 Null0
qua9:
router bgp 600 network 192.168.7.0/24 network 192.168.9.0/24 network 192.168.11.0/24 network 192.168.16.0/24
На qua10 можно при таких настройках не анонсировать сети. Проверить связь с соседями:
show ip bgp summary
На маршрутизаторах dyn6, qua9, qua10 необходимо настроить OSPF (эта настройка выполняется для того чтобы показать принципы работы BGP с протоколами IGP). В OSPF надо анонсировать все сети автономной системы и сети с другими автономными системами. Интерфейсы ведущие к другим автономным системам необходимо сделать пассивными для того чтобы анонсы OSPF не распространялись за пределы сети.
dyn6:
router ospf 1 passive-interface FastEthernet1/0 network 192.168.0.0 0.0.255.255 area 0
qua9:
router ospf passive-interface eth2 network 192.168.0.0/16 area 0
qua10:
router ospf network 192.168.0.0/16 area 0
[править] Настройка подключения AS 100
[править] Настройка BGP-соседей на dyn1, dyn5 и dyn6
На топологии указаны IP-адреса, которые используются для связи с AS100.
Соседи EBGP на dyn1 должны быть настроены через loopback-интерфейсы (это не является обязательным требованием в реальной жизни, и используется для того чтобы знать как настраивать связь с соседями в таком случае).
dyn1:
router bgp 100 neighbor 192.168.1.1 remote-as 500 neighbor 192.168.1.1 ebgp-multihop 2 neighbor 192.168.1.1 update-source Loopback0 neighbor 192.168.3.1 remote-as 600 neighbor 192.168.3.1 ebgp-multihop 2 neighbor 192.168.3.1 update-source Loopback0
dyn5:
router bgp 500 neighbor 192.168.100.1 remote-as 100 neighbor 192.168.100.1 ebgp-multihop 2
Для того чтобы BGP смог установить TCP-сессию с dyn1, необходимо прописать статический маршрут к loopback-интерфейсу dyn1:
ip route 192.168.100.1 255.255.255.255 192.168.1.2
dyn6:
router bgp 600 neighbor 192.168.100.1 remote-as 100 neighbor 192.168.100.1 ebgp-multihop 2
Для того чтобы BGP смог установить TCP-сессию с dyn1, необходимо прописать статический маршрут к loopback-интерфейсу dyn1:
ip route 192.168.100.1 255.255.255.255 192.168.3.2
[править] Настройка анонсирования своего диапазона адресов на dyn1
Dyn1 должен анонсировать провайдерам сеть класс С 192.168.100.0/24
dyn1:
router bgp 100 network 192.168.100.0
Так как в таблице маршрутизации нет сети 192.168.100.0/24, то для того чтобы BGP мог её анонсировать, необходимо создать статический маршрут в null0:
ip route 192.168.100.0 255.255.255.0 Null0
[править] Проверка работы BGP
Проверить доступность всех сетей из локальной сети AS 100.
Проверить правильность анонсирования маршрутов. И убедиться, что AS100 не используется как транзитная.
[править] Лабораторная 2. Настройка базовой фильтрации маршрутов. Без изменения атрибутов.
[править] Задание
Лабораторная основана на предыдущей. Для того чтобы AS100 не была транзитной, необходимо настроить фильтрацию маршрутов.
- Настройка исходящей фильтрации маршрутов на dyn1.
- Для того чтобы AS100 не стала транзитной, необходимо настроить фильтрацию маршрутов. Dyn1 должен анонсировать соседним AS только свою сеть (192.168.100.0/24) и она должна быть локально анонсирована.
- Фильтрация входящих анонсов.
- В зависимости от политик и договоренностей с провайдером, провайдеры могут анонсировать, например:
- только маршрут по умолчанию
- маршрут по умолчанию и частичную таблицу маршрутизации (например, только с локальными сетями провайдера)
- полную таблица маршрутизации
- Для лабораторной необходимо настроить вариант, когда анонсируется вся таблица (full view).
- В зависимости от политик и договоренностей с провайдером, провайдеры могут анонсировать, например:
[править] Пошаговая настройка
[править] Фильтрация исходящих анонсов
Для того чтобы AS100 не стала транзитной (в нашем случае, перестала быть транзитной), необходимо настроить фильтрацию маршрутов. Dyn1 должен анонсировать соседним AS только свою сеть (192.168.100.0/24). Без настройки фильтрации AS100 становится транзитной. dyn1 анонсирует соседним маршрутизаторам все сети, которые он получил по BGP:
dyn1# sh ip bgp neighbors 192.168.1.5 advertised-routes BGP table version is 94, local router ID is 192.168.100.1 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 192.168.1.0 192.168.1.5 0 0 500 i *> 192.168.3.0 192.168.3.6 0 0 600 i *> 192.168.6.0 192.168.1.5 0 0 500 i *> 192.168.7.0 192.168.3.6 0 0 600 i *> 192.168.8.0 192.168.1.5 0 500 i *> 192.168.9.0 192.168.3.6 0 600 i *> 192.168.10.0 192.168.1.5 0 500 i *> 192.168.11.0 192.168.3.6 0 600 i *> 192.168.12.0 192.168.1.5 0 500 1100 i *> 192.168.13.0 192.168.3.6 0 600 1200 i *> 192.168.14.0 192.168.1.5 0 500 1100 i *> 192.168.16.0 192.168.3.6 0 600 i *> 192.168.100.0 0.0.0.0 0 32768 i Total number of prefixes 13
Можно настроить два варианта исходящих фильтров:
- Создать as-path access-list и prefix-list и применить их к соседям
- Создать as-path access-list и prefix-list, сослаться на них в route-map и применить к соседям
Настройка prefix-list для фильтрации исходящих анонсов. Анонсируем только суммарную сеть 192.168.100.0/24:
dyn1(config)# ip prefix-list local permit 192.168.100.0/24
Настройка as-path access-list для фильтрации исходящих анонсов. Анонсируем только локальные сети нашей AS:
dyn1(config)# ip as-path access-list 100 permit ^$
Применение фильтров к соседу dyn5 для анонсирования только локальных для AS100 сетей (сети в которых нулевой AS path):
ip as-path access-list 100 permit ^$ ip prefix-list local permit 192.168.100.0/24 ! router bgp 100 neighbor 192.168.1.1 prefix-list local out neighbor 192.168.1.1 filter-list 100 out
Применение фильтров через route-map для анонсирования только локальных для AS100 сетей (сети в которых нулевой AS path) и только своего префикса 192.168.100.0/24:
ip as-path access-list 100 permit ^$ ip prefix-list local permit 192.168.100.0/24 ! route-map local_route permit 10 match ip address prefix-list local match as-path 100
Применить route-map для исходящих обновлений с соседями dyn5 и dyn6 (фильтр нужно применять осторожно, так как, при ошибке в имени route-map, будет применен не существующий фильтр и ничего анонсироваться соседу не будет):
router bgp 100 neighbor 192.168.3.1 route-map local_route out
Несмотря на применение фильтра. AS всё ещё остается транзитной. Надо переслать заново маршруты соседям, чтобы они удалили лишнюю информацию:
clear ip bgp <neighbor-address> out
[править] Фильтрация входящих анонсов
В зависимости от политик и договоренностей с провайдером, в AS могут анонсироваться:
- только маршрут по умолчанию
- маршрут по умолчанию и частичная таблица маршрутизации (например, только с локальными сетями провайдера)
- полная таблица маршрутизации
Примеры конфигураций для всех случаев есть в пошаговой инструкции к этой лабораторной.
Для лабораторной необходимо настроить вариант, когда анонсируется вся таблица (full view). В данном случае можно не фильтровать входящую информацию. Однако можно использовать фильтры для защиты от “неправильных” анонсов от провайдера. На случай, если будут анонсированы какие-то “неправильные” адреса сетей. Такие фильтры составляют и регулярно обновляют, например, на сайте http://www.team-cymru.org/
Как минимум, можно отфильтровать приватный диапазон адресов, мультикаст адреса и др:
ip prefix-list bad_net description bad networks ip prefix-list bad_net seq 1000 deny 0.0.0.0/8 le 32 ip prefix-list bad_net seq 1100 deny 127.0.0.0/8 le 32 ip prefix-list bad_net seq 1110 deny 192.168.0.0/16 le 32 ip prefix-list bad_net seq 1120 deny 172.16.0.0/12 le 32 ip prefix-list bad_net seq 1130 deny 10.0.0.0/8 le 32 ip prefix-list bad_net seq 1140 deny 169.254.0.0/16 le 32 ip prefix-list bad_net seq 1150 deny 224.0.0.0/4 le 32 ip prefix-list bad_net seq 1160 deny 240.0.0.0/4 le 32 ip prefix-list bad_net seq 1300 permit 0.0.0.0/0 le 32
Применение фильтров к dyn5 и dyn6:
router bgp 100 neighbor 192.168.1.1 prefix-list bad_net in neighbor 192.168.3.1 prefix-list bad_net in
(опционально) Настройка для получения только непосредственно присоединенных маршрутов из AS 600 и всей таблицы от AS 500.
Фильтр для получения непосредственно присоединенных сетей AS 600 (сети в которых AS path 600):
ip as-path access-list 6 permit ^600$ ! route-map from_AS_600 permit 10 match as-path 6
Применить фильтр для входящих обновлений с соседом dyn6 (фильтр нужно применять осторожно, так как, при ошибке в имени route-map, будет применен не существующий фильтр и от соседа не будут получены маршруты):
router bgp 100 neighbor 192.168.3.6 route-map from_AS_600 in
Несмотря на применение фильтра всё ещё доступны все маршруты через AS 600. Надо получить заново маршруты от dyn6:
clear ip bgp 192.168.3.6 in
После этого через AS 600 доступны только её локальные маршруты.
Однако, на случай выхода из строя провайдера с AS 500, необходимо прописать маршрут по умолчанию на AS 600. Он будет использоваться только если первый провайдер недоступен.
ip route 0.0.0.0 0.0.0.0 192.168.3.1
В результате будет выполнен простой вариант распределения нагрузки между провайдерами. Более сложные настройки будут выполняться в следующих лабораторных.
[править] Лабораторная 3. Настройка BGP в сети с одним пограничным маршрутизатором и двумя каналами к разным провайдерам. Схема: основной/резервный каналы
[править] Задание
Лабораторная основана на предыдущей. Маршрутизатор dyn5 должен использоваться как основной провайдер и для входящего и для исходящего трафика, а dyn6 как резервный.
- Настройка отправки исходящего трафика через dyn5.
- С помощью атрибута weight
- Настройка отправки входящего трафика через dyn5.
- С помощью AS path prepend
[править] Пошаговая настройка
[править] Управление исходящим трафиком. Изменение атрибута weight
Самый простой способ настроить dyn5 в роли основного провайдера, это изменит вес всех маршрутов, которые приходят от него.
Значение атрибута weight можно привязывать непосредственно к соседу (все маршруты, которые приходят от указанного соседа, будут в таблице BGP с весом 100):
router bgp 100 neighbor 192.168.1.1 weight 100
Для того чтобы информация обновилась, необходимо обновить маршруты:
clear ip bgp 192.168.1.1 in
Изменение атрибута weight может использоваться и для распределения нагрузки между провайдерами, поэтому ниже показан вариант изменения атрибута через route-map (так как сейчас необходимо увеличить вес для всех маршрутов от соседа, то команды match нет):
route-map dyn5 permit 10 set weight 100
Применение к соседу:
router bgp 100 neighbor 192.168.1.1 route-map dyn5 in
Для того чтобы информация обновилась, необходимо обновить маршруты:
clear ip bgp 192.168.1.1 in
[править] Управление входящим трафиком. Использование AS path prepend
Для того чтобы ухудшить маршруты через провайдера dyn6, будет использоваться AS path prepend:
route-map local_route permit 10 match ip address prefix-list local match as-path 100 set as-path prepend 100 100 100
Применение к соседу:
router bgp 100 neighbor 192.168.3.1 route-map local_route out
После этого необходимо проверить маршрут в сеть 192.168.100.0/22 на dyn6 и убедиться, что он не использует dyn1 напрямую. Если необходимо, то нужно увеличить количество AS.
Для того чтобы информация обновилась, необходимо обновить маршруты:
clear ip bgp 192.168.3.1 out
[править] Лабораторная 4. Настройка BGP в сети с одним пограничным маршрутизатором и двумя каналами к разным провайдерам. Распределение и балансировка трафика между провайдерами
[править] Задание
Лабораторная основана на предыдущей. Необходимо удалить настройки прошлой лабораторной, для того чтобы ни у кого из провайдеров не было предпочтения. В первом задании настраивается один из механизмов фильтрации маршрутов (по AS path). А во втором используется BGP multipath для балансировки нагрузки между провайдерами. Балансировка выполняется для исходящего трафика, как с учетом пропускной способности каналов, так и без.
- Распределение нагрузки между каналами для исходящего трафика с указанием AS path
- Распределить нагрузку между провайдерами таким образом, чтобы трафик в AS 600 шел через dyn6, трафик в AS 500 шел через dyn5, а остальной трафик распределялся между провайдерами. В случае выхода из строя одного из провайдеров, весь трафик должен идти через него.
- С прошлой лабораторной необходимо отменить route-map и другие параметры, для того чтобы оба провайдера анонсировали полную таблицу маршрутизации и ни у кого из них не было предпочтения.
- Балансировка исходящего трафика с помощью BGP multipath и dmzlink-bw.
- Провайдеры анонсируют полную таблицу маршрутизации. Трафик в автономные системы с одинаковым размером AS path балансируется между двумя провайдерами.
- Провайдеры анонсируют маршрут по умолчанию и частичную таблицу маршрутизации (только с локальными сетями провайдера). Трафик в другие автономные системы балансируется между двумя провайдерами.
- Балансировка с учетом пропускной способности канала.
- Сохраняются настройки предыдущего пункта. Но при балансировке нагрузки учитывается пропускная способность каналов к провайдерам.
- Настройка разделения нагрузки между провайдерами для входящего трафика.
- Вариант 1. Анонсировать с пограничных маршрутизаторов сеть 192.168.100.0/22. С dyn1 сеть 192.168.101.0/24, а с dyn2 сеть 192.168.102.0/24. Засчет этого входящий трафик к одной сети будет идти через один маршрутизатор, ко второй – через второй.
- Вариант 2. Если предыдущий метод разделения нагрузки не подходит или не дает хороших результатов, можно использовать AS prepend. Как совместно с предыдущим методом, так и независимо.
[править] Пошаговая настройка
[править] Распределение нагрузки между каналами для исходящего трафика с указанием AS path
Распределить нагрузку между провайдерами таким образом, чтобы трафик в AS 600 шел через dyn6, трафик в AS 500 шел через dyn5, а остальной трафик распределялся между провайдерами. В случае выхода из строя одного из провайдеров, весь трафик должен идти через него.
С прошлой лабораторной необходимо отменить route-map, для того чтобы оба провайдера анонсировали полную таблицу маршрутизации.
Если необходимо настроить балансировку исходящего трафика на одном маршрутизаторе, то проще всего на это повлиять с помощью атрибута weight.
Установка приоритета для непосредственно присоединенных сетей AS 600 (сети в которых AS path равен 600):
ip as-path access-list 6 permit ^600$ ! route-map prefer_AS_600 permit 10 match as-path 6 set weight 100 route-map prefer_AS_600 permit 20
Применение route-map для входящих обновлений с соседом dyn6:
router bgp 100 neighbor 192.168.3.6 route-map prefer_AS_600 in
Несмотря на применение route-map все маршруты всё ещё доступны с метрикой по умолчанию. Надо получить заново маршруты от dyn6:
clear ip bgp 192.168.3.6 in
Установка приоритета для непосредственно присоединенных сетей AS 500 (сети в которых AS path равен 500):
ip as-path access-list 5 permit ^500$ ! route-map prefer_AS_500 permit 10 match as-path 5 set weight 100 route-map prefer_AS_500 permit 20
Применение route-map для входящих обновлений с соседом dyn5:
router bgp 100 neighbor 192.168.1.5 route-map prefer_AS_500 in
Несмотря на применение route-map все маршруты всё ещё доступны с метрикой по умолчанию. Надо получить заново маршруты от dyn5:
clear ip bgp 192.168.1.5 in
[править] Балансировка исходящего трафика с помощью BGP multipath и dmzlink-bw
[править] Провайдеры анонсируют полную таблицу маршрутизации
Провайдеры анонсируют полную таблицу маршрутизации. Трафик в автономные системы с одинаковым размером AS path балансируется между двумя провайдерами.
Эта команда позволяет BGP использовать два пути в одну сеть даже в том случае, если они с разными путями через автономные системы (но одинаковой длины). Она может быть не видна в подсказках (скрытая команда) и есть вероятность, что она будет не во всех версиях IOS (в 12.4 (22)T есть):
router bgp 100 bgp bestpath as-path multipath-relax
Настройка балансировки нагрузки между внешними (eBGP) маршрутами:
router bgp 100 maximum-paths 2
Хотя в таблице BGP маршрут выбирается по-прежнему только один, в таблице маршрутизации будут оба:
dyn1# sh ip bgp BGP table version is 33, local router ID is 192.168.100.1 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path ..... *> 192.168.10.0 192.168.1.1 0 500 i *> 192.168.11.0 192.168.3.1 0 600 i * 192.168.12.0 192.168.3.1 0 600 1200 1100 i *> 192.168.1.1 0 500 1100 i *> 192.168.13.0 192.168.3.1 0 600 1200 i * 192.168.1.1 0 500 1100 1200 i * 192.168.14.0 192.168.3.1 0 600 1200 i *> 192.168.1.1 0 500 1100 i
Подробная информация о маршруте в таблице BGP:
dyn1#sh ip bgp 192.168.14.0 BGP routing table entry for 192.168.14.0/24, version 43 Paths: (2 available, best #2, table Default-IP-Routing-Table) Multipath: eBGP Flag: 0x1820 Not advertised to any peer 500 1100 192.168.1.1 from 192.168.1.1 (192.168.6.5) Origin IGP, localpref 100, valid, external, multipath 600 1200 192.168.3.1 from 192.168.3.1 (192.168.7.6) Origin IGP, localpref 100, valid, external, multipath, best
Таблица маршрутизации:
dyn1# sh ip route Gateway of last resort is 192.168.3.1 to network 0.0.0.0 B 192.168.12.0/24 [20/0] via 192.168.1.1, 01:23:19 B 192.168.13.0/24 [20/0] via 192.168.3.1, 01:23:27 B 192.168.14.0/24 [20/0] via 192.168.3.1, 01:23:19 [20/0] via 192.168.1.1, 01:23:19
Подробная информация о маршруте в таблице маршрутизации:
dyn1# sh ip route 192.168.14.0 Routing entry for 192.168.14.0/24 Known via "bgp 100", distance 20, metric 0 Tag 600, type external Last update from 192.168.1.1 00:02:29 ago Routing Descriptor Blocks: * 192.168.3.1, from 192.168.3.1, 00:03:25 ago Route metric is 0, traffic share count is 1 AS Hops 2 Route tag 600 192.168.1.1, from 192.168.1.1, 00:02:29 ago Route metric is 0, traffic share count is 1 AS Hops 2 Route tag 600
Балансировка CEF:
dyn1#sh ip cef 192.168.14.0 internal 192.168.14.0/24, epoch 0, RIB[B], refcount 5, per-destination sharing ... output chain: loadinfo 67ED74D8, per-session, 2 choices, flags 0003, 5 locks flags: Per-session, for-rx-IPv4 16 hash buckets < 0 > IP adj out of FastEthernet1/0, addr 192.168.1.1 66FF04A0 < 1 > IP adj out of FastEthernet2/0, addr 192.168.3.1 66FF0360 < 2 > IP adj out of FastEthernet1/0, addr 192.168.1.1 66FF04A0 < 3 > IP adj out of FastEthernet2/0, addr 192.168.3.1 66FF0360 < 4 > IP adj out of FastEthernet1/0, addr 192.168.1.1 66FF04A0 < 5 > IP adj out of FastEthernet2/0, addr 192.168.3.1 66FF0360 < 6 > IP adj out of FastEthernet1/0, addr 192.168.1.1 66FF04A0 < 7 > IP adj out of FastEthernet2/0, addr 192.168.3.1 66FF0360 < 8 > IP adj out of FastEthernet1/0, addr 192.168.1.1 66FF04A0 < 9 > IP adj out of FastEthernet2/0, addr 192.168.3.1 66FF0360 <10 > IP adj out of FastEthernet1/0, addr 192.168.1.1 66FF04A0 <11 > IP adj out of FastEthernet2/0, addr 192.168.3.1 66FF0360 <12 > IP adj out of FastEthernet1/0, addr 192.168.1.1 66FF04A0 <13 > IP adj out of FastEthernet2/0, addr 192.168.3.1 66FF0360 <14 > IP adj out of FastEthernet1/0, addr 192.168.1.1 66FF04A0 <15 > IP adj out of FastEthernet2/0, addr 192.168.3.1 66FF0360 Subblocks: None
[править] Провайдеры анонсируют маршрут по умолчанию и частичную таблицу маршрутизации
Провайдеры анонсируют маршрут по умолчанию и частичную таблицу маршрутизации (только с локальными сетями провайдера). Трафик в другие автономные системы балансируется между двумя провайдерами по маршрутам по умолчанию.
Настройка маршрутизаторов провайдера для анонсирования маршрута по умолчанию. dyn5:
router bgp 500 neighbor 192.168.100.1 default-originate
dyn6:
router bgp 600 neighbor 192.168.100.1 default-originate
На пограничном маршрутизаторе dyn1 должны быть настройки:
router bgp 100 bgp bestpath as-path multipath-relax maximum-paths 2
Трафик балансируется между маршрутами по умолчанию:
B* 0.0.0.0/0 [20/0] via 192.168.3.1, 00:12:17 [20/0] via 192.168.1.1, 00:12:17
Фильтрация маршрутов, которые анонсируют провадеры, выполняется как и фильтрация маршрутов для локальной AS 100.
[править] Балансировка с учетом пропускной способности канала
Для того чтобы можно было использовать эту возможность, необходимо перенастроить соседство с AS100, так как эта возможность поддерживается только для непосредственно присоединенных внешних соседей BGP.
В остальном сохраняются настройки предыдущего пункта. Настройки связи с AS 100 на dyn5: dyn1:
router bgp 100 neighbor 192.168.1.1 remote-as 500 neighbor 192.168.3.1 remote-as 600
dyn5:
router bgp 500 neighbor 192.168.1.2 remote-as 100 neighbor 192.168.1.2 default-originate
dyn6:
router bgp 600 neighbor 192.168.3.2 remote-as 100 neighbor 192.168.3.2 default-originate
Проверка:
dyn1#sh ip bgp summary BGP router identifier 192.168.100.1, local AS number 100 .... Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 1.2.168.1.1 4 500 35 51 100 0 0 00:04:47 8 1.2.168.3.1 4 600 36 46 100 0 0 00:03:45 9
Настройка пропускной способности на интерфейсах dyn1:
interface FastEthernet1/0 bandwidth 8000 ! interface FastEthernet2/0 bandwidth 2000
До настройки балансировки с учетом пропускной способности в таблице маршрутизации два эквивалентных маршрута:
dyn1#sh ip route 0.0.0.0 Routing entry for 0.0.0.0/0, supernet Known via "bgp 100", distance 20, metric 0, candidate default path Tag 500, type external Last update from 192.168.1.1 00:13:26 ago Routing Descriptor Blocks: 192.168.3.1, from 192.168.3.1, 00:13:26 ago Route metric is 0, traffic share count is 1 AS Hops 1 Route tag 500 * 192.168.1.1, from 192.168.1.1, 00:13:26 ago Route metric is 0, traffic share count is 1 AS Hops 1 Route tag 500
Таблица BGP:
dyn1#sh ip bgp 0.0.0.0 BGP routing table entry for 0.0.0.0/0, version 100 Paths: (2 available, best #2, table Default-IP-Routing-Table) Multipath: eBGP Advertised to update-groups: 1 600 192.168.3.1 from 192.168.3.1 (192.168.7.6) Origin IGP, metric 0, localpref 100, valid, external, multipath 500 192.168.1.1 from 192.168.1.1 (192.168.6.5) Origin IGP, metric 0, localpref 100, valid, external, multipath, best
Для того чтобы учитывалась пропускная способность канала надо включить эту возможность глобально в процессе BGP и настроить для соответствующих внешних соседей:
router bgp 100 bgp dmzlink-bw neighbor 192.168.1.1 dmzlink-bw neighbor 192.168.3.1 dmzlink-bw
После этой настройки необходимо чтобы соседи заново отправили обновления BGP:
clear ip bgp * soft in
Таблица маршрутизации:
dyn1#sh ip route 0.0.0.0 Routing entry for 0.0.0.0/0, supernet Known via "bgp 100", distance 20, metric 0, candidate default path Tag 500, type external Last update from 192.168.1.1 00:01:02 ago Routing Descriptor Blocks: 192.168.3.1, from 192.168.3.1, 00:01:02 ago Route metric is 0, traffic share count is 1 AS Hops 1 Route tag 500 * 192.168.1.1, from 192.168.1.1, 00:01:02 ago Route metric is 0, traffic share count is 4 AS Hops 1 Route tag 500
Таблица BGP:
dyn1#sh ip bgp 0.0.0.0 BGP routing table entry for 0.0.0.0/0, version 123 Paths: (2 available, best #2, table Default-IP-Routing-Table) Multipath: eBGP Flag: 0x800 Advertised to update-groups: 1 600 192.168.3.1 from 192.168.3.1 (192.168.7.6) Origin IGP, metric 0, localpref 100, valid, external, multipath DMZ-Link Bw 250 kbytes 500 192.168.1.1 from 192.168.1.1 (192.168.6.5) Origin IGP, metric 0, localpref 100, valid, external, multipath, best DMZ-Link Bw 1000 kbytes
CEF (соблюдается соотношение 4:1):
dyn1#sh ip cef 0.0.0.0 0.0.0.0 internal ... 15 hash buckets < 0 > IP adj out of FastEthernet2/0, addr 192.168.3.1 66B02DE0 < 1 > IP adj out of FastEthernet1/0, addr 192.168.1.1 66B02F20 < 2 > IP adj out of FastEthernet2/0, addr 192.168.3.1 66B02DE0 < 3 > IP adj out of FastEthernet1/0, addr 192.168.1.1 66B02F20 < 4 > IP adj out of FastEthernet2/0, addr 192.168.3.1 66B02DE0 < 5 > IP adj out of FastEthernet1/0, addr 192.168.1.1 66B02F20 < 6 > IP adj out of FastEthernet1/0, addr 192.168.1.1 66B02F20 < 7 > IP adj out of FastEthernet1/0, addr 192.168.1.1 66B02F20 < 8 > IP adj out of FastEthernet1/0, addr 192.168.1.1 66B02F20 < 9 > IP adj out of FastEthernet1/0, addr 192.168.1.1 66B02F20 <10 > IP adj out of FastEthernet1/0, addr 192.168.1.1 66B02F20 <11 > IP adj out of FastEthernet1/0, addr 192.168.1.1 66B02F20 <12 > IP adj out of FastEthernet1/0, addr 192.168.1.1 66B02F20 <13 > IP adj out of FastEthernet1/0, addr 192.168.1.1 66B02F20 <14 > IP adj out of FastEthernet1/0, addr 192.168.1.1 66B02F20
[править] Настройка разделения нагрузки между провайдерами для входящего трафика
Вариант 1. Анонсировать с пограничных маршрутизаторов сеть 192.168.100.0/22. С dyn1 сеть 192.168.101.0/24, а с dyn2 сеть 192.168.102.0/24.
Засчет этого входящий трафик к одной сети будет идти через один маршрутизатор, ко второй – через второй.
Вариант 2. Если предыдущий метод разделения нагрузки не подходит или не дает хороших результатов, можно использовать AS prepend. Как совместно с предыдущим методом, так и независимо.
[править] Лабораторная 5. Настройка BGP в сети с двумя пограничными маршрутизаторами и двумя каналами к разным провайдерам. Использование одного провайдера как основного.
[править] Задание
В локальной сети есть два пограничных маршрутизатора, каждый подключен к одному провайдеру. Каналы должны использоваться как основной и резервный. Для исходящего трафика используется HSRP на dyn1 и dyn2. Для входящего используется метод AS path prepend.
- Настройка IP-адресации
- Необходимо выполнить настройку IP-адресации в сети в соответствии с топологией. Изменилась адресация связанная с подключением AS 100. Если не указано явно, то 4 октет IP-адреса, соответствует номеру маршрутизатора.
- Настройка подключения AS 100
- Настройка eBGP-соседей на dyn1, dyn2, dyn5 и dyn6.
- На топологии указаны IP-адреса, которые используются для связи с AS100. Настроить связи с eBGP-соседями через физические интерфейсы. Настроить IBGP между dyn1 и dyn2 между loopback-интерфейсами. Прописать статические маршруты к loopback.
- Для того чтобы AS100 не стала транзитной, необходимо настроить фильтрацию маршрутов. Маршрутизаторы dyn1 и dyn2 должны анонсировать соседним AS только свою сеть (192.168.100.0/22).
- От провайдера ISP2 должна приходить частичная таблица маршрутизации (сети автономной системы 600) и маршрут по умолчанию.
- Настройка HSRP в локальной сети AS 100 на маршрутизаторах dyn1, dyn2. Dyn1 должен быть Active, если доступен ISP1 и весь исходящий трафик, кроме трафика в AS600, должен передаваться через него.
- Виртуальный IP-адрес, должен быть настроен как шлюз по умолчанию для dyn3 и dyn4.
- Настройка AS path prepend для управления входящим трафиком.
- По умолчанию весь входящий трафик должен передаваться через ISP1. Если он недоступен, то должно происходить автоматическое переключение на второго провайдера.
[править] Пошаговая настройка
[править] Настройка IP-адресации
Необходимо выполнить настройку IP-адресации в сети в соответствии с топологией. Изменилась адресация связанная с подключением AS 100. Если не указано явно, то 4 октет IP-адреса, соответствует номеру маршрутизатора.
[править] Настройка подключения AS 100
Настройка eBGP-соседей на dyn1, dyn2, dyn5 и dyn6.
На топологии указаны IP-адреса, которые используются для связи с AS100. Настроить связи с eBGP-соседями через физические интерфейсы.
На dyn5 всё остается без изменений:
router bgp 500 network 192.168.1.0 network 192.168.6.0 neighbor 192.168.1.2 remote-as 100 neighbor 192.168.6.8 remote-as 500 neighbor 192.168.6.8 next-hop-self
dyn6:
router bgp 600 neighbor 192.168.3.6 remote-as 100
Настроить IBGP между dyn1 и dyn2 между loopback-интерфейсами. Прописать статические маршруты к loopback.
dyn1:
ip route 192.168.100.2 255.255.255.255 192.168.103.2 ! router bgp 100 neighbor 192.168.100.2 remote-as 100 neighbor 192.168.100.2 update-source Loopback0
На dyn2, кроме соседей, необходимо настроить анонсирование сети 192.168.100.0/22:
ip route 192.168.100.0 255.255.252.0 Null0 ip route 192.168.100.1 255.255.255.255 192.168.103.1 ! router bgp 100 network 192.168.100.0 mask 255.255.252.0 neighbor 192.168.3.5 remote-as 600 neighbor 192.168.100.1 remote-as 100 neighbor 192.168.100.1 update-source Loopback0
[править] Настройка фильтрации исходящих маршрутов
Для того чтобы AS100 не стала транзитной, необходимо настроить фильтрацию маршрутов. Маршрутизаторы dyn1 и dyn2 должны анонсировать соседним AS только свою сеть (192.168.100.0/22).
Используется тот же фильтр, что и в прошлых лабораторных. Он должен быть применен на dyn1 и dyn2:
ip as-path access-list 100 permit ^$ ! route-map local_route permit 10 match as-path 100
На dyn1:
router bgp 100 neighbor 192.168.1.1 route-map local_route out
На dyn2:
router bgp 100 neighbor 192.168.3.5 route-map local_route out
[править] Настройка фильтрации входящих маршрутов
От провайдера ISP2 должна приходить частичная таблица маршрутизации (сети автономной системы 600) и маршрут по умолчанию.
Это должно быть настроено со стороны провайдера, однако фильтрация на dyn2 нужна на случай ошибок провайдера:
ip as-path access-list 6 permit ^600$ ! route-map only_AS_600 permit 10 match as-path 6
Применение route-map для входящих обновлений с соседом dyn6:
router bgp 100 neighbor 192.168.3.5 route-map only_AS_600 in
[править] Настройка HSRP на маршрутизаторах dyn1, dyn2.
Настройка HSRP в локальной сети AS 100 на маршрутизаторах dyn1, dyn2. Dyn1 должен быть Active, если доступен провайдер с AS500 и исходящий трафик должен передаваться через него.
Настройки HSRP на dyn1:
interface FastEthernet0/0 standby version 2 standby 1 ip 192.168.103.100 standby 1 priority 110 standby 1 preempt delay minimum 60
Настройки HSRP на dyn2:
interface FastEthernet0/0 standby version 2 standby 1 ip 192.168.103.100 standby 1 preempt
Настройка теста IP SLA на dyn1, который будет отслеживать доступность доступность провайдера ISP1 (AS 500):
ip sla 1 icmp-echo 192.168.6.8 source-interface FastEthernet1/0 timeout 500 frequency 3 ip sla schedule 1 life forever start-time now
Если для проверки доступности выбран какой-то ресурс в сети провайдера, а не пограничный маршрутизатор, то лучше прописать к нему статический маршрут:
ip route 192.168.6.8 255.255.255.255 192.168.1.1
Настройка track для мониторинга доступности ISP1.
track 1 ip sla 1 reachability
Настройка в track задержки на переход в состояния UP и DOWN:
track 1 ip sla 1 reachability delay down 10 up 5
Привязка track к HSRP. Если track в состоянии DOWN, приоритет маршрутизатора уменьшится на 20:
interface FastEthernet0/0 standby 1 track 1 decrement 20
Виртуальный IP-адрес, должен быть настроен как шлюз по умолчанию для dyn3 и dyn4.
ip route 0.0.0.0 0.0.0.0 192.168.103.100
[править] Настройка AS path prepend для управления входящим трафиком
Необходимо добавить в существующую route-map настройки AS path prepend:
route-map local_route permit 10 match as-path 100 set as-path prepend 100 100 100
[править] Лабораторная 6. Настройка BGP в сети с двумя пограничными маршрутизаторами и двумя каналами к разным провайдерам. Управление входящим и исходящим трафиком
[править] Задание
В этой лабораторной используется несколько методов распределения и балансировки нагрузки, как для каналов с провайдерами, так и для локальной сети. Те методы, которые использовались в предыдущих лабораторных, тут упоминаются как варианты, но не настраиваются.
- Настройка IP-адресации
- Необходимо выполнить настройку IP-адресации в сети в соответствии с топологией. Если не указано явно, то 4 октет IP-адреса, соответствует номеру маршрутизатора.
- Настройка OSPF в локальной сети AS 100 на маршрутизаторах dyn1, dyn2, dyn3, dyn4. В OSPF надо анонсировать все сети автономной системы.
- Настройка eBGP-соседей на dyn5 и dyn6.
- На топологии указаны IP-адреса, которые используются для связи с AS100.
- Настроить связи с eBGP-соседями через физические интерфейсы.
- Базовая настройка BGP в AS 100
- Настройка связи с соседями (IBGP через loopback-интерфейсы).
- Настройка анонсирования своего диапазона адресов на dyn1 и dyn2. Для того чтобы AS100 не стала транзитной, необходимо настроить фильтрацию маршрутов. Dyn1 и dyn2 должны анонсировать соседним AS только свою сеть (192.168.100.0/22).
- Проверка базовых настроек BGP.
- Проверить доступность всех сетей из локальной сети AS 100.
- Проверить правильность анонсирования маршрутов. И убедиться, что AS100 не используется как транзитная.
- Настройка разделения нагрузки между провайдерами для исходящего трафика (настраивать можно или совместно два метода или по очереди их, отменяя предыдущий).
- Настройка провайдера с AS 500 как основного, более приоритетного, для исходящего трафика.
- Исходящий трафик должен идти через AS 600, если он идет в одну из её сетей. В остальных случаях должен использоваться путь через AS 500 на обоих маршрутизаторах. Этого можно добиться с помощью фильтрации маршрутов от AS600. И получением из неё только частичной таблицы маршрутизации и маршрута по умолчанию. В случае выхода из строя провайдера с AS 500, весь трафик должен передаваться через AS 600.
- Настройка распределения нагрузки между провайдерами с помощью Local preference. Часть сетей может анонсироваться с одним значением Local preference, а остальные с другим.
- Настройка провайдера с AS 500 как основного, более приоритетного, для исходящего трафика.
- Балансировка нагрузки для исходящего трафика между провайдерами с помощью BGP multipath для внутренних и внешних BGP-соседей (предыдущие методы распределения нагрузки необходимо отменить, чтобы было маршруты с одинаковой длинной атрибута AS path)
- Балансировка без учета пропускной способности каналов (каналы считаются равными)
- Для внешних соседей
- Для внутренних соседей
- Балансировка с учетом пропускной способности каналов
- Для внешних соседей
- Для внутренних соседей
- Балансировка без учета пропускной способности каналов (каналы считаются равными)
- Настройка разделения нагрузки между провайдерами для входящего трафика.
- Вариант 1. Анонсировать с пограничных маршрутизаторов сеть 192.168.100.0/22. С dyn1 сеть 192.168.101.0/24, а с dyn2 сеть 192.168.102.0/24. (предыдущие лабораторные) Засчет этого входящий трафик к одной сети будет идти через один маршрутизатор, ко второй – через второй.
- Вариант 2. Для линков с одним и тем же провайдером, можно использовать атрибут MED для того чтобы указать провайдеру, какой из входов в автономную систему приоритетнее.
- Вариант 3. Если предыдущий метод разделения нагрузки не подходит или не дает хороших результатов, можно использовать AS prepend. Как совместно с предыдущим методом, так и независимо. (предыдущие лабораторные)
- Вариант 3. Если провайдеры поддерживают community, то можно использовать их.
- Настройка community со стороны клиента
- Настройка community со стороны провайдеров
[править] Пошаговая настройка
[править] Настройка IP-адресации
Необходимо выполнить настройку IP-адресации в сети в соответствии с топологией. Если не указано явно, то 4 октет IP-адреса, соответствует номеру маршрутизатора.
[править] Настройка OSPF
Настройка OSPF в локальной сети AS 100 на маршрутизаторах dyn1, dyn2, dyn3, dyn4. В OSPF надо анонсировать все сети автономной системы.
Dyn1, dyn2
router ospf 1 passive-interface FastEthernet1/0 passive-interface FastEthernet2/0 network 192.168.0.0 0.0.255.255 area 0
Dyn3, dyn4
router ospf 1 network 192.168.0.0 0.0.255.255 area 0
[править] Настройка eBGP-соседей на dyn5 и dyn6
На топологии указаны IP-адреса, которые используются для связи с AS100. Настроить связи с eBGP-соседями через физические интерфейсы.
Итоговые настройки на dyn5
router bgp 500 network 192.168.1.0 network 192.168.6.0 neighbor 192.168.1.2 remote-as 100 neighbor 192.168.1.6 remote-as 100 neighbor 192.168.6.8 remote-as 500 neighbor 192.168.6.8 next-hop-self
Итоговые настройки на dyn6
router bgp 600 network 192.168.2.0 network 192.168.3.0 network 192.168.7.0 neighbor 192.168.3.2 remote-as 100 neighbor 192.168.3.6 remote-as 100 neighbor 192.168.7.9 remote-as 600 neighbor 192.168.9.10 remote-as 600
[править] Базовая настройка BGP в AS 100
[править] Настройка связи с соседями (IBGP через loopback-интерфейсы)
dyn1
router bgp 100 neighbor 192.168.1.1 remote-as 500 neighbor 192.168.3.1 remote-as 600 neighbor 192.168.100.2 remote-as 100 neighbor 192.168.100.2 update-source Loopback0 neighbor 192.168.100.3 remote-as 100 neighbor 192.168.100.3 update-source Loopback0 neighbor 192.168.100.4 remote-as 100 neighbor 192.168.100.4 update-source Loopback0
dyn2
router bgp 100 neighbor 192.168.1.5 remote-as 500 neighbor 192.168.3.5 remote-as 600 neighbor 192.168.100.1 remote-as 100 neighbor 192.168.100.1 update-source Loopback0 neighbor 192.168.100.3 remote-as 100 neighbor 192.168.100.3 update-source Loopback0 neighbor 192.168.100.4 remote-as 100 neighbor 192.168.100.4 update-source Loopback0
dyn3
router bgp 100 neighbor 192.168.100.1 remote-as 100 neighbor 192.168.100.1 update-source Loopback0 neighbor 192.168.100.2 remote-as 100 neighbor 192.168.100.2 update-source Loopback0 neighbor 192.168.100.4 remote-as 100 neighbor 192.168.100.4 update-source Loopback0
dyn4
router bgp 100 neighbor 192.168.100.1 remote-as 100 neighbor 192.168.100.1 update-source Loopback0 neighbor 192.168.100.2 remote-as 100 neighbor 192.168.100.2 update-source Loopback0 neighbor 192.168.100.3 remote-as 100 neighbor 192.168.100.3 update-source Loopback0
[править] Настройка анонсирования своего диапазона адресов на dyn1 и dyn2
Для того чтобы AS100 не стала транзитной, необходимо настроить фильтрацию маршрутов. Dyn1 и dyn2 должны анонсировать соседним AS только свою сеть (192.168.100.0/22).
dyn1
ip as-path access-list 100 permit ^$ ! route-map local_route permit 10 match as-path 100 ! router bgp 100 network 192.168.100.0 mask 255.255.252.0 neighbor 192.168.1.1 route-map local_route out neighbor 192.168.3.1 route-map local_route out ! ip route 192.168.100.0 255.255.252.0 Null0
dyn2
ip as-path access-list 100 permit ^$ ! route-map local_route permit 10 match as-path 100 ! router bgp 100 network 192.168.100.0 mask 255.255.252.0 neighbor 192.168.1.5 route-map local_route out neighbor 192.168.3.5 route-map local_route out ! ip route 192.168.100.0 255.255.252.0 Null0
[править] Проверка базовых настроек BGP
Проверить доступность всех сетей из локальной сети AS 100.
Проверить правильность анонсирования маршрутов. И убедиться, что AS100 не используется как транзитная.
[править] Настройка разделения нагрузки между провайдерами для исходящего трафика
[править] (опционально) Настройка провайдера с AS 500 как основного, более приоритетного, для исходящего трафика
Исходящий трафик должен идти через AS 600, если он идет в одну из её сетей. В остальных случаях должен использоваться путь через AS 500 на обоих маршрутизаторах. Этого можно добиться с помощью фильтрации маршрутов от AS600. И получением из неё только частичной таблицы маршрутизации и маршрута по умолчанию. В случае выхода из строя провайдера с AS 500, весь трафик должен передаваться через AS 600.
[править] Настройка распределения нагрузки между провайдерами с помощью Local preference
Часть сетей может анонсироваться с одним значением Local preference, а остальные с другим.
route-map dyn5 permit 10 set local-preference 50 ! router bgp 100 neighbor 192.168.1.5 route-map dyn5 in
[править] Балансировка нагрузки для исходящего трафика между провайдерами с помощью BGP multipath
[править] Балансировка без учета пропускной способности каналов (каналы считаются равными)
[править] Для внешних соседей
Настройки и команды показаны на маршрутизаторах dyn1 и dyn3. На dyn2 и dyn4 всё аналогично.
До настройки балансировки нагрузки в сеть 192.168.14.0/24 в таблице BGP есть два внешних маршрута. У них одинаковая длина пути через AS, но разное значение атрибута:
dyn1#sh ip bgp 192.168.14.0 BGP routing table entry for 192.168.14.0/24, version 155 Paths: (3 available, best #3, table Default-IP-Routing-Table) Advertised to update-groups: 3 600 1200 192.168.3.1 from 192.168.3.1 (192.168.7.6) Origin IGP, localpref 100, valid, external 500 1100 192.168.1.5 (metric 2) from 192.168.100.2 (192.168.100.2) Origin IGP, metric 0, localpref 100, valid, internal 500 1100 192.168.1.1 from 192.168.1.1 (192.168.6.5) Origin IGP, localpref 100, valid, external, best
На dyn1 необходимо включить балансировку нагрузки между маршрутами и разрешить использовать маршруты с разным значением AS path:
router bgp 100 bgp bestpath as-path multipath-relax maximum-paths 4
После повторной пересылки маршрутов:
dyn1#sh ip bgp 192.168.14.0 BGP routing table entry for 192.168.14.0/24, version 13 Paths: (3 available, best #2, table Default-IP-Routing-Table) Multipath: eBGP iBGP Flag: 0x1820 Advertised to update-groups: 2 3 500 1100 192.168.1.5 (metric 2) from 192.168.100.2 (192.168.100.2) Origin IGP, metric 0, localpref 100, valid, internal 500 1100 192.168.1.1 from 192.168.1.1 (192.168.6.5) Origin IGP, localpref 100, valid, external, multipath, best 600 1200 192.168.3.1 from 192.168.3.1 (192.168.7.6) Origin IGP, localpref 100, valid, external, multipath
В таблице маршрутизации два маршрута:
B 192.168.14.0/24 [20/0] via 192.168.3.1, 00:16:38 [20/0] via 192.168.1.1, 00:16:38
[править] Для внутренних соседей
На dyn3 приходят два внутренних маршрута с одинаковыми атрибутами BGP, но разной метрикой протокола IGP (metric 2 и metric 13):
dyn3#sh ip bgp 192.168.14.0 BGP routing table entry for 192.168.14.0/24, version 247 Paths: (2 available, best #1, table Default-IP-Routing-Table) Not advertised to any peer 500 1100 192.168.1.5 (metric 2) from 192.168.100.2 (192.168.100.2) Origin IGP, metric 0, localpref 100, valid, internal, best 500 1100 192.168.1.1 (metric 13) from 192.168.100.1 (192.168.100.1) Origin IGP, metric 0, localpref 100, valid, internal
Самый простой способ уравнять значение метрик, это настроить на пограничных маршрутизаторах next-hop-self:
router bgp 100 neighbor 192.168.100.3 next-hop-self neighbor 192.168.100.4 next-hop-self
После этого:
dyn3#sh ip bgp 192.168.14.0 BGP routing table entry for 192.168.14.0/24, version 247 Paths: (2 available, best #1, table Default-IP-Routing-Table) Not advertised to any peer 500 1100 192.168.1.5 (metric 2) from 192.168.100.2 (192.168.100.2) Origin IGP, metric 0, localpref 100, valid, internal, best 500 1100 192.168.1.1 (metric 2) from 192.168.100.1 (192.168.100.1) Origin IGP, metric 0, localpref 100, valid, internal
На dyn3 и dyn4 необходимо включить балансировку нагрузки для внутреннего BGP:
router bgp 100 maximum-paths ibgp 4
Таблица BGP:
dyn3#sh ip bgp 192.168.14.0 BGP routing table entry for 192.168.14.0/24, version 265 Paths: (2 available, best #2, table Default-IP-Routing-Table) Multipath: iBGP Not advertised to any peer 500 1100 192.168.100.2 (metric 2) from 192.168.100.2 (192.168.100.2) Origin IGP, metric 0, localpref 100, valid, internal, multipath 500 1100 192.168.100.1 (metric 2) from 192.168.100.1 (192.168.100.1) Origin IGP, metric 0, localpref 100, valid, internal, multipath, best
Таблица маршрутизации:
dyn3#sh ip route 192.168.14.0 Routing entry for 192.168.14.0/24 Known via "bgp 100", distance 200, metric 0 Tag 500, type internal Last update from 192.168.100.1 00:23:28 ago Routing Descriptor Blocks: * 192.168.100.2, from 192.168.100.2, 00:37:57 ago Route metric is 0, traffic share count is 1 AS Hops 2 Route tag 500 192.168.100.1, from 192.168.100.1, 00:23:28 ago Route metric is 0, traffic share count is 1 AS Hops 2 Route tag 500
[править] Балансировка с учетом пропускной способности каналов
В прошлом задании балансировка выполняется без учета пропускной способности каналов. К предыдущему методу можно добавить возможность учитывать пропускную способность каналов с провайдерами при балансировке.
[править] Для внешних соседей
Для того чтобы учитывалась пропускная способность каналов, необходимо настроить:
- добавление во входящие обновления от внешних соседей информации о пропускной способности канала
- включить на пограничных маршрутизаторах поддежку балансировки по пропускной способности.
Dyn1:
router bgp 100 bgp bestpath as-path multipath-relax bgp dmzlink-bw neighbor 192.168.1.1 dmzlink-bw neighbor 192.168.3.1 dmzlink-bw maximum-paths 4
Dyn2:
router bgp 100 bgp bestpath as-path multipath-relax bgp dmzlink-bw neighbor 192.168.1.5 dmzlink-bw neighbor 192.168.3.5 dmzlink-bw maximum-paths 4
Таблица BGP после обновления маршрутов:
dyn1#sh ip bgp 192.168.14.0 BGP routing table entry for 192.168.14.0/24, version 13 Paths: (3 available, best #3, table Default-IP-Routing-Table) Multipath: eBGP iBGP Advertised to update-groups: 2 4 500 1100 192.168.100.2 from 192.168.100.2 (192.168.100.2) Origin IGP, metric 0, localpref 100, valid, internal DMZ-Link Bw 1500 kbytes 600 1200 192.168.3.1 from 192.168.3.1 (192.168.7.6) Origin IGP, localpref 100, valid, external, multipath DMZ-Link Bw 250 kbytes 500 1100 192.168.1.1 from 192.168.1.1 (192.168.6.5) Origin IGP, localpref 100, valid, external, multipath, best DMZ-Link Bw 1000 kbytes
Таблица маршрутизации:
Dyn1# sh ip route 192.168.14.0 Routing entry for 192.168.14.0/24 Known via "bgp 100", distance 20, metric 0 Tag 500, type external Last update from 192.168.1.1 00:22:51 ago Routing Descriptor Blocks: * 192.168.3.1, from 192.168.3.1, 00:22:51 ago Route metric is 0, traffic share count is 1 AS Hops 2 Route tag 500 192.168.1.1, from 192.168.1.1, 00:22:51 ago Route metric is 0, traffic share count is 4 AS Hops 2 Route tag 500
[править] Для внутренних соседей
Для того чтобы учитывалась пропускная способность каналов, необходимо настроить:
- отправку extended BGP communities внутренним соседям
- добавление во входящие обновления от внешних соседей информации о пропускной способности канала (сделано в предыдущем пункте)
- включить на всех маршрутизаторах поддежку балансировки по пропускной способности.
Dyn1:
router bgp 100 bgp dmzlink-bw neighbor 192.168.1.1 dmzlink-bw neighbor 192.168.3.1 dmzlink-bw neighbor 192.168.100.2 send-community both neighbor 192.168.100.3 send-community both neighbor 192.168.100.4 send-community both maximum-paths 4
Dyn2:
router bgp 100 bgp dmzlink-bw neighbor 192.168.1.5 dmzlink-bw neighbor 192.168.3.5 dmzlink-bw neighbor 192.168.100.1 send-community both neighbor 192.168.100.3 send-community both neighbor 192.168.100.4 send-community both maximum-paths 4
Dyn3:
router bgp 100 bgp dmzlink-bw maximum-paths ibgp 4
Dyn4:
router bgp 100 bgp dmzlink-bw maximum-paths ibgp 4
Таблица BGP после обновления маршрутов:
dyn3#sh ip bgp 192.168.14.0 BGP routing table entry for 192.168.14.0/24, version 13 Paths: (2 available, best #2, table Default-IP-Routing-Table) Multipath: iBGP Not advertised to any peer 500 1100 192.168.100.2 (metric 2) from 192.168.100.2 (192.168.100.2) Origin IGP, metric 0, localpref 100, valid, internal, multipath DMZ-Link Bw 1500 kbytes 500 1100 192.168.100.1 (metric 2) from 192.168.100.1 (192.168.100.1) Origin IGP, metric 0, localpref 100, valid, internal, multipath, best DMZ-Link Bw 1250 kbytes
Таблица маршрутизации:
dyn3#sh ip route 192.168.14.0 Routing entry for 192.168.14.0/24 Known via "bgp 100", distance 200, metric 0 Tag 500, type internal Last update from 192.168.100.1 00:26:42 ago Routing Descriptor Blocks: <pre> * 192.168.100.2, from 192.168.100.2, 00:26:42 ago Route metric is 0, traffic share count is 6 AS Hops 2 Route tag 500 192.168.100.1, from 192.168.100.1, 00:26:42 ago Route metric is 0, traffic share count is 5 AS Hops 2 Route tag 500
[править] Настройка разделения нагрузки между провайдерами для входящего трафика
[править] Вариант 1. Анонс разных сетей через разных провайдеров
Анонсировать с пограничных маршрутизаторов сеть 192.168.100.0/22. С dyn1 сеть 192.168.101.0/24, а с dyn2 сеть 192.168.102.0/24. Засчет этого входящий трафик к одной сети будет идти через один маршрутизатор, ко второй – через второй.
[править] Вариант 2. Использование атрибута MED для подключений к одному и тому же провайдеру
Для линков с одним и тем же провайдером, можно использовать атрибут MED для того чтобы указать провайдеру, какой из входов в автономную систему приоритетнее.
Изменение метрики:
route-map local_route permit 10 match ip address prefix-list local match as-path 100 set metric 100
Применение route-map:
router bgp 100 neighbor 192.168.1.1 route-map local_route out
[править] Вариант 3. Использование AS path prepend
Если предыдущий метод разделения нагрузки не подходит или не дает хороших результатов, можно использовать AS prepend. Как совместно с предыдущим методом, так и независимо.
[править] Вариант 4. Настройка community
Если провайдеры поддерживают community, то можно использовать их.
[править] Настройка community со стороны клиента
Настройка на dyn1:
ip bgp-community new-format ! route-map LP_200 permit 10 match as-path 100 set community 600:200 ! route-map LP_500 permit 10 match as-path 100 set community 500:500 ! router bgp 100 neighbor 192.168.1.1 send-community neighbor 192.168.1.1 route-map LP_500 out neighbor 192.168.3.1 send-community neighbor 192.168.3.1 route-map LP_200 out
Настройка на dyn2:
ip bgp-community new-format ! route-map LP_200 permit 10 match as-path 100 set community 500:200 ! route-map LP_600 permit 10 match as-path 100 set community 600:600 ! router bgp 100 neighbor 192.168.1.5 send-community neighbor 192.168.1.5 route-map LP_200 out neighbor 192.168.3.5 send-community neighbor 192.168.3.5 route-map LP_600 out
После этого на dyn5 приходят маршруты со значениями community (надо настроить ip bgp-community new-format чтобы они отображались в формате ASN:LP)
dyn5#sh ip bgp 192.168.100.0 BGP routing table entry for 192.168.100.0/22, version 718 Paths: (2 available, best #1, table Default-IP-Routing-Table) Advertised to update-groups: 1 3 100 192.168.1.2 from 192.168.1.2 (192.168.100.1) Origin IGP, metric 0, localpref 100, valid, external, best Community: 500:500 100 192.168.1.6 from 192.168.1.6 (192.168.100.2) Origin IGP, metric 0, localpref 100, valid, external Community: 500:200
Однако значение Local preference осталось по умолчанию, так как на провайдерах ещё не настроены правила работы с community.
[править] Настройка community со стороны провайдеров
dyn5:
ip bgp-community new-format ! ip community-list standard LP_200 permit 500:200 ip community-list standard LP_500 permit 500:500 ! route-map client_LP_in permit 10 match community LP_200 set local-preference 200 route-map client_LP_in permit 20 match community LP_500 set local-preference 500 route-map client_LP_in permit 30 set local-preference 150 ! router bgp 500 neighbor 192.168.1.2 route-map client_LP_in in neighbor 192.168.1.6 route-map client_LP_in in
После обновления маршрутов на dyn5:
dyn5#sh ip bgp 192.168.100.0 BGP routing table entry for 192.168.100.0/22, version 720 Paths: (2 available, best #1, table Default-IP-Routing-Table) Advertised to update-groups: <pre> 1 3 100 192.168.1.2 from 192.168.1.2 (192.168.100.1) Origin IGP, metric 0, localpref 500, valid, external, best Community: 500:500 100 192.168.1.6 from 192.168.1.6 (192.168.100.2) Origin IGP, metric 0, localpref 200, valid, external Community: 500:200
Dyn6:
ip bgp-community new-format ! ip community-list standard LP_200 permit 600:200 ip community-list standard LP_600 permit 600:600 ! route-map client_LP_in permit 10 match community LP_200 set local-preference 200 route-map client_LP_in permit 20 match community LP_600 set local-preference 600 route-map client_LP_in permit 30 set local-preference 130 ! router bgp 600 neighbor 192.168.3.2 route-map client_LP_in in neighbor 192.168.3.6 route-map client_LP_in i
После обновления маршрутов на dyn6:
dyn6#sh ip bgp 192.168.100.0 BGP routing table entry for 192.168.100.0/22, version 556 Paths: (2 available, best #2, table Default-IP-Routing-Table) Flag: 0x8C0 Advertised to update-groups: 1 3 100 192.168.3.2 from 192.168.3.2 (192.168.100.1) Origin IGP, metric 0, localpref 200, valid, external Community: 600:200 100 192.168.3.6 from 192.168.3.6 (192.168.100.2) Origin IGP, metric 0, localpref 600, valid, external, best Community: 600:600
[править] Использование Xentaur
Xentaur — это средство для быстрой и удобной организации гетерогенных сетей, объединяющих виртуальные машины Xen, эмуляторы сетевых устройств, реальные хосты и сетевые устройства, а также управлениями ими и исследования их работы. Сети могут предназначаться как для решения учебных и исследовательских, так и для решения производственных задач. Подробнее о Xentaur
Работа с маршрутизаторами в Xentaur:
Действие Комбинация клавиш Переключение между окнами (с 1 по 9 окно) Ctrl+a номер окна Переключение между окнами Ctrl+a ' номер окна Список всех окон (по нему можно передвигаться и переключиться на другое окно): Ctrl+a “ Переключиться на следующее окно: Ctrl+a space или Ctrl+a n Переключиться на предыдущее окно Ctrl+a backspace или Ctrl+a p Прокрутка вверх Ctrl+a [ после нажатия комбинации, передвигаться можно стрелками вверх и вниз
[править] Схема для лабораторных на этой странице
network='bgp_lab' domains = [ 'dyn1', 'dyn2', 'dyn3', 'dyn4', 'dyn5', 'dyn6', 'qua7', 'qua8', 'qua9', 'qua10', 'qua11', 'qua12' ] domain_types = [ 'dynamips', 'dynamips', 'dynamips', 'dynamips', 'dynamips', 'dynamips', 'quagga', 'quagga', 'quagga', 'quagga', 'quagga', 'quagga' ] bridges = [ 'br1', 'br2', 'br3', 'br4', 'br5', 'br6', 'br7', 'br8', 'br9', 'br10', 'br11', 'br12', 'br13', 'br14', 'br15', 'br16', ] vbridges_table ={ 'dyn1' : [ 'br2', 'br3', 'br5' ], 'dyn2' : [ 'br2', 'br4', 'br5' ], 'dyn3' : [ 'br1', 'br2' ], 'dyn4' : [ 'br1', 'br2' ], 'dyn5' : [ 'br3', 'br5', 'br6' ], 'dyn6' : [ 'br4', 'br5', 'br7' ], 'qua7' : [ 'br1' ], 'qua8' : [ 'br6', 'br8', 'br10' ], 'qua9' : [ 'br7', 'br9', 'br11' ], 'qua10' : [ 'br9', 'br15', 'br16' ], 'qua11' : [ 'br10', 'br12', 'br14' ], 'qua12' : [ 'br11', 'br13', 'br14' ], }
[править] Полезные команды
В этом разделе перечислены только некоторые команды. Более подробная информация доступна на странице BGP в Cisco
Отобразить часть текущей конфигурации с настройками BGP
sh run | s bgp
Настройка процесса BGP
router bgp <asn>
Создать соседа BGP (эта команда активирует сессию BGP с указанным соседом)
neighbor <ip-address> remote-as <asn>
Указать какие сети анонсировать по протоколу BGP (если сеть присутствует в таблице маршрутизации)
network <network-number>
Какие маршруты анонсируются указанному соседу
show ip bgp neighbors A.B.C.D advertised-routes
Просмотр краткой информации о соседях
sh ip bgp summary
Детальная информация о соседях
show ip bgp neighbors
Таблица BGP
sh ip bgp
Подробная информация о маршрутах к определенной сети
show ip bgp 192.168.1.0
Указывает какие сети не были помещены в RIB (routing information base) и почему они не были туда помещены
show ip bgp rib-failure
Показать маршруты у которых в AS Path встречается ASN 406
sh ip bgp regexp 406
Одновременный soft reset для входящих и исходящих обновлений
clear ip bgp <neighbor-address> soft