Настройка BGP и практика

Мы поднимаем BGP-сессию с обоими провайдерами. Нам важна следующая информация: 1) Номер нашей AS и блок IP-адресов. Их мы уже получили: AS64500 и блок: 100.0.0.0/23. 2) Номер AS «Балаган Телеком» и линковая подсеть с ним. AS64501 и линковая сеть: 101.0.0.0/30. 3) Номер AS «Филькин Сертификат» и линковая подсеть с ним. AS64502 и линковая сеть: 102.0.0.0/30.

Начнём с банального.

Настройка интерфейсов:

msk-arbat-gw1
R1(config)#int fa0/0
R1(config-if)#ip address 101.0.0.2 255.255.255.252
R1(config-if)#no shutdown 

R1(config)#int fa0/1
R1(config-if)#ip address 102.0.0.2 255.255.255.252
R1(config-if)#no shutdown

Теперь назначим какой-нибудь адрес на интерфейс Loopback, чтобы потом проверить связность:

R1(config)#int loopback 0
R1(config-if)#ip address 100.0.0.1 255.255.255.255

Черёд BGP. Тут заострим внимание на каждой строчке.

R1(config)#router bgp 64500

Сначала мы запускаем BGP процесс и указываем номер AS. Именно тот номер, который выдал LIR. Это вам не OSPF – вольности недопустимы.

Теперь поднимаем пиринг.

R1(config-router)#neighbor 101.0.0.1 remote-as 64501

Командой neighbor мы указываем, с кем устанавливать сессию. Именно на адрес 101.0.0.1 маршрутизатор будет отсылать сначала TCP-SYN, а потом OPEN. Также мы обязаны указать номер удалённой Автономной Системы – 64501.

Конфигурация с обратной стороны симметрична:

R2(config)#router bgp 64501
R2(config-router)#neighbor 101.0.0.2 remote-as 64500

Уже по одному сообщению

*Mar 1 00:11:12.203: %BGP-5-ADJCHANGE: neighbor 101.0.0.2 Up

можно судить, что BGP поднялся, но давайте проверим его состояние:

Вот они пробежали по всем состояниям и сейчас их статус Established. Получал и отправлял наш маршрутизатор по одному OPEN и успел за это время отослать и принять уже 2 KEEPALIVE.

Командой sh ip bgp можно посмотреть какие сети известны BGP:

Пусто. Надо указать, что есть у нас вот эта сеточка 100.0.0.0/23 и передать её провайдерам? Для этого существует три варианта: – определить сети командой network – импортировать из другого источника (direct, static, IGP) – создать аггрегированный маршрут командой aggregate-address

Забегая вперёд, заметим, что network имеет больший приоритет, а с импортированием нужно быть аккуратнее, чтобы не хватануть лишку.

R1(config)#router bgp 64500
R1(config-router)#network 100.0.0.0 mask 255.255.254.0

Смотрим появилась ли наша сеть в таблице:

Странно, но нет, ничего не появилось. На R2 тоже.

А дело тут в том, что в ту сеть, которую вы прописали командой network должен быть точный маршрут, иначе она не будет добавлена в таблицу BGP – это обязательное условие. Конечно, такого маршрута нет. Откуда ему взяться:

Поскольку реально у нас некуда прописывать такой маршрут – кроме одного Loopback-интерфейса, нигде этой сети нет, мы можем поступить следующим образом:

R1(config)#ip route 100.0.0.0 255.255.254.0 Null 0

Данный маршрут говорит о том, что все пакеты в эту подсеть будут отброшены. Но, не пугайтесь, нормальная работа не будет нарушена. Если у вас есть более точные маршруты (с маской больше /23, например, /24, /30, /32), то они будут предпочтительнее согласно правилу Longest Prefix Match. И теперь в таблице BGP есть наш локальный маршрут:

Если настроить BGP и нужные маршруты на всех устройствах нашей схемы, то таблицы BGP и маршрутизации на нашем бордере (border – маршрутизатор на границе сети) будут выглядеть так:

Обратите внимание, что в таблице BGP по 2 маршрута к некоторым сетям, а в таблице маршрутизации только один. Маршрутизатор выбирает лучший из всех и только его переносит в таблицу маршрутизации. Об этом поговорим позже. Это необходимый минимум, после которого уже будет маленькое счастье.

Last updated