Использование 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)
- Балансировка без учета пропускной способности каналов (каналы считаются равными)
- Для внешних соседей
- Для внутренних соседей
- Баланси
- Балансировка без учета пропускной способности каналов (каналы считаются равными)