Sdscompany.ru

Компьютерный журнал
8 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Cisco bgp vpnv4 настройка

Организация VPN на базе MPLS

Автор: Максимович Вадим (vmaksv at gmail.com)

В данной статье разобраны типовые решения для реализации VPN на базе MPLS сети использующей в качестве внутреннего протокола маршрутизации (IGP) EIGRP. Я надеюсь, что это статья будет полезна при внедрении технологии MPLS/VPN в вашей сети. Используя этот документ, Вы как минимум получите сеть, изображенную на Рис.1, использующую технологию MPLS/VPN. Любые замечания, пожелания, найденные ошибки и опечатки приветствуются.

  • Введение
  • Этапы настройки
  • Настройка EIGRP и CEF
  • Настройка TDP
  • Настройка VRF
  • Настройка MP-BGP
  • Настройка маршрутизации между PE-CE по протоколу EIGRP
  • PE-CE соединение с использованием OPSF.
  • PE-CE соединение с использованием RIP.

Введение

Этапы настройки

  1. Настройка EIGRP и CEF
  2. Настройка TDP
  3. Настройка VRF
  4. Настройка MP-BGP
  5. Настройка маршрутизации между устройствами PE-CE с использованием протоколов:
  • EIGRP;
  • OSPF;
  • RIP.

Настройка EIGRP и CEF

Для начала необходимо запустить на всех маршрутизаторах входящих в MPLS домен протокол маршрутизации (в нашем случае EIGRP) и включить на этих маршрутизаторах коммутации Cisco Express Forwarding (CEF).

#запущен процесс маршрутизации EIGRP 1 #Маршрутизировать все сети, подключенные к этому маршрутизаторы с адресами, попадающими в диапазон 10.0.0.0/8. #отключить автоматическую суммаризацию. #включена коммутация Cisco Express Forwarding

Проверить функционирование протокола EIGRP можно командой show ip protocols (команда также покажет основные параметры протокола EIGRP на маршрутизаторе) и командой show ip eigrp neighbors убедится в создание соседских отношений между маршрутизаторами. Проверить работу CEF можно выполнив команду show ip cef summary :
Подробно на этом этапе мы останавливаться не будем, так как рассмотрение настройки и отладки EIGRP и CEF выходит за рамки статьи.

Настройка TDP

По умолчанию IOS использует протокол TDP, но можно выбрать LDP командой mpls label protocol ldp . Можно также этой командой включить или выключить на отдельном интерфейсе любой из протоколов. При выполнении команды mpls label protocol both на интерфейсах соседей маршрутизаторов маршрутизаторы будут использовать протокол LDP.
Так как настройка протокола LDP является типовым процессом, то мы рассмотрим настройку только маршрутизатора Router_B, предполагая, что на остальных маршрутизаторах MPLS домена протокол LDP уже функционирует. Изначально маршрутизатор Router_B имеет следующую конфигурацию:

На маршрутизаторе Router_A поднят Loopback0 с сетью 10.108.254.39/32, на маршрутизаторе Router_C поднят Loopback0 с сетью 10.108.254.40/32.
Запускаем поддержку MPLS используя команду mpls ip

Создание Label Information Base и запуск TDP/LDP произойдет только после запуска MPLS на одном из интерфейсов. Предварительно запустим на маршрутизаторе debug для наглядности.

Запускаем MPLS на интерфейсе
#Подготовка к запуску MPLS

#База LFIB создана

#Маршрутизатор начинает расставлять локальные метки на маршруты находящиеся в таблице маршрутизации

#После привязки меток маршрутизатор готов к работе по MPLS на интерфейсе Serial0/0:0. Стартует LDP/TDP.

#Как видно из сообщений IOS открывает порты для обоих протоколов распространения меток, внезависимости от значения команды mpls label protocol. И разумеется первыми исходят сообщения Hello.

#Хотя на интерфейсе Serial0/1:0 у нас находится маршрутизатор, готовый работать по MPLS, на этом интерфейсе у нас не разрешен MPLS, поэтому пакеты LDP/TDP игнорируются

#Ура сосед ответил

#Обнаружен новый сосед с ID 10.108.254.40 на Serial 0/0:0

#Оба маршрутизатора обменялись своими ID и устанавливают соединение по TDP

#Маршрутизаторы договорились между собой, установили соседские отношения и теперь информацию о соседе можно получить, выполнив команду show mpls ldp neighbor

#PIE это protocol information element, если я правильно понял это у нас теперь так пакет с данным называется

#Получаем метки от соседа и передаем их в LFIB

#Процесс установления соседских отношений завершен, обмен необходимой информацией закончен и маршрутизаторы обмениваются пакетами Hello

