Использование BGP для резервирования Интернет-каналов

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

(Перенаправлено с BGP 2 ISP)
Перейти к: навигация, поиск
stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.

Если вы считаете, что её стоило бы доработать как можно быстрее, пожалуйста, скажите об этом.

Автор: Наташа Самойленко
Короткий URL: BGP 2 ISP

Страница посвящена использованию BGP для резервирования Интернет-каналов.

Пока что информация предоставлена в виде лабораторных, со временем она будет переработана в странички.

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

При использовании этой информации обратите внимание на то, что это учебный материал. Не все сценарии и решения могут соответствовать реальной жизни.

Основная задача лабораторных показать какие механизмы доступны при работе с BGP для резервирования Интернет-каналов.

Все лабораторные ориентированы на то, что AS 100 это клиент подключенный к провайдерам. Во всех лабораторных, кроме первой, настройки выполняются для AS 100 и для пограничных маршрутизаторов подключенных провайдеров (AS 500 и AS 600). В первой лабораторной необходимо выполнить настройку BGP во всех AS: указать соседей и анонсировать сети.


Содержание

[править] Лабораторная 1. Настройка BGP в сети с одним пограничным маршрутизатором и двумя каналами к разным провайдерам. Базовая фильтрация маршрутов

BGP lab 1.png


[править] Задание

Все лабораторные ориентированы на то, что AS 100 это клиент подключенный к провайдерам. В этой лабораторной необходимо выполнить настройку BGP во всех AS: указать соседей и анонсировать сети.

  1. Настройка IP-адресации
    Необходимо выполнить настройку IP-адресации в сети в соответствии с топологией.
    Если не указано явно, то 4 октет IP-адреса, соответствует номеру маршрутизатора.
  2. Настройка BGP на маршрутизаторах провайдеров.
    Необходимо настроить BGP для автономных систем 500, 600. Для AS 1100 и 1200 можно воспользоваться подготовленной конфигурацией. По желанию можно также выполнить настройку BGP во всей сети.
    Это задание выполняется без настроек связи с AS 100. Они будут выполнены отдельно.
    1. Настройка автономных систем 500, 1100, 1200
      1. Для этих автономных систем необходимо настроить связь с соседями BGP через IP-адреса физических интерфейсов (кроме AS 100). Проверить связь с соседями.
      2. Анонсировать все сети автономной системы. После этого шага проверить доступность сетей.
      3. В AS 500 настроить маршрутизаторы dyn5 и qua8 так, чтобы при получении информации из других автономных систем (по eBGP), они передавали маршруты внутренним соседям (по iBGP) с атрибутом NEXT HOP равным IP-адресу маршрутизатора, который анонсирует маршрут.
    2. Настройка автономной системы 600
      1. Настроить связь с соседями BGP через IP-адреса физических интерфейсов (кроме AS 100). Проверить связь с соседями.
      2. Анонсировать все сети автономной системы в BGP.
      3. На маршрутизаторах dyn6, qua9, qua10 необходимо настроить OSPF (эта настройка выполняется для того чтобы показать принципы работы BGP с протоколами IGP). В OSPF надо анонсировать все сети автономной системы и сети с другими автономными системами. Интерфейсы ведущие к другим автономным системам необходимо сделать пассивными для того чтобы анонсы OSPF не распространялись за пределы сети.
  3. Настройка подключения AS 100
    1. Настройка BGP-соседей на dyn1, dyn5 и dyn6.
    На топологии указаны IP-адреса, которые используются для связи с AS100. Соседи BGP должны быть настроены через loopback-интерфейсы (это не является обязательным требованием в реальной жизни, и используется для того чтобы знать как настраивать связь с соседями в таком случае).
  4. Проверка работы BGP.
    1. Проверить доступность всех сетей из локальной сети AS 100.
    2. Проверить правильность анонсирования маршрутов. И убедиться, что 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. Настройка базовой фильтрации маршрутов. Без изменения атрибутов.

BGP lab 1.png

[править] Задание

