Файл: Проектирование маршрутизации в двух трехуровневых сетях с использованием протокола BGP (Расположение маршрутизаторов).pdf
Добавлен: 29.06.2023
Просмотров: 102
Скачиваний: 2
RTC#
router bgp 300
network 170.10.0.0
neighbor 2.2.2.2 remote-as 100
neighbor 2.2.2.2 route-map STOPUPDATES out
route-map STOPUPDATES permit 10
match ip address 1
access-list 1 deny 170.10.0.0 0.0.255.255
access-list 1 permit 0.0.0.0 255.255.255.255
Далее рассмотрим способы объявления сетевых маршрутов и дополнительной информации по объявляемым маршрутам.
Команда network. Формат команды network:
network network-number [mask network-mask]
network-number - номер объявляемой сети
network-mask - маска объявляемой сети
Команда используется для сообщения протоколу BGP информации о том, какую сеть и маску сети нужно объявлять соседним маршрутизаторам. Такая операция называется анонсирование (объявление) сети.
Команда network выполняется, только, если объявляемая сеть известна маршрутизатору. Т.е. объявляемая сеть может быть известна по следующим причинам:
-является подключенной сетью;
-запись об объявляемой сети присутствует в таблице маршрутизации в виде статического маршрута;
-запись об объявляемой сети появилась в таблице маршрутизации динамически;
Пример командs network:
RTA#
router bgp 1
network 192.213.0.0 mask 255.255.0.0
ip route 192.213.0.0 255.255.0.0 null 0
В приведенном выше примере маршрутизатор RTA объявляет суперсеть класса С 192.213.0.0. Для того, что бы объявление применилось, в таблицу маршрутизации добавляется соответствующая запись.
Команда network представляет первый способ объявления своей сети через BGP, второй способ заключается в объявлении внутреннего маршрута на основе информации протоколов внутридоменной маршрутизации, например IGRP, EIGRP, OSPF или RIP. Подобная передача маршрутной информации должна производится крайне осторожно, т.к. возможна ситуация, при которой через BGP во внешнюю сеть будут объявлены маршруты, которые изначально были получены по средствам того же BGP, что приведет к увеличению трафика и быстрому росту версий таблиц маршрутизации. Для предотвращения подобных ситуаций использую фильтры, позволяющие передавать только те номера маршрутов, которые удовлетворяют политике взаимодействия с соседними AS.
Например:
RTA объявляет маршрут 129.13.1.0, а RTC объявляет маршрут 175.220.0.0. Рассмотрим конфигурацию RTC. При использовании команды network конфигурация имеет вид:
RTC#
router eigrp 10
network 175.220.0.0
redistribute bgp 200
default-metric 1000 100 250 100 1500
router bgp 200
neighbor 1.1.1.1 remote-as 300
network 175.220.0.0 mask 255.255.0.0
При использовании информации протоколов внутридоменной маршрутизации, например EIGRP, конфигурация имеет вид
RTC#
router eigrp 10
network 175.220.0.0
redistribute bgp 200
default-metric 1000 100 250 100 1500
router bgp 200
neighbor 1.1.1.1 remote-as 300
redistribute eigrp 10
В данном случае, протокол EIGRP имеет информацию о маршруте в сеть 129.213.1.0, как результат предыдущего взаимодействия с протоколом BGP.Таким образом, возможна ситуация, при которой протокол EIGRP сообщит BGP указанный маршрут (129.213.1.0) для объявления маршрутизатору RTB – подобное явления считается недопустимым, т.к. AS200 не является источником маршрута 129.213.1.0. Для предотвращения описанной ситуации, в конфигурацию маршрутизатора RTC вносится дополнение в виде фильтра, конфигурация имеет вид:
RTC#
router eigrp 10
network 175.220.0.0
redistribute bgp 200
default-metric 1000 100 250 100 1500
router bgp 200
neighbor 1.1.1.1 remote-as 300
neighbor 1.1.1.1 distribute-list 1 out
redistribute eigrp 10
access-list 1 permit 175.220.0.0 0.0.255.255
Команда access-list контролирует маршруты, объявляемые из AS200. В данном случае разрешается объявление только 175.220.0.0 /16. Однако не всегда возможно так просто передать информацию внутренних протоколов для объявления через BGP, в случае протокола OSPF необходимо дополнительно конфигурировать маршруты как internal Или external при настройке протокола OSPF, и только потом приступать к конфигурации взаимодействия BGP-OSPF.
Так же, существуют конфигурации в которых, протокол BGP использует информацию статических таблиц маршрутизации. Например:
RTC#
router eigrp 10
network 175.220.0.0
redistribute bgp 200
default-metric 1000 100 250 100 1500
router bgp 200
neighbor 1.1.1.1 remote-as 300
redistribute static
...
ip route 175.220.0.0 255.255.255.0 null0
....
Интерфейс null0, указывает на передачу пакета «по ситуации». В данном случае, если маршрутизатор получает пакет, и при этом в таблице маршрутизации существует маршрут в большей мере (более полно) отвечающий адресу получателя, указанному в пакете, тогда пакет обрабатывается в соответствии с этой маршрутной записью. Обычно такой метод используется, при объявлении суперсетей.
Далее рассмотрим пример явного указания объявляемых внутренних маршрутов для использования в BGP.
RTA#
router bgp 100
neighbor 150.10.20.2 remote-as 300
network 150.10.0.0
RTB#
router bgp 200
neighbor 160.10.20.2 remote-as 300
network 160.10.0.0
RTC#
router bgp 300
neighbor 150.10.20.1 remote-as 100
neighbor 160.10.20.1 remote-as 200
network 170.10.00
В данной конфигурации протокол BGP будет объявлять соседям вначале только явно указанные командой network маршруты. Т.е. в результате взаимодействия RTC будет знать о маршрутах 150.10.0.0 и 160.10.0.0, а маршрутизатор RTA – только о маршруте 170.10.0, как и маршрутизатор RTB – только о маршруте 170.10.0.0.
Важно понимать, что протокол BGP не принимает объявления, рожденные в его собственной AS. Это делается для предотвращения образования маршрутных петель. Например, предположим что AS200, из приведенного выше примера имеет прямое BGP подключение к AS100. RTA генерирует маршрутное объявление 150.10.0.0 и посылает его в адрес маршрутизатора RTC, расположенного в AS300. RTC передает этот маршрут в AS200, при этом сохраняя значение атрибута ORIGIN соответствующее AS100. RTB передает маршрут 150.10.0.0 в AS100. RTA анализирует значение атрибута ORIGIN в полученном объявлении, и понимает что это его собственное объявление, после чего принятый пакет сбрасывается, а сообщаемый маршрут не применяется.
Однако, если бы маршрутизатор RTC создал объявление маршрута 150.10.0.0 от своего имени, тогда дальнейшая судьба данного объявления при достижении RTA, зависела бы от принятой политики этого маршрутизатора, описывающей взаимодействия с внешними маршрутизаторами. Т.е. маршрут мог быть принят либо сброшен.
При использовании варианта iBGP, существует ряд преимуществ по сравнению с конфигурацией eBGP+внутренние протоколы машрутизации. Например, iBGP позволяет выделять оптимальную точку выхода из AS (маршрут во внешнюю сеть), используя преимущества локальных маршрутов, сообщаемые в пакетах объявлений дополнительно.
Рассмотрим пример:
RTA#
router bgp 100
neighbor 190.10.50.1 remote-as 100
neighbor 170.10.20.2 remote-as 300
network 150.10.0.0
RTB#
router bgp 100
neighbor 150.10.30.1 remote-as 100
neighbor 175.10.40.1 remote-as 400
network 190.10.50.0
RTC#
router bgp 400
neighbor 175.10.40.2 remote-as 100
network 175.10.0.0
Если BGP спикер принимает объявление от маршрутизаторов расположенных в своей AS (iBGP), то этот маршрутизатор не передает данное объявление дальше в свою AS. Передача принятого таким образом маршрутного объявления, осуществляется только за пределы AS.
На приведенной выше схеме маршрутизаторы RTA и RTB работают в режиме iBGP, RTA и RTD также работают в режиме iBGP. Объявления BGP переданные от маршрутизатора RTB маршрутизатору RTA передаются далее за пределы AS – маршрутизатору RTE. Объявление не передается на маршрутизатор RTD, так как данный маршрутизатор находится внутри AS, в которой находятся маршрутизаторы RTA и RTB. Что бы изменить существующую схему раздачи объявлений, и дать возможность RTB так же объявлять маршрут от RTB, необходимо настроить прямое взаимодействие между маршрутизаторами RTB и RTD.
Приведенные выше примеры использования протокола BGP, представляют основные и наиболее простые схемы взаимодействия маршрутизаторов, работающих под управлением данного протокола. Однако, применение подобных схем, является непременным условием построения любой системы работающей с использованием протокола BGP не зависимо от уровня сложности и количества взаимодействующих автономных систем.