В качестве идентификатора выбирается наибольший IP адрес из интерфейсов Loopback. Если интерфейсы Loopback отсутствуют, то в качестве идентификатора выбирается наибольший IP адрес с любого интерфейса. Можно установить идентификатор вручную, используя команду mpls ldp router-id interface с необязательным параметром force . Только с параметром force ID будет изменен для существующих сессий и повлечет за собой переустановление соседских отношений.
Многие не задумываются о сходимости пакетной MPLS сети, хотя для многих приложений MPLS этот параметр очень важен (например для MPLS/VPN) так как он может повлечь увеличение задержки распространения меток. В пакетных сетях при использовании режима обмена информацией о метках без запроса (Downstream Unsolicited), независимого контроля над распространением меток (Independent Label Distribution Control) и свободного режима сохранения меток (Liberal Label Retention Mode) время сходимости сведено до минимума, позволяя находить метки после завершения процесса сходимости IGP без опрашивания соседа. Но это быстро и хорошо работает при падении канала, но не при более глубоких изменениях сети. Надо иметь ввиду, что сначала должен завершить свою работу по поиску маршрутов IGP, и только после завершения его работы начнется работа по поиску меток MPLS. Из вышесказанного следует, что при проблемах с MPLS не забудьте проверить работу IGP.
Настроим MPLS на втором интерфейсе.

Выполним еще раз команду show mpls forwarding-table на маршрутизаторе Router_B.

Из всех маршрутизируемых сетей в LFIB маршрутизатора Router_B присутствует только две сети. Такой результат связан с работой механизма PHP (Penultimate Hop Popping). При использовании механизма PHP последний маршрутизатор сообщает предыдущему о том, что он может удалять метку у себя для определенного FEC. Сделано это для снижения нагрузки на PE маршрутизатор за счет перекладывание части работы на предыдущий P маршрутизатор. Информация об использовании PHP передается с помощью TDP или LDP, использующими для этого специальные метки (3 для LDP, 1 для TDP), которые принято называть implicit-null метками. В выводе команд show mpls ip bindings и show mpls ldp bindings такие метки показываются как imp-null. Команда show mpls ip bindings показывает информацию о привязке меток полученных через протокол LDP/TDP. Команда show mpls ldp bindings показывает содержимое Label Information Base.

Поле in label — содержит входящую метку, параметр inuse указывает на то, что метка сейчас используется для работы, out label содержит исходящую метку, то есть метку, полученную от маршрутизатора, ID которого выведен в поле lsr.

Поле rev есть так называемый revision number — используется для внутреннего управления метками, remote binding — тоже самое, что out label.
Присутствие записи с пометкой (no route) вызвано работой механизма Liberal Label Retention Mode. В данном случае маршрут 10.108.254.254/32 был удален по каким то причинам из таблицы маршрутизации, но маршрутизатор сохранил метку для уменьшения времени сходимости при восстановлении данного маршрута.
Механизм PHP используется только для сетей, непосредственно подключенных к маршрутизатору или для суммарных маршрутов.
Можно использовать вместо implicit-null метки так называемую explicit null метки. В случае использования explicit null метки, предпоследний маршрутизатор устанавливает в пакет метку 0 (для IPv4) или 2 (для IPv6). Это необходимо для передачи на последний маршрутизатор поля MPLS-exp. Включается такой режим работы командой mpls ldp explicit-null. Используя параметры этой команды можно ограничить работу этого механизма только для определенных соседей. По умолчанию включается для всех соседей. Далее показан пример вывода команды show mpls ldp bindings с использованием explicit null меток.

Вывод команды show mpls forwarding-table на остальных маршрутизаторах.

Разберем подробно вывод команды show mpls forwarding-table .

  • Поле Local tag показывает локальное значение метки для префикса, указанного в поле Prefix or Tunnel Id.
  • Поле Outgoing tag or VC указывает исходящую метку или действие производимое с меткой. Pop tag означает удаление метки из пакета (в данном случае удаляется метка 16). Untagged означает, что IP префикс доступен через неMPLS интрефейс. Aggregate означает использование метки для нескольких префиксов.
  • Поле Bytes tag switched показывает количество переданных байтов с этой меткой.
  • В поле Outgoing interface указывается исходящий интерфейс.
  • Поле Next hop показывает IP адрес следующего маршрутизатора или, как в этом случае, тип интерфейса.
Читать еще:  Как защитить презентацию от редактирования

Получить информацию о соседях можно выполнив команду show mpls ldp neighbors.

Описание полей выводе данной команды приведено в таблице.

BGP: Основные настройки

Итак, с сегодняшнего дня мы приступим к настройки BGP и изучению различных фич, которые предоставляет этот протокол.

Для того что бы активировать BGP протокол нужна одна команда: router bgp

где AS-Number это номер автономной системы, которая Вам была выделена. После этого процесс BGP запущен, но еще ничего не делает.

Теперь нам нужно установить соседские отношения между BGP пирами.

Итак, описываем соседские отношение или параметры TCP сессии.

neighbor description BBR

Это тот минимум, который нам необходим для того что бы настроить соседские отношения.

Разумеется с другой стороны, с BBR, должно быть настроено зеркально.

Если используется аутентификация между пирами, прописываем это:

IBGP чаще всего строятся по лупбэкам, для стабильности (дабы не зависеть от физических интерфейсов), соответсвенно нам нужно прописать router-id, который будет совпадать с этим лупбэком.

Например лупбек у нас имеет адрес 1.1.1.1, прописываем router-id

bgp router-id 1.1.1.1

Все это делается в секции router bgp .

После прописывания router-id нам нужно настроить source интерфейс, с которого у нас будут рассылаться обновления (в нашем случае лупбек).

neighbor update-source lo0

Основные настройки TCP сессии между BGP пирами рассмотрели, теперь нам нужно анонсировать нашу сеть, делается это с помощью network :

Итого, если объеденить все настройки рассмотренные выше, мы имеем:

bgp router-id 1.1.1.1

neighbor 2.2.2.2 remote-as 10

neighbor 2.2.2.2 description IBGP_Router

neighbor 2.2.2.2 password cisco

neighbor 2.2.2.2 update-source lo0

network 1.1.1.1 mask 255.255.255.255

Соответственно на другой стороне делаем зеркально:

bgp router-id 2.2.2.2

neighbor 1.1.1.1 remote-as 10

neighbor 1.1.1.1 description IBGP_Router

neighbor 1.1.1.1 password cisco

neighbor 1.1.1.1 update-source lo0

network 2.2.2.2 mask 255.255.255.255

Теперь когда все прописано у нас должны подняться соседские отношения, и мы друг другу должны отправлять по одной сети.

Кстати, помним, что лупбеки должны будут достижимы для наших роутеров, так как они используются для router-id и update-source, чтоб это было возможным нам нужен IGP протокол, который будет разносить их по нашей IBGP сети.

Давайте теперь проверим наши соседские отношения show ip bgp sumR1#sh bgp sumR1(config-router)#do sh ip bgp sum

Что мы здесь видим.

Видим, что есть соседские отношение с роутером 2.2.2.2, видим автономную систему — 10, и видим что состояние Established (начался обмен маршрутами), на это показывает самая правая 1-ца (обменялись одним маршрутом) в поле State/PfcRcd.

Давайте посмотрим на BGP маршруты.R1#show ip bgp

Видим два маршрута, один наш, 1.1.1.1 а другой соседский, 2.2.2.2, но мы так же видим что возле 2.2.2.2 стоит r, что означается Rib-failure. Почему?

Ответ прост, дело в том, что этот маршрут не будет использоваться через BGP, так как у нас есть этот же маршрут но через OSPF, вот он и будет у нас использоваться, если мы посмотрим общую таблицу раутинга, то мы увидим, что мы получаем маршрут по OSPF, а по BGP его не будет.

Более детально можно посмотреть так:

Здесь мы видим описание маршрута.

На данном скриншоте видно, что у нас достижимость к 2.2.2.2 есть одним путем, через 2.2.2.2. Так же этот маршрут никому не рассылается, и указаны атрибуты, мы их не модифицировали, все по умолчанию.

Маршрут является IGP маршрутом.

Если у Вас будет достижение к префиксу несколькими путями, Paths будет несколько, и будет выбран лучше (этот маршрут будет отмечен как best).

При описании соседа, мы можем гибко управлять атрибутами, фильтрами и тому подобными вещами с помощью route-map, синтаксис такой:

neighbor 1.1.1.1 route-map Название_Роут_Мапы in/out

route-map вешается на входящий или исходящий потом (in/out соответственно).

Далее мы разберем, что можно прописывать в route-map и как этим пользоваться в bgp.

Cisco bgp vpnv4 настройка

An error occurred when loading the video. You can change lines.

For any questions, contact us.

Пример настройки IP VPN BGP/MPLS

Обзор IP VPN BGP/MPLS

BGP/MPLS IP VPN — это L3VPN на базе MPLS, которая поддерживает гибкое развертывание и простое расширение и подходит для крупномасштабного развертывания. Для добавления нового объекта, сетевому администратору необходимо изменить конфигурацию граничных узлов, обслуживающих новый объект.

Виртуальная частная IP-сеть BGP/MPLS подходит для связи между штаб-квартирой и филиалами, расположенными в разных местах. Поскольку передаваемые данные должны проходить через магистральную сеть оператора, то BGP используется для объявления маршрутов VPN в магистральной сети, а MPLS используется для пересылки VPN-пакетов в магистральную сеть. Поскольку необходимо выполнить изоляцию отдельных департаментов компании, использование виртуальной частной IP-сети BGP/MPLS позволяет изолировать маршруты, адресное пространство, и доступ между различными VPN.

Примечания по конфигурированию

  • Платы серии SA не поддерживают IP-функцию VPN BGP/MPLS. Платы серии X1E версии V200R006C00 и более поздних версий поддерживают IP-функцию VPN BGP/MPLS.
  • Данное утверждение относится ко всем версиям S12700 .

Требования к сети

Для обеспечения безопасной связи между штаб-квартирой и филиалами, наряду с изоляцией данных отделения научных исследований и разработок и других отделений, необходимо выполнить развертывание IP VPN BGP/MPLS.

Рис. 9-1 Схема сети при настройке IP VPN BGP/MPLS

Схема настройки

Схема настройки выглядит следующим образом:

  1. Настройте OSPF между устройствами P и PE для обеспечения IP-соединения в магистральной сети.
  2. Настройте базовые функции MPLS и MPLS LDP на устройствах P и PE для настройки туннелей LSP MPLS и передачи данных VPN в магистральной сети.
  3. Настройте MP-IBGP между устройствами PE1 и PE2, чтобы они могли обмениваться данными маршрутизации VPN.
  4. Настройте VPN-экземпляры vpna и vpnb на PE1 и PE2. Укажите для целевой VPN vpna значение 111:1 и для целевой VPN vpnb значение 222:2. Такая конфигурация позволит пользователям одной VPN взаимодействовать друг с другом и изолировать пользователей различных VPN. Для предоставления доступа пользователям VPN выполните привязку интерфейсов PE, подключенных к CE к соответствующим экземплярам VPN.
  5. Настройте EBGP на CE и PE для обмена данными маршрутизации VPN.

Процедура

  1. Настройте протокол IGP в магистральной сети MPLS для взаимодействия устройств PE и P друг с другом.

После завершения настройки между PE1 и P, a также между PE2 и P будут установлены отношения соседства OSPF. Выполните команду display ospf peer. Командный вывод показывает, что статус соседа Full. Выполните команду display ip routing-table. Из командного вывода можно узнать о том, что PE узнали маршруты к интерфейсам Loopback1 друг друга.

В качестве примера используется информация, отображаемая на PE1.

Настройте базовые функции MPLS и MPLS LDP в магистральной сети MPLS для установки LDP LSP.

После завершения настроек между PE1 и P, а также между P и PE2 устанавливаются сеансы связи LDP. Выполните команду display mpls ldp session. Из командного вывода можно узнать о том, что поле Status имеет значение Operational. Выполните команду display mpls ldp lsp. На экране появится информация об установленных LDP LSP.

В качестве примера используется информация, отображаемая на PE1.

Настройте экземпляры VPN на PE и выполните привязку интерфейсов, подключенных к CE, к экземплярам VPN.

# Назначьте IP-адреса для интерфейсов CE1, подключенных к отделению научных исследований и разработок штаб-квартиры, в соответствии с Рис. 9-1. Настройки CE2, CE3 и CE4 аналогичны настройкам CE1 и здесь не приводятся.

После завершения настроек выполните команду display ip vpn-instance verbose на PE для проверки конфигурации экземпляров VPN. Каждый PE может отправлять ping-запросы подключенным CE.

Если PE имеет несколько интерфейсов, привязанных к одному экземпляру VPN, то необходимо указать IP-адрес источника, установив значение -asource-ip-address в команде ping -vpn-instancevpn-instance-name-asource-ip-address dest-ip-address для отправки ping-запросов на удаленный CE. Если IP-адрес источника не указан, то при выполнении ping-запроса произойдет сбой.

Читать еще:  Как проверить vpn соединение

В качестве примера используется PE1.

Установите отношения соседства EBGP между PE и CE и импортируйте маршруты VPN в BGP.

# Настройте CE1, который подключается к отделению научных исследований и разработок штаб-квартиры. Настройки CE2, CE3 и CE4 аналогичны настройкам CE1 и здесь не приводятся.

# Настройте PE1. Конфигурация PE2 аналогична конфигурации PE1 и здесь не приводится.

После завершения настроек выполните команду display bgp vpnv4 vpn-instance peer на PE. Командный вывод показывает, что между PE и CE установлены отношения соседства BGP.

В качестве примера используются отношения соседства между PE1 и CE1.

Установите отношения соседства MP-IBGP между PE.

После завершения настроек выполните команду display bgp peer или display bgp vpnv4 all peer на PE. Командный вывод показывает, что между PE установлены отношения соседства BGP.

Выполните команду display ip routing-table vpn-instance на PE для просмотра маршрутов к удаленным CE.

В качестве примера используется информация, отображаемая на PE1.

CE из одной VPN могут отправлять ping-запросы друг другу, а CE из различных VPN не могут.

Например CE1, который подключается к отделению научных исследований и разработок штаб-квартиры может отправлять ping-запросы CE3, который подключается к отделению научных исследований и разработок филиала с адресом 10.3.1.1, однако не может отправлять ping-запросы на CE4, который подключается не к отделению научных исследований и разработок филиала по адресу 10.4.1.1.

Файлы конфигурации

Файл конфигурации PE1

Файл конфигурации P

Файл конфигурации PE2

Файл конфигурации CE1, который подключается к отделению научных исследований и разработок штаб-квартиры

Файл конфигурации CE2, который подключается не к отделению научных исследований и разработок штаб-квартиры

Файл конфигурации CE3, который подключается к отделению научных исследований и разработок филиала

Файл конфигурации CE4, который подключается не к отделению научных исследований и разработок филиала

ИТ База знаний

Полезно

— Узнать IP — адрес компьютера в интернете

— Онлайн генератор устойчивых паролей

— Онлайн калькулятор подсетей

— Калькулятор инсталляции IP — АТС Asterisk

— Руководство администратора FreePBX на русском языке

— Руководство администратора Cisco UCM/CME на русском языке

— Руководство администратора по Linux/Unix

Навигация

Серверные решения

Телефония

FreePBX и Asterisk

Настройка программных телефонов

Корпоративные сети

Протоколы и стандарты

Популярное и похожее

Настройка Site-To-Site IPSec VPN на Cisco

Настройка GRE туннеля на Cisco

Отказоустойчивость Cisco ASA: строим HA

Cisco Jabber – обзор и преимущества

Настройка DMVPN на оборудовании Cisco

В сегодняшней статье покажем пример настройки DMVPN – Dynamic Multipoint VPN, что является VPN решением компании Cisco. Данное решение используется, когда требуется высокая масштабируемость и легкость настройки при подключении филиалов к головному офису.

DMPVN одно из самых масштабируемых и эффективных решений VPN поддерживаемых компанией Cisco. В основном оно используется при топологии Hub-and-Spoke, где вы хотели бы видеть прямые VPN туннели Spoke-to-Spoke в дополнение к обычным Spoke-to-Hub туннелям. Это означает, что филиалы смогут общаться с друг другом напрямую, без необходимости прохождение трафика через HQ. Как уже упоминали, эта технология является проприетарной технологией Cisco.

Если вам необходимо подключить более десяти сайтов к головному офису, то DMPVN будет идеальным выбором. Кроме того, DMPVN поддерживает не только Hub-and-Spoke, но и Full-Mesh топологию, так как все сайты имеют между собой связность без необходимости настройки статических VPN туннелей между сайтами.

Некоторые характеристики DMVPN

Для начала перечислим важные характеристики данного способа организации Site-to-Site VPN для лучшего понимания:

  • Центральный маршрутизатор (HUB) — данный роутер работает как DMVPN сервер, и Spoke маршрутизаторы работают как DMVPN клиенты;
  • У данного маршрутизатора есть публичный статический IP-адрес на WAN интерфейсе;
  • У Spoke маршрутизаторов на WAN интерфейсах может как статический, так и динамический публичный IP-адрес;
  • У каждого филиала (Spoke) есть IPSEC туннель к головному офису (Hub);
  • Spoke-to-Spoke — туннели устанавливаются при возникновении необходимости, когда есть движение трафика между филиалами. Таким образом, трафик может не ходить через головной офис, а использовать прямые туннели между филиалами;
  • Все туннели используют Multipoint GRE c IPSEC;
  • NHRP (Next Hop Resolution Protocol) — данный протокол используется для установления соответствий между приватными IP туннельных интерфейсов с публичными WAN адресами
  • Описанные выше NHRP соответствия будут храниться на NHRP сервере, чем в нашем случае является HUB роутер. Каждый филиал устанавливает соединение с головным офисом и регистрирует свой публичный IP-адрес и его приватный IP-адрес тунеля;
  • Когда филиалу необходимо отправить пакеты в подсеть другого филиала, он запрашивает NHRP сервер для получения информации о внешнем публичном адресе целевого филиала;
  • Для лучшей масштабируемости советуем использовать один из протоколов динамический маршрутизации между всеми роутерами – например, EIGRP;

Еще раз кратко о технологиях, которые использует DMVPN:

  • Multipoint GRE;
  • IPSEC;
  • NHRP – Next Hop Resolution Protocol;
  • Статическая или динамическая маршрутизация;

Настройка маршрутизатора

Конкретно в нашем примере у нас будет HUB маршрутизатор и два филиала. И, как было описано ранее, HUB – это DMVPN cервер, а филиалы – DMPVN клиенты.

В нашем примере в качестве маршрутизатора используется CISCO1921/K9

Сначала настраиваем HUB маршрутизатор – ему необходимо присвоить статический IP – адрес на внешнем WAN-интерфейсе:

Затем настраиваем маршрутизаторы в филиалах (Spoke роутеры) — у одного маршрутизатора статический айпишник на WAN интерфейсе, и у другого динамический, получаемый по DHCP. Первый маршрутизатор в филиале, с динамическим IP:

Второй филиальный маршрутизатор, со статическим IP:

Переходим к тестированию:

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

  • DMVPN
  • Cisco Dynamic Multipoint VPN
  • 540

Полезна ли Вам эта статья?

Пожалуйста, расскажите почему?

Нам жаль, что статья не была полезна для вас 🙁 Пожалуйста, если не затруднит, укажите по какой причине? Мы будем очень благодарны за подробный ответ. Спасибо, что помогаете нам стать лучше!

Подпишитесь на нашу еженедельную рассылку, и мы будем присылать самые интересные публикации 🙂 Просто оставьте свои данные в форме ниже.

Subnets.ru blog

Сети, настройка оборудования, сетевые сервисы.

Настройка протокола BGP на оборудовании Cisco Systems

Рассмотрим пример настройки протокола BGP на оборудовании Cisco Systems.

В основном принципе настройка на Cisco ничем не отличается от настройки BGP на FreeBSD используя Quagga.

Для примера возьмем немного другую ситуацию чем в предыдущей статье, итак:

AS100 — наш номер ASки

5.5.0.0/20 — анонсируемый нами префикс (наш блок адресов)

AS200 — наш апстрим, который отдает нам full-view (полную таблицу маршрутов)

AS300 — наш privat peer (приватный пир), который отдает нам маршруты в свою AS и своего клиента AS400.

С настройки интерфейсов конечно.

GigabitEthernet3/0 — AS200
GigabitEthernet3/1 — AS300

Зайдите на router телнетом и перейдите в enable режим.

cisco# conf t
cisco(config)# interface GigabitEthernet3/0
cisco(config-if)# ip address 1.1.1.2 255.255.255.252
cisco(config-if)# interface GigabitEthernet3/1
cisco(config-if)# ip address 2.2.2.10 255.255.255.252
cisco(config-if)# exit

Добавим маршруты, сначала отправим туда, откуда не возвращаются :), маршруты в «серые сети»:

cisco(config)# ip route 10.0.0.0 255.0.0.0 Null0 254
cisco(config)# ip route 172.16.0.0 255.240.0.0 Null0 254
cisco(config)# ip route 192.168.0.0 255.255.0.0 Null0 254

Затем добавим маршрут на свой полный блок:

cisco(config)# ip route 5.5.0.0 255.255.240.0 Null0 254

Протокол BGP не будет анонсировать префикс, пока сам не узнает маршрут до него.
Именно для этого мы и создали этот маршрут, который будет присутствовать в таблице маршрутизации всегда.
Вы можете пророутить внутрь своей сети как полный блок (тогда маршрут в Null0 (нуль ноль) можно и не добавлять) так и его, побитые на подсети, части. Например подсети по /21:

Читать еще:  Vpn удаленный рабочий стол

cisco(config)# ip route 5.5.0.0 255.255.248.0 10.0.0.2
cisco(config)# ip route 5.5.0.0 255.255.248.0 10.0.0.3

маршрутизаторы внутри сети. Ессно, что они должны быть доступны с маршрутизатора BGP.

Роутер всегда отправляет пакеты по маршруту с лучшим совпадением по маске, именно поэтому маршрут в Null0 и два маршрута, которые мы сделали выше, будут прекрасно сосуществовать и пакеты будут идти на хосты 10.0.0.2 и 10.0.0.3, т.к. у них более точное совпадение по маске.

Приступим к созданию необходимых route-map. Сначала начнем со всего «серого» (адресов и номеров AS).

Создадим необходимые prefix-list и as-path access-list.

Маршрут в default:
cisco(config)# ip prefix-list bogons description bogus nets
cisco(config)# ip prefix-list bogons seq 15 permit 0.0.0.0/8 le 32

Затем остальное:
cisco(config)# ip prefix-list bogons seq 20 permit 127.0.0.0/8 le 32
cisco(config)# ip prefix-list bogons seq 25 permit 192.0.2.0/24 le 32
cisco(config)# ip prefix-list bogons seq 30 permit 10.0.0.0/8 le 32
cisco(config)# ip prefix-list bogons seq 35 permit 172.16.0.0/12 le 32
cisco(config)# ip prefix-list bogons seq 40 permit 192.168.0.0/16 le 32
cisco(config)# ip prefix-list bogons seq 45 permit 169.254.0.0/16 le 32
cisco(config)# ip prefix-list bogons seq 50 permit 192.42.172.0/24 le 32
cisco(config)# ip prefix-list bogons seq 55 permit 198.18.0.0/15 le 32
cisco(config)# ip prefix-list bogons seq 60 permit 192.88.99.0/24 le 32
cisco(config)# ip prefix-list bogons seq 65 permit 224.0.0.0/4 le 32
cisco(config)# ip prefix-list bogons seq 70 permit 240.0.0.0/4 le 32

Теперь «серые» номера AS`ок:
cisco(config)# ip as-path access-list 1 permit _6451[2-9]_
cisco(config)# ip as-path access-list 1 permit _645[2-9][0-9]_
cisco(config)# ip as-path access-list 1 permit _64[6-9][0-9][0-9]_
cisco(config)# ip as-path access-list 1 permit _65[0-9][0-9][0-9]_

Создадим маршрутную карту на IN для AS200 (нашего апстрима).
Запрещаем маршруты с «серыми» номерами AS в as-path, то что матчит (разрешает (permit)) наш as-path access-list, то запрещает наша следующая маршрутная карта:

cisco(config)# route-map map-AS200-in deny 100
cisco(config-route-map)# description — filter private ASs
cisco(config-route-map)# match as-path 1
cisco(config-route-map)# exit

Теперь по маршруту по умолчанию и «серым» сетям, логика действия как и в пред. случае, запрещаем то что permit в prefix-list bogons:

cisco(config)# route-map map-AS200-in deny 110
cisco(config-route-map)# description — — filter bogons
cisco(config-route-map)# match ip address prefix-list bogons
cisco(config-route-map)# exit

Ну и последнее, т.к. мы хотим принимать от AS200 full-view (т.е. полную таблицу), то:

  • разрешаем все остальные маршруты
  • выставляем local-preference по умолчанию внутри своей AS

cisco(config)# route-map map-AS200-in permit 200
cisco(config-route-map)# description — permit any else, set default loc-pref
cisco(config-route-map)# set local-preference 100
cisco(config-route-map)# exit

Создадим маршрутную карту на OUT для AS200 (нашего апстрима). Эта маршрутная карта нужна нам для того, чтобы наша AS анонсировала только свой префикс. Если маршрутной карты на OUT не будет, то ваша AS будет анонсировать всем своим соседям все известные ей маршруты и вы, сами того не желая, дадите возможность прогонять через вас трафик.
Но прежде создадим префикс лист со своим префиксом:

cisco(config)# ip prefix-list own-prefixes permit 5.5.0.0/20

Вот теперь вернемся к маршрутке на OUT:

cisco(config)# route-map map-AS200-out permit 100
cisco(config-route-map)# description — permit our prefixes
cisco(config-route-map)# match ip address prefix-list own-prefixes
cisco(config-route-map)# exit
Т.к. в конце маршрутки по умолчанию идет неявный deny, то все остальные префиксы (маршруты) будут запрещены.

Настало время приступить к маршрутным картам для нашего private peer`а.
Т.к. от него мы собираемся получать только маршруты принадлежащие ему (AS300) и его клиенту (AS400), то будет проще, разрешим только необходимые префиксы, а все остальное запретим:

cisco(config)# ip prefix-list peer-prefixes permit 11.11.0.0/21
cisco(config)# ip prefix-list peer-prefixes permit 12.12.0.0/21

Теперь можно создать маршрутную карту на IN, в которой разрешим необходимые префиксы и поднимем loc-pref, на данные префиксы, чтобы маршруты полученные от этого пира имели приоритет над маршрутами к этим префиксам полученными от других апстримов/пиров:

cisco(config)# route-map map-AS300-in permit 100
cisco(config-route-map)# description — — permit peer prefix
cisco(config-route-map)# match ip address prefix-list peer-prefixes
cisco(config-route-map)# set local-preference 200
cisco(config-route-map)# exit

Ну и тут не обойдется без маршрутной карты на OUT:

cisco(config)# route-map map-AS300-out permit 100
cisco(config-route-map)# description — permit our prefixes
cisco(config-route-map)# match ip address prefix-list own-prefixes
cisco(config-route-map)# exit

Зачем мы создали две маршрутные карты на OUT с разными названиями, но с одинаковым содержимым ?
Ответ прост. Если, в последствии, нам нужно будет, например добавить community к своему маршруту или оглашать свой блок меньшими подсетями, то все равно придется делать разные маршрутные карты, вот поэтому сделаем это сразу, чтобы потом не изменять конфигурацию bgp, а просто подправить маршрутную карту.

Закончим подготовку перед настройкой BGP:

cisco(config)# ip classless
cisco(config)# ip routing
cisco(config)# ip subnet-zero

Подготовку мы сделали, теперь можно переходить непосредственно к настройке и запуску BGP.

cisco(config)# router bgp 100
cisco(config-router)# no synchronization
cisco(config-router)# bgp log-neighbor-changes
cisco(config-router)# bgp deterministic-med

Объявим наш префикс:
cisco(config-router)# network 5.5.0.0 mask 255.255.240.0

Пропишем наего апстрима AS200:
cisco(config-router)# neighbor 1.1.1.1 remote-as 200
cisco(config-router)# neighbor 1.1.1.1 description AS200-upstream
cisco(config-router)# neighbor 1.1.1.1 send-community
cisco(config-router)# neighbor 1.1.1.1 version 4
cisco(config-router)# neighbor 1.1.1.1 soft-reconfiguration inbound
cisco(config-router)# neighbor 1.1.1.1 route-map map-AS200-in in
cisco(config-router)# neighbor 1.1.1.1 route-map map-AS200-out out

Пропишем нашего private peer`а:
cisco(config-router)# neighbor 2.2.2.9 remote-as 300
cisco(config-router)# neighbor 2.2.2.9 description AS300-private-peer
cisco(config-router)# neighbor 2.2.2.9 send-community
cisco(config-router)# neighbor 2.2.2.9 version 4
cisco(config-router)# neighbor 2.2.2.9 soft-reconfiguration inbound
cisco(config-router)# neighbor 2.2.2.9 route-map map-AS300-in in
cisco(config-router)# neighbor 2.2.2.9 route-map map-AS300-out out

Заканчиваем:
cisco(config-router)# distance bgp 180 200 200
cisco(config-router)# no auto-summary
cisco(config-router)# exit
cisco(config)# exit
cisco# wri

После запуска посмотрите, что все настроенные BGP сессии поднялись. Команда:
cisco# show ip bgp summary

Так же стоит взгянуть что именно мы огласили нашему апстриму:
cisco# show ip bgp neighbors 1.1.1.1 advertised-routes

И нашему private peer`у:
cisco# show ip bgp neighbors 2.2.2.9 advertised-routes

Можно взглянуть и что мы от них получили:
cisco# show ip bgp neighbors 1.1.1.1 received-routes
cisco# show ip bgp neighbors 2.2.2.9 received-routes

После того как вы убедились, что все соответствует задуманному можно расслабиться и выпить пива

Заметка:
После каждого изменения route-map, в процессе работы, чтобы изменения вступили в силу необходимо оборвать (clear`нуть) BGP сессию с сосседом. Для того чтобы этого не делать и существует команда soft-reconfiguration inbound при настройке neighbor. Она заставляет роутер хранить маршруты полученные от соседа не только после обработки вашими route-map, но и до этого.
Тем самым вы не обрываете сессию с соседом, а роутер просто берет сохраненные у себя маршруты, которые пришли от соседа и сохранены в первозданном виде ДО обработки вашими route-map и снова прогоняет их через уже измененную route-map.
Например вы изменили route-map map-AS200-in, значит нуна клирнуть сессию с соседом IP-адрес 1.1.1.1.
cisco# clear ip bgp 1.1.1.1 soft in

Заметка:
Если вы хотите принимать от BGP соседа маршруты не более определенной маски, то необходимо создать prefix-list с указанием le или ge:

  • eq — Matches the exact prefix length
  • ge — Matches a prefix length that is equal to or greater than the configured prefix length
  • le — Matches a prefix length that is equal to or less than the configured prefix length

Например: принимать все маршруты с любым префиксом, но не более /24:
cisco(config)# ip prefix-list prefix-range seq 5 permit 0.0.0.0/0 le 24
cisco(config)# route-map peer-in permit 200
cisco(config-route-map)# match ip address prefix-list prefix-range

Полезные ссылки:

З.Ы. При копировании статьи ссылка на источник ОБЯЗАТЕЛЬНА !

Ссылка на основную публикацию
ВсеИнструменты 220 Вольт
Adblock
detector