Лабораторная основана на предыдущей. Для того чтобы AS100 не была транзитной, необходимо настроить фильтрацию маршрутов.

  1. Настройка исходящей фильтрации маршрутов на dyn1.
    1. Для того чтобы AS100 не стала транзитной, необходимо настроить фильтрацию маршрутов. Dyn1 должен анонсировать соседним AS только свою сеть (192.168.100.0/24) и она должна быть локально анонсирована.
  2. Фильтрация входящих анонсов.
    В зависимости от политик и договоренностей с провайдером, провайдеры могут анонсировать, например:
    • только маршрут по умолчанию
    • маршрут по умолчанию и частичную таблицу маршрутизации (например, только с локальными сетями провайдера)
    • полную таблица маршрутизации
    Для лабораторной необходимо настроить вариант, когда анонсируется вся таблица (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 

Можно настроить два варианта исходящих фильтров:

  1. Создать as-path access-list и prefix-list и применить их к соседям
  2. Создать 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 в сети с одним пограничным маршрутизатором и двумя каналами к разным провайдерам. Схема: основной/резервный каналы

BGP lab 1.png

[править] Задание

Лабораторная основана на предыдущей. Маршрутизатор dyn5 должен использоваться как основной провайдер и для входящего и для исходящего трафика, а dyn6 как резервный.

  1. Настройка отправки исходящего трафика через dyn5.
    1. С помощью атрибута weight
  2. Настройка отправки входящего трафика через dyn5.
    1. С помощью 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 в сети с одним пограничным маршрутизатором и двумя каналами к разным провайдерам. Распределение и балансировка трафика между провайдерами

BGP lab 1.png


[править] Задание

Лабораторная основана на предыдущей. Необходимо удалить настройки прошлой лабораторной, для того чтобы ни у кого из провайдеров не было предпочтения. В первом задании настраивается один из механизмов фильтрации маршрутов (по AS path). А во втором используется BGP multipath для балансировки нагрузки между провайдерами. Балансировка выполняется для исходящего трафика, как с учетом пропускной способности каналов, так и без.

  1. Распределение нагрузки между каналами для исходящего трафика с указанием AS path
    Распределить нагрузку между провайдерами таким образом, чтобы трафик в AS 600 шел через dyn6, трафик в AS 500 шел через dyn5, а остальной трафик распределялся между провайдерами. В случае выхода из строя одного из провайдеров, весь трафик должен идти через него.
    С прошлой лабораторной необходимо отменить route-map и другие параметры, для того чтобы оба провайдера анонсировали полную таблицу маршрутизации и ни у кого из них не было предпочтения.
  2. Балансировка исходящего трафика с помощью BGP multipath и dmzlink-bw.
    1. Провайдеры анонсируют полную таблицу маршрутизации. Трафик в автономные системы с одинаковым размером AS path балансируется между двумя провайдерами.
    2. Провайдеры анонсируют маршрут по умолчанию и частичную таблицу маршрутизации (только с локальными сетями провайдера). Трафик в другие автономные системы балансируется между двумя провайдерами.
    3. Балансировка с учетом пропускной способности канала.
      Сохраняются настройки предыдущего пункта. Но при балансировке нагрузки учитывается пропускная способность каналов к провайдерам.
  3. Настройка разделения нагрузки между провайдерами для входящего трафика.
    1. Вариант 1. Анонсировать с пограничных маршрутизаторов сеть 192.168.100.0/22. С dyn1 сеть 192.168.101.0/24, а с dyn2 сеть 192.168.102.0/24. Засчет этого входящий трафик к одной сети будет идти через один маршрутизатор, ко второй – через второй.
    2. Вариант 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 в сети с двумя пограничными маршрутизаторами и двумя каналами к разным провайдерам. Использование одного провайдера как основного.

BGP lab 5.png

[править] Задание

В локальной сети есть два пограничных маршрутизатора, каждый подключен к одному провайдеру. Каналы должны использоваться как основной и резервный. Для исходящего трафика используется HSRP на dyn1 и dyn2. Для входящего используется метод AS path prepend.

  1. Настройка IP-адресации
    Необходимо выполнить настройку IP-адресации в сети в соответствии с топологией. Изменилась адресация связанная с подключением AS 100. Если не указано явно, то 4 октет IP-адреса, соответствует номеру маршрутизатора.
  2. Настройка подключения AS 100
    Настройка eBGP-соседей на dyn1, dyn2, dyn5 и dyn6.
    На топологии указаны IP-адреса, которые используются для связи с AS100. Настроить связи с eBGP-соседями через физические интерфейсы. Настроить IBGP между dyn1 и dyn2 между loopback-интерфейсами. Прописать статические маршруты к loopback.
  3. Для того чтобы AS100 не стала транзитной, необходимо настроить фильтрацию маршрутов. Маршрутизаторы dyn1 и dyn2 должны анонсировать соседним AS только свою сеть (192.168.100.0/22).
  4. От провайдера ISP2 должна приходить частичная таблица маршрутизации (сети автономной системы 600) и маршрут по умолчанию.
  5. Настройка HSRP в локальной сети AS 100 на маршрутизаторах dyn1, dyn2. Dyn1 должен быть Active, если доступен ISP1 и весь исходящий трафик, кроме трафика в AS600, должен передаваться через него.
    Виртуальный IP-адрес, должен быть настроен как шлюз по умолчанию для dyn3 и dyn4.
  6. Настройка 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 в сети с двумя пограничными маршрутизаторами и двумя каналами к разным провайдерам. Управление входящим и исходящим трафиком

BGP lab enterprise.png


[править] Задание

В этой лабораторной используется несколько методов распределения и балансировки нагрузки, как для каналов с провайдерами, так и для локальной сети. Те методы, которые использовались в предыдущих лабораторных, тут упоминаются как варианты, но не настраиваются.

  1. Настройка IP-адресации
    Необходимо выполнить настройку IP-адресации в сети в соответствии с топологией. Если не указано явно, то 4 октет IP-адреса, соответствует номеру маршрутизатора.
  2. Настройка OSPF в локальной сети AS 100 на маршрутизаторах dyn1, dyn2, dyn3, dyn4. В OSPF надо анонсировать все сети автономной системы.
  3. Настройка eBGP-соседей на dyn5 и dyn6.
    На топологии указаны IP-адреса, которые используются для связи с AS100.
    Настроить связи с eBGP-соседями через физические интерфейсы.
  4. Базовая настройка BGP в AS 100
    1. Настройка связи с соседями (IBGP через loopback-интерфейсы).
    2. Настройка анонсирования своего диапазона адресов на dyn1 и dyn2. Для того чтобы AS100 не стала транзитной, необходимо настроить фильтрацию маршрутов. Dyn1 и dyn2 должны анонсировать соседним AS только свою сеть (192.168.100.0/22).
    3. Проверка базовых настроек BGP.
      1. Проверить доступность всех сетей из локальной сети AS 100.
      2. Проверить правильность анонсирования маршрутов. И убедиться, что AS100 не используется как транзитная.
  5. Настройка разделения нагрузки между провайдерами для исходящего трафика (настраивать можно или совместно два метода или по очереди их, отменяя предыдущий).
    1. Настройка провайдера с AS 500 как основного, более приоритетного, для исходящего трафика.
      Исходящий трафик должен идти через AS 600, если он идет в одну из её сетей. В остальных случаях должен использоваться путь через AS 500 на обоих маршрутизаторах. Этого можно добиться с помощью фильтрации маршрутов от AS600. И получением из неё только частичной таблицы маршрутизации и маршрута по умолчанию. В случае выхода из строя провайдера с AS 500, весь трафик должен передаваться через AS 600.
    2. Настройка распределения нагрузки между провайдерами с помощью Local preference. Часть сетей может анонсироваться с одним значением Local preference, а остальные с другим.
  6. Балансировка нагрузки для исходящего трафика между провайдерами с помощью BGP multipath для внутренних и внешних BGP-соседей (предыдущие методы распределения нагрузки н