Лаба BGP в GNS3 – 2. Default route от провайдеров и выбор основного провайдера.

Продолжаем немного по предыдущей лабе. Топология такая же.

Теперь рассмотрим вариант подключения нашего HQ через двух провайдеров с BGP. Коротко о главном.
С провайдерами мы поднимаем BGP сессии.  И от них мы можем получить либо Full View, то есть все маршруты о которых у них есть информация(все маршруты Интернет), либо можем получить просто default route(0.0.0.0/0).

Нам не нужно получать Full View, потому что AS наша не будет транзитной, клиентов мы к своей AS подключать не будем. Просто конечный пользователь. Для этого договариваемся с двумя провайдерами,  и они на отдают только маршрут 0.0.0.0/0

Теперь на практике. Начнем с ISP_fifo.

Для начала нам нужно создать PREFIX-LIST. Это такое подобие ACL, в котором указываем адреса, подсети, с которыми будем дальше работать.
В режиме конфигурации создаем prefix-list.

ISP_Fifo(config)#ip prefix-list DEFAULT permit 0.0.0.0/0

DEFAULT – просто имя, его можно сделать любым.
Теперь в режиме конфигурации BGP указываем, что отдавать соседу будем маршрут по-умолчанию. И префиксом указываем, что кроме маршрута по-умолчанию сосед получать ничего не будет.

router bgp 6345
 neighbor 10.1.1.1 default-originate
 neighbor 10.1.1.1 prefix-list DEFAULT out

 Теперь примерно такие же настройки делаем на провайдере ISP_sudo.

ISP_sudo(config)#ip prefix-list DEFAULT permit 0.0.0.0/0

И в конфиге BGP

router bgp 6345
 neighbor 10.1.1.5 default-originate
 neighbor 10.1.1.5 prefix-list DEFAULT out

После этого на HQ делаем софт-резет BGP сессии. Hard-reset(clear ip bgp *) делать не рекомендуются на продакшн-системе.

HQ#clear ip bgp 10.1.1.2
HQ#
*Mar  1 01:00:53.259: %BGP-5-ADJCHANGE: neighbor 10.1.1.2 Down User reset
HQ#
*Mar  1 01:00:54.747: %BGP-5-ADJCHANGE: neighbor 10.1.1.2 Up
HQ#clear ip bgp 10.1.1.6
HQ#
*Mar  1 01:01:08.539: %BGP-5-ADJCHANGE: neighbor 10.1.1.6 Down User reset
*Mar  1 01:01:09.131: %BGP-5-ADJCHANGE: neighbor 10.1.1.6 Up

Видим что все возобновилось и проверяем нашу BGP табличку

HQ#sh ip bgp
BGP table version is 9, local router ID is 6.6.6.6
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
*  0.0.0.0          10.1.1.6                 0             0 7645 i
*>                  10.1.1.2                    0             0 6345 i

*> 5.5.5.0/24       0.0.0.0                  0         32768 i
*> 6.6.6.0/24       0.0.0.0                  0         32768 i
HQ#

Видим наши два дефолта от провайдеров. И смотрим какой у нас в таблице маршрутизации.

HQ#sh ip ro
Codes: C – connected, S – static, R – RIP, M – mobile, B – BGP
       D – EIGRP, EX – EIGRP external, O – OSPF, IA – OSPF inter area
       N1 – OSPF NSSA external type 1, N2 – OSPF NSSA external type 2
       E1 – OSPF external type 1, E2 – OSPF external type 2
       i – IS-IS, su – IS-IS summary, L1 – IS-IS level-1, L2 – IS-IS level-2
       ia – IS-IS inter area, * – candidate default, U – per-user static route
       o – ODR, P – periodic downloaded static route
Gateway of last resort is 10.1.1.2 to network 0.0.0.0
     5.0.0.0/24 is subnetted, 1 subnets
C       5.5.5.0 is directly connected, Loopback0
     6.0.0.0/24 is subnetted, 1 subnets
C       6.6.6.0 is directly connected, Loopback1
     10.0.0.0/30 is subnetted, 2 subnets
C       10.1.1.0 is directly connected, FastEthernet0/0
C       10.1.1.4 is directly connected, FastEthernet1/0
B*   0.0.0.0/0 [20/0] via 10.1.1.2, 00:01:41

Попал маршрут через провайдер ISP_fifo.

Теперь о резервировании. Если у нас упадет провайдер ISP_fifo, то bgp перестроится и весь трафик пойдет через второй провайдер ISP_sudo. То есть, резервирование уже у нас есть.
Но что делать, если мы хотим выбрать в качестве основного провайдера ISP_sudo? Чтобы весь трафик шел через него, но в случае падения переходил на канал провайдера ISP_fifo. Здесь есть несколько способов. Я покажу как это сделать через атрибут WEIGHT. Атрибут этот локальный, не передается другим AS. У нас есть два выхода из нашей автономной системы. Вес маршрутов 0 от обоих провайдеров. Если мы увеличим атрибут WEIGHT для одного провайдера, то он станет основным.
Делаем все на нашем рутере HQ

HQ(config)#router bgp 5500

HQ(config-router)# neighbor 10.1.1.6 weight 300

Резетим на HQ сессию BGP и смотрим что получилось:

HQ#sh ip bgp
………….
   Network          Next Hop            Metric LocPrf Weight Path
*> 0.0.0.0          10.1.1.6                 0                      300 7645 i*                        10.1.1.2                      0                     0 6345 i

И в таблице маршрутизации у нас поменялся дефолт:

HQ#sh ip ro
……………..
B*   0.0.0.0/0 [20/0] via 10.1.1.6, 00:06:07

Теперь пробуем уронить основной провайдер. Тупо выключим линк на ISP_sudo. И смотрим что будет. 
Сработал hold down timer 

HQ#
*Mar  1 01:52:01.659: %BGP-5-ADJCHANGE: neighbor 10.1.1.6 Down BGP Notification sent
HQ#
*Mar  1 01:52:01.659: %BGP-3-NOTIFICATION: sent to neighbor 10.1.1.6 4/0 (hold time expired) 0 bytes

Смотрим в таблицу BGP  и в таблицу маршрутизации и видим, что дефолт поменялся.

HQ#sh ip ro
………………………..
B*   0.0.0.0/0 [20/0] via 10.1.1.2, 00:02:05

Проверим доступность DC

HQ#ping 1.1.1.1 so 5.5.5.5
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 1.1.1.1, timeout is 2 seconds:
Packet sent with a source address of 5.5.5.5
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 32/39/52 ms

Продолжение следует…

Comments

  1. >>Я покажу как это сделать через атрибут WEIGHT. Атрибут этот локальный, не передается другим AS.
    А как тогда указать другим системам, что трафик нужно слать через ISP_sudo?
    Допустим, у него априори более качественный канал и входящий трафик мы хотим видеть в первую очередь через него и только при его падении – через ISP_Fifo?

    1. Другим AS, которые строят маршруты до нас и шлют нам трафик.

      Через атрибут WEIGHT вы добьетесь лишь того, что через ISP_sudo пойдет исходящий трафик. А входящий по-прежнему будет распределен между обоими ИСП.

  2. Опечатки нет? Обратите внимание: у Вас в настройках ISP_sudo указана AS 6345 вместо 7645.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *