Border Gateway Protocol. Лабораторная работа

в 8:40, , рубрики: BGP, GNS3, Песочница, Сетевые технологии, Телекомы, метки: ,

Привет! Моя первая статья и в ней я хочу представить небольшую лабораторную работу по конфигурации протокола BGP (Border Gateway Protocol) на маршрутизаторах Cisco. Многие из вас слышали что такое BGP, но не всем довелось опробовать данный протокол на практике. Именно для них и будет интересна данная лабораторная работа.
В статье будет мало теории, поэтому для тех кто впервые слышит о BGP отправляю сначала посетить это, это или, собственно, это.

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

Цель

Цель лабораторной работы — конфигурация маршрутизаторов клиента и оператора так, чтобы получить множественную адресацию с использованием соединений одного ISP. Собственно схема нашей будущей сети:

Border Gateway Protocol. Лабораторная работа

Конфигурация

И так, мы хотим, чтобы соединение между маршрутизаторами A и C было основным для входящего и исходящего трафика, а соединение между B и D было резервным и использовалось только при аварии основного.

Конфигурация интерфейсов

Интерфейсы должны быть сконфигурированы в соответствии с таблицей:

Border Gateway Protocol. Лабораторная работа

Для Serial 1/1 маршрутизатора A:

R1(config)# interface S1/1
R1(config-if)# ip address 150.0.0.1 255.255.255.252
R1(config-if)# no shutdown

Остальные интерфейсы следует сконфигурировать самостоятельно аналогичным способом.

Конфигурация BGP

Каждый маршрутизатор должен иметь номер ASN (в соответствии со схемой), который определяет к какому AS принадлежит маршрутизатор. Плюс каждый маршрутизатор будет обслуживать две сессии: одна iBGP с маршрутизатором в той же AS для работы внутри автономной системы и одна eBGP с маршрутизатором находящимся в другой AS для работы между автономными системами. Сессии должны быть сконфигурированы по обе стороны соединения.

R1(config)# router bgp 65500
R1(config-router)# neighbor 150.0.0.10 remote-as 65500
R1(config-router)# neighbor 150.0.0.2 remote-as 100

Конфигурация остальных маршрутизаторов остается самостоятельным заданием.

Следующее, что сделаем – это воспользуемся нестандартным механизмом, предлагаемым компанией Cisco, next-hop-self. Суть его в том, что он позволяет на изменения адреса Next_Hop перед анонсированием другому маршрутизатору находящемуся в той же AS. Маршрутизатор изменяет значение атрибута Next_Hop на свой собственный адрес. Благодаря чему мы не должны конфигурировать внутридоменную маршрутизацию в каждой AS. Механизм этот должен быть сконфигурирован только между маршрутизаторами в одной и той же AS.

R1(config)# router bgp 65500
R1(config-router)# neighbor 150.0.0.10 next-hop-self

Опять же конфигурация остальных маршрутизаторов – самостоятельно.

Адресное пространство использованное в AS 65500 – 110.0.0.0/24. Чтобы симулировать такую сеть, подключенную к маршрутизатору, можно сконфигурировать на маршрутизаторе B интерфейс Loopback.

R2(config)# interface loopback 0
R2(config-if)# ip address 110.0.0.1 255.255.255.0

Затем маршрутизаторы должны анонсировать подсети, к которым имеют доступ. Маршрутизатор B анонсирует сеть 110.0.0.0 с маской 255.255.255.0, которую имеет на интерфейсе Loopback 0.

R2(config)# router bgp 65500
R2(config-router)# network 110.0.0.0 mask 255.255.255.0

Маршрутизаторы C и D будут анонсировать A и B только маршрут по умолчанию (маршрут, который будет использоваться для всего исходящего трафика с AS 65500).

R3(config)# router bgp 100
R3(config-router)# neighbor 150.0.0.1 default-originate

Управление исходящим трафиком

Если мы хотим, чтобы маршрутизаторы A и B использовали исключительно основное соединение для исходящего трафика, можно воспользоваться атрибутом Local Preference. По умолчанию атрибут имеет значение равное 100. Значение Local Preference выменивается между всеми маршрутизаторами находящимися в одной AS. Чем выше значение атрибута, тем выше приоритет соединения. Изменить значение Local Preference можно с помощью Route map.
Делаем соединение между A и C основным:

R1(config)# router-map primary
R1(config-route-map)# match ip address 1
R1(config-route-map)# set local-preference 150
R1(config-route-map)# exit
R1(config)# access-list 1 permit host 0.0.0.0

Затем:

R1(config)# router bgp 65500
R1(config-router)# neighbor 150.0.0.2 route-map primary in

Чтобы изменения Local Preference вступили в силу, необходимо сбросить предыдущие настройки сессии BGP.

R1# clear ip bgp *

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

Управление входящим трафиком

Мы хотим сделать так, чтобы маршрутизаторы C и D весь свой трафик направляли через основное соединение. Для этого мы можем воспользоваться атрибутом MED. Основное соединение должно получить меньшее значение (в нашем случае MED 20), чем резерв (MED 30). Делаем это с помощью того же Route map.

R1(config)# route-map trafic_out permit 10
R1(config-route-map)# match ip address 10
R1(config-route-map)# set metric 20
R1(config-route-map)# exit
R1(config)# access-list 10 permit host 110.0.0.0

R1(config)# router bgp 65500
R1(config-router)# neighbor 150.0.0.2 route-map trafic_out out

На маршрутизаторе B делаем аналогично со значением MED 50. И не забываем сбросить настройки на маршрутизаторах ISP, чтобы могли получить новые значения метрик.

Это все.
Спасибо за внимание!

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

Автор: vitaliby

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js