Меню

Настройка bgp default route

Принципы работы протокола BGP

Сегодня мы рассмотрим протокол BGP. Не будем долго говорить зачем он и почему он используется как единственный протокол. Довольно много информации есть на этот счет, например тут.

Итак, что такое BGP? BGP — это протокол динамической маршрутизации, являющийся единственным EGP( External Gateway Protocol) протоколом. Данный протокол используется для построения маршрутизации в интернете. Рассмотрим как строится соседство между двумя маршрутизаторами BGP.


Рассмотрим соседство между Router1 и Router3. Настроим их при помощи следующих команд:

Соседство внутри одной автономной системы — AS 10. После ввода данных на маршрутизаторе, например на Router1, данный маршрутизатор пытается настроить отношения соседства с маршрутизатором Router3. Начальное состояние, когда ничего не происходит называется Idle. Как только будет настроен bgp на Router1, он начнет слушать TCP порт 179 — перейдет в состояние Connect, а когда пытается открыть сессию с Router3, то перейдет в состояние Active.

После того, как сессия установится между Router1 и Router3, то происходит обмен Open сообщениями. Когда данное сообщение отправит Router1, то данное состояние будет называться Open Sent. А когда получит Open сообщение от Router3, то перейдет в состояние Open Confirm. Рассмотрим более подробно сообщение Open:


В данном сообщение передается информация о самом протоколе BGP, который использует маршрутизатор. Обмениваясь Open сообщениями, Router1 и Router3 сообщают друг другу информацию о своих настройках. Передаются следующие параметры:

Для установления соседства необходимо выполнения следующих условий:

Здесь указывают сети, о которых сообщает Router1 и Path attributes, которые являются аналогом метрик. О Path attributes мы поговорим более подробно. Также внутри TCP сессии передаются Keepalive сообщения. Они передаются, по умолчанию, каждые 60 секунд. Это Keepalive Timer. Если в течении Hold Timer-а не будет получено Keepalive сообщение, то это будет означать потерю связи с соседом. По умолчанию, он равен — 180 секундам.

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

Чтобы анонсировать какой-нибудь маршрут в таблицу BGP, как и в протоколах IGP, используется команда network, но логика работы отличается. Если в IGP, после указание маршрута в команде network, IGP смотрит — какие интерфейсы принадлежат данной подсети и включает их в свою таблицу, то команда network в BGP смотрит в таблицу маршрутизации и ищет точное совпадение с маршрутом в команде network. При нахождении таких, данные маршруты попадут в таблицу BGP.

Look for a route in the router’s current IP routing table that exactly matches the parameters of the network command; if the IP route exists, put the equivalent NLRI into the local BGP table.

Теперь поднимем BGP на всех оставшихся и посмотрим как происходит выбор маршрута внутри одной AS. После того, как BGP маршрутизатор получит маршруты от соседа, то начинается выбор оптимального маршрута. Здесь надо понять какого вида соседи могут быть — внутренние и внешние. Маршрутизатор по конфигурации понимает является ли сконфигурированный сосед внутренним или внешним. Если в команде:

в качестве параметра remote-as указан AS, который сконфигурирован на самом маршрутизаторе в команде router bgp 10. Маршруты, пришедшие из внутренней AS считаются внутренними, а маршруты из внешней соответственно внешними. И по отношению к каждому работает разная логика получения и отправки. Рассмотрим такую топологию:

На каждом маршрутизаторы настроен loopback интрефейс с ip: x.x.x.x 255.255.255.0 — где x номер маршрутизатора. На Router9 у нас есть loopback интерфейс с адресом — 9.9.9.9 255.255.255.0. Его мы будем анонсировать по BGP и посмотрим как он распространяется. Данный маршрут будет передан на Router8 и Router12. С Router8 данный маршрут попадет на Router6, но на Router5 в таблице маршрутизации его не будет. Также и на Router12 данный маршрут попадет в таблицу, но на Router11 его также не будет. Попытаемся разобраться с этим. Рассмотрим какие данные и параметры передается Router9 своим соседям, сообщая об этом маршруте. Пакет внизу будет отправлен с Router9 на Router8.


Информация о маршруте состоит из аттрибутов пути (Path attributes).

Атрибуты пути разделены на 4 категории:

Атрибут Origin — указывает на то, каким образом был получен маршрут в обновлении. Возможные значения атрибута:

Далее, Next-hop. Атрибут Next-hop

Теперь Router6 передал маршрут Router5 и первому правилу Next-hop не изменил. То есть, Router5 должен добавить 9.9.9.0 [20/0] via 192.168.68.8, но у него нет маршрута до 192.168.68.8 и поэтому данный маршрут добавлен не будет, хотя информация о данном маршруте будет храниться в таблице BGP:

Та же самая ситуация произойдет и между Router11-Router12. Чтоб избежать такой ситуации необходимо настроить, чтоб Router6 или Router12, передавая маршрут своим внутренним соседям, подставляли в качестве Next-hop свой ip адрес. Делается при помощи команды:

После данной команды, Router6 отправит Update сообщение, где для маршрутов в качества Next-hop будет указан ip интерфейса Gi0/0 Router6 — 192.168.56.6, после чего данный маршрут уже попадет в таблицу маршрутизации.

Пойдем дальше и посмотрим появиться ли этот маршрут на Router7 и Router10. В таблице маршрутизации его не окажется и мы могли бы подумать, что проблема как в первом с параметром Next-hop, но если мы посмотрим вывод команды show ip bgp, то увидим, что там маршрут не был получен даже с неправильным Next-hop, что означает, что маршрут даже не передавался. И это нас приведет к существованию еще одного правила:

Маршруты, полученные от внутренних соседей не передаются другим внутренним соседям.

Так как, Router5 получил маршрут от Router6, то другому своему внутреннему соседу он передаваться не будет. Для того, чтобы передача произошла необходимо настроить функцию Route Reflector, либо настроить полносвязные отношения соседства ( Full Mesh), то есть Router5-7 каждый будет соседом с каждым. Мы будем в данном случае использовать Route Reflector. На Router5 необходимо использовать данную команду:

Route-Reflector меняет поведение BGP при передаче маршрута внутреннему соседу. Если внутренний сосед указан как route-reflector-client, то данным клиентам будут анонсироваться внутренние маршруты.

Маршрут не появился на Router7? Не забываем также и про Next-hop. После данных манипуляций маршрут должен и на Router7, но этого не происходит. Это нас подводит к еще одному правилу:

Правило next-hop работает только для External маршрутов. Для внутренних маршрутов замена атрибута next-hop не происходит.

И мы получаем ситуацию, в которой необходимо создать среду при помощи статичной маршрутизации или протоколов IGP сообщить маршрутизаторам о всех маршрутах внутри AS. Пропишем статические маршруты на Router6 и Router7 и после этого получим нужный маршрут в таблице маршрутизаторе. В AS 678 же мы поступим немного иначе — пропишем статические маршруты для 192.168.112.0/24 на Router10 и 192.168.110.0/24 на Router12. Далее, установим отношения соседства между Router10 и Router12. Также настроим на Router12 отправку своего next-hop для Router10:

Итогом будет то, что Router10 будет получать маршрут 9.9.9.0/24, он будет получен и от Router7 и от Router12. Посмотрим какой выбор сделает Router10:

Как мы видим, два маршрута и стрелка ( > ) означает, что выбран маршрут через 192.168.112.12.
Посмотрим как происходит процесс выбора маршрута:

Теперь все маршруты от данного соседа будут иметь такой вес. Посмотрим как изменится выбор маршрута после данной манипуляции:

Но как видим один маршрут через Router6. А где же маршрут через Router7? Может и на Router7 его нет? Смотрим:

Странно, вроде все в порядке. Почему же он не передается на Router5? Все дело в том, что у BGP есть правило:

Маршрутизатор передает только те маршруты, которые использует сам.

Router7 используется маршрут через Router5, поэтому маршрут через Router10 передаваться не будет. Вернемся к Local Preference. Давайте зададим Local Preference на Router7 и посмотрим как отреагирует на это Router5:

Итак, мы создали route-map, в который попадаются все маршруты и сказали Router7, чтоб при получение он менял параметр Local Preference на 250, по умолчанию равен 100. Смотрим, что произошло на Router5:

Посмотрим, что произойдет, если допустим Router6 потеряет маршрут 9.9.9.0/24 через Router9. Отключим интерфейс Gi0/1 Router6, который сразу поймет, что BGP сессия с Router8 оборвана и сосед пропал, а значит и маршрут, полученные от него не действительны. Router6 сразу отправляет Update сообщения, где указывает сеть 9.9.9.0/24 в поле Withdrawn Routes. Как только Router5 получит подобное сообщение, отправит его к Router7. Но так как у Router7 есть маршрут через Router10, то в ответ сразу отправит Update c новым маршрутом. Если детектировать падения соседа по состоянию интерфейса не получается, то придеться ждать срабатывания Hold Timer-а.

Если помните, то мы говорили о том, что часто приходится использовать полносвязную топологию. С большим количеством маршрутизаторов в одной AS это может доставить большие проблемы, чтоб избежать этого необходимо использовать конфедерации. Одна AS разбивается на несколько sub-AS, что позволяет работать им без требования полносвязной топологии.

Здесь ссылка на данную лабу, а тут конфигурация для GNS3.

Пришлось бы настраивать Route-Reflector или полносвязые отношения соседства. Разбивая одну AS 2345 на 4 sub-AS ( 2,3,4,5) для каждого маршрутизатора, мы в итоге получаем другую логику работы. Все отлично описано здесь.

Читайте также:  Как разрешить доступ к сети для chrome в настройках брандмауэра

Источник

Руководства по настройке совместимых систем: Руководство по конфигурации BGP

Параметры загрузки

Содержание

Введение

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

Номера автономных систем (AS) назначаются организацией American Registry for Internet Numbers. Для получения дополнительных сведений обратитесь к веб–сайту организации. На нем помещен полный список всех назначенных номеров AS в разделе “Документация”.

Возможно, но не приветствуется, запрашивать присвоение номера AS и запускать BGP для узла с одним выходом в сеть. Однако требуется отдельный номер AS для многосетевого узла, где используется более одного ISP. Это объясняется тем, что установка на узле с одной сетью может рассматриваться как внутренняя для ISP, в то время как установка на многосетевой узел – нет.

Маршрутизатор, который обменивается данными BGP, носит название однорангового узла BGP. У маршрутизатора могут быть внешние одноранговые узлы в других AS, и внутренние одноранговые узлы в его AS. Одноранговый узел является внешним, если номер его AS отличается от номера AS маршрутизатора.

Маршрутизаторы устанавливают сеанс BGP с помощью протокола TCP. После запуска нового сеанса BGP, узлы BGP обменяются полными таблицами маршрутизации; после этого они будут отправлять только обновления с приращением.

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

Предварительные условия

Требования

Для данного документа нет особых требований.

Используемые компоненты

Настоящий документ не имеет жесткой привязки к устройству или какой-либо версии ПО.

Общая конфигурация BGP

Протокол BGP включен в раздел BGP General. BGP активизируется для маршрутизатора в целом, а не на интерфейс, как RIP и OSPF. BGP Off по умолчанию. Для включения BGP необходимо установить параметр BGPEnabled в значение On.

Номер автономной системы (AS) этого маршрутизатора настраивается здесь. Должен быть предоставлен номер BGPAS; если это не так, BGP не будет включен.

Атрибут местного приоритета BGPLocPref является предметом обмена между маршрутизаторами одной AS, а также указателем пути для выхода из AS; путь с наивысшим местным приоритетом является предпочтительным. Если не задан никакой BGPLocPref, будет использоваться значение по умолчанию: 100.

BGP использует карты маршрутов BGP для фильтрации маршрутов и настройки атрибутов. Дополнительные сведения см. в разделах Настройки однорангового узла BGP и Карта маршрутов BGP этого документа. Пользователь может использовать фильтры IP-маршрута вместо карт маршрутов BGP. Для всех равноправных узлов, для которых не определены карты маршрутов BGP, будет проверяться значение параметра BGPUseIPRFltrs, и при положительном значении (TRUE) для соответствующих узлов будут проверены фильтры IP-маршрутов. Учтите, что фильтры маршрута IP являются глобальными для маршрутизатора, в то время как карты маршрутов BGP можно настроить для каждого однорангового узла.

Конфигурация равноправного узла BGP

В BGP Peer List (списке одноранговых узлов BGP) перечислены настроенные одноранговые партнеры данного маршрутизатора. Маршрутизатор не установит BGP-соединение с маршрутизатором, которого нет в списке. Если BGP Peer List отсутствует, BGP не будет активизирован, даже если BGPEnabled установлен в On в разделе BGP General.

Параметр On|Off конфигурирует состояние пуска маршрутизатора по отношению к равноправному узлу: определяет, будет ли маршрутизатор при запуске автоматически пытаться установить сессию BGP с равноправным узлом. Если значение параметра равно Off, маршрутизатор не будет устанавливать сеанс BGP с равноправным узлом до тех пор, пока не будет выполнена команда BGP Enable. Примите во внимание, что это не изменит состояние пуска; при следующей загрузке маршрутизатора, равноправный узел будет находиться в состоянии Off до тех пор, пока вы не активируете его.

Протокол BGP можно настроить таким образом, чтобы все узлы при запуске были в состоянии Off. Если в разделе BGP General установлено BGPEnabled = On, то можно, после запуска маршрутизатора, динамически активировать выбранные узлы.

Маршрутизатор свяжется с равноправным узлом при помощи IP-адрес, записанного в списке конфигурации. Необходимо предоставить IP-адрес и номер AS равноправного узла. Для установления сеанса маршрутизатор должен иметь сеть прилагаемого IP-адреса в таблице маршрутизации. По номеру AS маршрутизатор определяет, является ли данный равноправный узел внутренним или внешним, поскольку номера AS внутренних равноправных узлов совпадают с номером AS самого маршрутизатора.

Каждый элемент BGP Peer List может содержать дополнительный идентификатор PeerConfigID, который определяет количество разделов BGP Peer Config, где можно установить различные элементы конфигурации конкретного узла BGP. В разделе BGP Peer Config можно настроить несколько равноправных узлов одновременно, при условии, что все устанавливаемые параметры одинаковы.

Обратите внимание, что InputRouteMap и OutputRouteMap задаются отдельно. Настраиваемые и проверяемые параметры входящих и исходящих маршрутов отличаются (для получения подробной информации см. раздел Схема маршрутов BGP).

Если параметр NextHopSelf установлен в TRUE, то маршрутизатор объявит себя следующим узлом на маршрутах, о которых он оповещает этот одноранговый узел.

Необходимо, чтобы внешние одноранговые узлы были подключены напрямую, если только EBGPMultihop не установлен в TRUE. Если данный параметр установлен в TRUE, маршрутизатор, чтобы установить соединение, должен обладать маршрутом к внешнему одноранговому узлу, подключенному не напрямую.

Параметр PeerWeight является внешним рейтингом, который администратор назначил одноранговому узлу; он не объявляется другим маршрутизаторам. При существовании нескольких маршрутов до одного назначения предпочитаются одноранговые узлы с более высокими весовыми коэффициентами.

Параметр BGP Retry Time позволяет администратору задать временной интервал между попытками установить соединение с настроенными одноранговыми узлами, которые были по какой-либо причине отключены. Если узел недоступен, но его состояние установлено в On, маршрутизатор будет продолжать попытки контакта с узлом каждые PeerRetryTime секунд. Минимально допустимое время PeerRetryTime равно 10 секундам.

Время удержания согласуется с одноранговым узлом, поэтому сконфигурированное значение PeerHoldTime не обязательно будет временем удержания, которое будут использовать одноранговые узлы. Равноправные узлы используют меньшую из двух предложенных задержек времени. Время удержания должно быть установлено или на 0 или не меньше 3 секунд. Если установленный интервал времени удержания 0, тогда периодические сообщения KEEPALIVE посылаться не будут.

Если PeerWeight, PeerHoldTime или PeerRetryTime не заданы, будут использоваться значения по умолчанию. Значение по умолчанию PeerWeight равно 100, значение по умолчанию PeerHoldTime равно 180 секундам, значение по умолчанию PeerRetryTime равно 30 секундам.

Если LoopbackAddress указан в разделе IP Loopback, то BGPUseLoopback может быть установлен в TRUE. В этом случае в качестве IP-источника пакетов TCP для данного однорангового узла маршрутизатор использует собственный адрес обратной связи, а не конкретный IP-адрес одного из собственных интерфейсов. Примите во внимание, однако, что одноранговый узел должен знать, как отправлять пакеты адресам при помощи обычных процедур маршрутизации IP. Если адрес не находится в подсети уже известной узлу, он должен быть добавлен в виде статического маршрута. Адрес обратной линии обычно только используется для внутренних одноранговых узлов, так как внешние одноранговые узлы обычно соединены напрямую.

Маршрут по умолчанию маршрутизатора не объявляется одноранговому узлу, если только параметр AdvertiseDefault для этого однорангового узла не установлен в TRUE.

Примерная конфигурация узла

Ниже представлена примерная конфигурация:

Политика объявления маршрута BGP

Поведение BGP по умолчанию – НЕ объявлять маршруты. Это сделано для того, чтобы предотвратить случайные объявления маршрутов в Интернете.

Чтобы объявить маршруты, необходимо кое-что настроить: Список сетей BGP, перераспределение маршрута IP, маршрутные карты BGP или фильтры маршрута IP.

Чтобы объявить внешние маршруты, используйте карты маршрутов BGP или фильтры маршрута IP. Чтобы объявить внутренние маршруты, используйте список сетей BGP или перераспределение маршрута IP.

Каждый из разделов конфигурации описан ниже.

Сети BGP (Border Gateway Protocol – протокол пограничных шлюзов)

Раздел BGP Networks определяет список маршрутов, которые администратор планирует объявить как маршруты, которые берут начало внутри AS. Это могут быть напрямую подключенные маршруты, статические маршруты, маршруты RIP или маршруты OSPF.

Маршрутизатор сравнивает записи в списке сетей BGP с записями в своей таблице IP-маршрутизации, и не будет объявлять в списке сетей маршрут, который отсутствует в таблице IP-маршрутизации. Поэтому, если нужно объявить локальные сети, которых нет в собственной таблице IP-маршрутизации маршрутизатора, понадобится добавить статические маршруты.

Примите во внимание, что единственный способ объявить напрямую подключенные маршруты в BGP – это включить их в список сети. Маршруты OSPF или RIP могут быть объявлены в BGP с помощью раздела IP Route Redistribution. Статичные маршруты могут быть объявлены по BGP при помощи установки флага redistribute на каждом настроенном статическом маршруте.

Дополнительный параметр маски сообщает маршрутизатору, сколько битов записи в таблице IP-маршрутов нужно сравнить с адресом LocalNet. Эта маска необязательно будет фактической маской сети, объявления о которой требуется рассылать. Например, предположим, что маршрутизатор имеет подсети 198.41.9.32, 198.41.9.64 и 198.41.9.96 с маской 255.255.255.224. Чтобы BGP объявил одну сеть 198.41.9.0/24, BGP Networks должен выглядеть следующим образом:

При указанной в сети LocalNet маске маршрутизатору будет соответствовать только запись 198.41.9.32. Сеть будет объявлена как 198.41.9.0/24, так как автоматически обрезается маска подсети более специфичная чем класс C. Однако, если будет предоставлена маска 255.255.255.0, сеть 198.41.9.0/24 будет объявлена трижды, поскольку все три подсети будут соответствовать записи LocalNet. Данное обрезание не такое же самое, что и агрегирование, и применяется только к внутренним сетям и к маскам более специфичным, чем класс C. Чтобы обеспечить агрегирование маршрутов, используйте раздел «Агрегация BGP».

Читайте также:  Tacacs server linux установка настройка

Настройка агрегирования BGP

Раздел BGP Aggregates содержит сети, которые следует объединить перед объявлением внешним одноранговым партнерам. Таблица IP-маршрутизации маршрутизатора должна содержать сети, которые являются подмножеством объединения, чтобы объединение было объявлено; внешним узлам будут объявляться только объединения, а не индивидуальные маршруты. Внутренние одноранговые узлы получают индивидуальные маршруты, если они создаются за пределами AS; внутренние одноранговые узлы не обмениваются внутренними маршрутами через BGP.

Нет необходимости иметь список объединений для внутренних подсетей сетей класса C (см. раздел Сети BGP выше). Если имеется несколько сетей класса C (или более высокого), которые могут быть объединены с помощью общей маски в суперсеть, можно применить функции агрегирования.

Одиночный маршрут 198.41.8.0/22 будет объявлен внешним одноранговым узлам BGP. Без записи BGP Aggregates, будут объявляться раздельно четыре сети. Все четыре сети будут соответствовать маскам, представленных в разделе BGP Networks, но объединение не будет произведено автоматически.

Перераспределение протокола IP-маршрутизации

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

Примечание. Количество поддерживаемых маршрутов будет также зависеть от объема памяти маршрутизатора.

Распределение статических маршрутов в BGP

Статический маршрут может быть перераспределен в BGP благодаря использованию флага перераспределения во время настройки маршрута в разделе IP Static:

Настройка карты маршрута протокола BGP

Карты маршрута BGP похожи на фильтры маршрута IP, за исключением:

Они характерны для протокола BGP

Они могут быть определены на основе равноправных узлов

Они позволяют устанавливать атрибуты BGP на входящие и исходящие маршруты, в дополнение к фильтрации маршрутов

Карты маршрутов используются только протоколом BGP и не связаны с конкретным интерфейсом. В разделе BGP Peer Config определяются карты маршрутов (если есть), которые следует применять к узлу. Карты входящего и исходящего маршрута задаются отдельно.

BGP-маршруты, известные маршрутизатору, будут объявлены, если они не запрещены картой маршрутов или фильтром маршрутов. Статические, IGP и напрямую подключенные маршруты не будут объявлены, если они не заданы в разделе BGP Networks или путем перераспределения маршрутов.

Маршрутизатор не допускает никаких маршрутов входа, если не были определены карта маршрутов BGP или фильтр маршрута IP. Если требуется действительно все, поможет команда «permit 0.0.0.0». Маршрутизатор сначала проверяет карты маршрутов BGP, и если маршрут отклонен, фильтры IP-маршрута не будут проверяться, даже если значение BGPUseIPRFltrs равно True.

Вместо BGP Route Maps, с BGP можно использовать IP Route Filters. Условия совпадения более ограничены, а различные параметры, такие как community (сообщество), local preference (локальное предпочтение) и weight (вес),не могут быть заданы в IP Route Filters.

Правила настройки карт маршрутизации BGP

Данный раздел подробно описывает параметры и модификаторы относящиеся к правилам настройки карт маршрутизации BGP.

Описывает действия, которые необходимо предпринять при соответствии маршрута условиям правил.

IP–адрес указывается также, как и для фильтров IP–маршрутов; т.е. в обычной точечной десятичной нотации, как и факторизованный адрес, шестнадцатеричное число, или с добавочным /разрядным полем. Подробные сведения см. в разделе Фильтрации маршрутов IP руководства.

[Direction]

Должны быть указаны параметры in или out. Определяет направление, к которому применяется правило.

Данный модификаторы применимы, если направление указано как:

ipaddr: IP – адрес однорангового узла

hasas: номер AS содержится в пути AS

nhop: это следующий узел маршрута

comm – данное сообщество содержится в списке атрибутов

setpref: устанавливает предпочтение данному значению

setwt: задает вес данному значению

Модификаторы ipaddr | hasas | srcas | comm | nhop ограничивают правила входа для маршрутов, начинающихся из назначенного IP – адреса, номера AS, сообщества или следующего узла. Здесь должен быть только один из пяти аргументов. «hasas» означает, что правило будет применено в том случае, когда путь AS содержит указанный номер AS в любом месте пути AS; «srcas» означает, что правило будет применено, только если маршрут начинается в указанной AS.

Модификатор setpref позволяет назначить предпочтения на входящие маршруты. При наличии ipaddr, hasas, srcas, comm или nhop преимущество будет установлено только для маршрутов, удовлетворяющих условию.

Модификатор setwt допускает назначение веса на входящие маршруты. При наличии ipaddr, hasas, srcas, comm или nhop, вес будет установлен только для маршрутов, удовлетворяющих этому условию.

Если направление исходящее, применяются следующие модификаторы:

ipaddr: IP – адрес однорангового узла

toas: номер AS равноправного узла

origin: протокол пункта возникновения маршрута

setnhop: задать атрибут следующего узла

setmed: задать атрибут дискриминатора на несколько выходов

setasp: добавить путь AS к существующему пути

setcomm: задать новый список сообществ, отменив предыдущий

addcomm: добавить список сообществ к существующему

Модификаторы ipaddr | toas ограничивают исходящие правила для маршрутов на назначенный IP–адрес или номер AS. Здесь должен быть только один аргумент. Если у маршрутизатора есть только один одноранговый узел в указанной AS, то «ipaddr» или «toas» дадут тот же результат. Если в рамках соседней AS у маршрутизатора есть несколько одноранговых узлов, ограничьте действие правила только одним узлом с помощью его IP-адреса или примените это правило к каждому узлу AS с помощью его номера.

Модификатор srcas ограничивает исходящие правила для маршрутов, источником которых является назначенный номер AS.

Модификатор протокола origin ограничивает исходящие правила для маршрутов, источником которых является назначенный протокол. Протокол BGP может выбирать из своей собственной таблицы IP-маршрутизации и объявлять такие BGP-маршруты к равноправным узлам, как прямой, статический, RIP, OSPF и другие.

Модификатор setnhop позволяет задать на исходящем маршруте следующий узел.

Модификатор setmed позволяет установить на исходящий маршрут дискриминатор на несколько выходов.

Модификатор setasp позволяет добавить к атрибуту исходящего пути AS указанный список AS. Можно ввести до 6 номеров AS.

Модификатор setcomm позволяет задать на исходящий маршрут список сообщества. Параметры могут быть либо максимум 6 номерами сообществ, либо одним из специальных сообществ: «noexport», «noadv», или «noexpsub». Это три «самых известных» сообщества, определенных RFC 1997, Атрибуты сообществ BGP: NO_EXPORT, NO_ADVERTISE, и NO_EXPORT_SUBCONFED.

Модификатор addcomm позволяет добавить к исходящему маршруту список сообществ. Параметры могут быть максимум 6 номерами сообществ.

Примеры

Использование маршрута 192.61.5.0 в карте маршрута mymapin протокола BGP будет разрешено, если атрибут Community содержит сообщество 200 и предпочтение равно 100. На линии 2, все прочие маршруты от Community 200 также будут приняты, однако предпочтение будет предоставлено для 300. Маршруты, не содержащие Community 200, будут запрещены.

В карте mymapout маршрута протокола BGP, всем прямым маршрутам указанным в разделе Сети BGP будет разрешен выход на AS номер 200, а MED будет установлен на 10. Во второй строке, всем маршрутам будет разрешен выход на AS номер 300, но значение Community будет установлено в noadv (NO_ADVERTISE).

Сводка по процессу выбора маршрута BGP

Карты маршрутизации помогают администратору влиять на процесс выбора маршрута, поскольку BGP помимо всего прочего использует вес, предпочтение и MED. BGP использует следующие критерии (в указанном порядке) для выбора оптимального маршрута до точки назначения:

Наиболее предпочтителен путь с максимальным весом.

Если веса совпадают, выбирается путь и наивысшим локальным приоритетом.

Если пути имеют одинаковый приоритет, выбирается путь с самой короткой длиной AS-пути.

Если все пути имеют одинаковую длину пути AS, выберите путь с самым низким MED.

Если для путей используется одинаковый селектор MED, выберите путь однорангового узла BGP с наименьшим идентификатором маршрутизатора.

Фильтры IP-маршрута и протокол BGP

Пользователь может применить IP Route Filters вместе с протоколом BGP вместо BGP Route Maps; однако, IP Route Filters не предоставляют возможность настройки атрибутов протокола BGP, показанные в разделе BGP Route Map. Если для однорангового узла был определен InputRouteMap, то IP Route Filters (фильтры IP-маршрута) будут игнорироваться для входящих маршрутов, даже если в разделе BGP General параметр BGPUseIPRFltrs установлен в TRUE. Также если для однорангового узла был определен OutputRouteMap, фильтры IP-маршрута для исходящих маршрутов будут проигнорированы.

Для BGP дополнительный параметр добавлен в фильтрацию маршрута IP, основанную на пути AS. BGP-маршрут содержит данные о всех автономных системах (AS), которые он проходит. Маршрут 199.41.13.0, исходящий из AS 500, будет иметь два пути AS, чтобы достичь R1: [200,300,500] и [400,600,500].

В следующем примере, IP Route Filter bgpin применяется к маршрутизатору R1. Все маршруты, исходящие из AS 300, будут отфильтрованы, и все маршруты, исходящие из AS 400, будут разрешены.

IP Route Filter bgpout позволяет объявлять 192.62.16.0 для R2, а 192.62.17.0 для R4. В bgpout, вместо номеров AS можно использовать IP-адреса R2 и R4.

IP Route Filter bgp600 иллюстрирует использование ключевого слова contains. Данный фильтр будет отклонять все входящие маршруты, содержащие в любом месте их AS-пути AS 600.

Обратите внимание, на последнюю строку маршрутного фильтра, которая предотвращает непреднамеренное фильтрование маршрутов RIP и OSPF:

Однако с фильтрацией AS это сделать невозможно, так как фильтр AS применяется к источнику маршрута. Предположим, маршрутизатор R1 получает объявление о маршруте 199.41.13.0 с обоих одноранговых узлов R2 и R4, и что маршрут исходит из AS 500. Путь AS для маршрута из R2 следовательно [200,300,500], а путь AS для того же маршрута из R4 – [400,600,500].

Читайте также:  Настройка электронной почты майл на телефоне

Хотя синтаксис является верным, верхний фильтр может отклонить маршрут; он не будет соответствовать фильтру во второй строке, потому что исходный номер AS – 500, а не 400. Чтобы достигнуть вышепоказанной цели, можно использовать IP–адреса одноранговых узлов R2 и R4

Команды консоли BGP

Имеется несколько команд отображения для BGP и несколько команд включения и выключения BGP или сброса BGP-соединений:

Команда Show BGP rtcount

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

Команда show BGP Routes

Команда show bgp routes без аргументов отображает для каждого назначения лучший маршрут в базе данных маршрутизации BGP. Пример выборки приведен ниже.

База данных маршрутизации BGP может содержать маршруты, которые не входят в таблицу IP-маршрутизации маршрутизатора; маршрут BGP не будет представлен в таблице IP-маршрутизации, если в маршрутизаторе нет записи для следующего узла данного маршрута.

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

Если вводится только IP-адрес, будет отображен наиболее точный маршрут. Чтобы отобразить менее конкретный маршрут с тем же IP-адресом, также введите маску.

Маршруты протокола BGP отображаются при использовании нотации CIDR: Сеть/биты маски, а не маршрут/маска.

С помощью BGP Route Maps можно настраивать предпочтение и вес. Если они не указаны, будут использованы значения локального предпочтения и веса по умолчанию.

Полный путь AS отображается с источником AS, являющимся самым дальним справа. Каждый AS, который проходит маршрут, добавит свой собственный AS к атрибуту пути AS.

Вывод таблицы IP-маршрутизации по команде show ip routing, с маршрутами BGP, показан ниже. Для протокола BGP метрикой является длина пути, так же как и для RIP. Большинство BGP–маршрутов определяются как IGP, что означает, что они исходят от протокола внутреннего шлюза. Другие возможности – это EGP (протокол внешней маршрутизации) или Incomplete (обычно означает статический маршрут).

Команда Show BGP Peers

Команда show bgp peers отображает сконфигурированные одноранговые узлы BGP данного маршрутизатора, включая информацию о номере AS однорангового узла, идентификаторе маршрутизатора, IP-адресе, номере разъема TCP, состоянии активизации и состоянии соединения протокола BGP.

Int/Ext указывает внутренний это или внешний одноранговый узел. (Внутренний узел имеет тот же номер AS, что и сам маршрутизатор). Номер AS однорангового узла указан в списке одноранговых узлов BGP.

Router ID не известен, пока узел не свяжется с маршрутизатором, то есть, если состояние соединения отображается как IDLE, ACTIVE, или CONNECT, данный параметр может быть установлен в 0. ID маршрутизатора обычно является IP–адресом одного из интерфейсов узла, может быть таким же как и IP–адрес, или отличаться от него.

Enable Status указывает, будет ли маршрутизатор принимать запрос о соединении с однорангового узла. Одноранговый узел может быть известен как активизированный с помощью установки его в On в Списке одноранговых узлов BGP. Кроме того, узел можно динамически включать и выключать с помощью команд BGP Peer Enable и BGP Peer Disable. Если «Enable Status» выключен, состояние BGP всегда будет IDLE.

Состояния соединения протокола BGP: IDLE, ACTIVE, CONNECT, OPENSENT, OPENCONFIRM, и ESTABLISHED. Состояние подключения устанавливается активными согласованиями между узлами. В состоянии IDLE, маршрутизатор не будет принимать соединения с однорангового узла. Данное состояние вводится сразу после того, как истекло время соединения, чтобы предотвратить скачкообразные передачи узлов. В состоянии ACTIVE, маршрутизатор на своем порте сервера ожидает от однорангового узла запросы на подключение. В состоянии CONNECT, маршрутизатор отправил одноранговому узлу запрос на активное TCP-соединение. В состояниях OPENSENT и OPENCONFIRM два узла обмениваются предварительными пакетами для установки их сеанса BGP. Если обмены прошли успешно, состояние одноранговых узлов будет установлено в ESTABLISHED. Узлы должны продолжать обмениваться периодическими пакетами KEEPALIVE, чтобы оставаться в состоянии established, если только оговоренное время ожидания не установлено на 0.

BGP взаимодействует со своими одноранговыми узлами через протокол TCP. Таким образом, для получения более подробных сведений о сеансах BGP выполните команду «show os tcp». Состояния TCP не равны состояниям BGP, но являются стандартными для TCP (LISTEN, SYNSENT, SYNRCVD, ESTABLISHED, FINWAIT1, FINWAIT2, CLOSEWAIT, LASTACK, CLOSING, TIMEWAIT). BGP использует порт 179 для прослушивания попыток соединения BGP.

Команда Show BGP Networks

Команда show bgp networks отображает список внутренних сетей, которые будут предложены внешним одноуровневым узлам BGP.

Команда Show BGP Stats

Команда show bgp stats отображает статистику типов пакетов, полученных от одноранговых узлов BGP и отправленных им, а также текущее время работоспособного состояния однорангового узла.

Команда Show BGP Timers

Команда show bgp timers отображает текущее время в секундах на каждом таймере, соответствующим каждому одноранговому узлу. Если одноранговый узел находится в состоянии «ESTABLISHED», то будут использоваться таймеры KEEPALIVE и HOLD. Если одноранговый узел находится в состоянии ACTIVE, то будет использоваться таймер CONNECT. Если одноранговый узел находится в состоянии IDLE, но при этом включен, это будет таймер AUTO ENABLE. Если узел находится в режиме IDLE и отключен, то отключаются и все таймеры, пока не будет дана команда bgp peer enable.

Когда одноранговый узел находится в состоянии ESTABLISHED, таймер Keepalive показывает число секунд, оставшееся до отправки маршрутизатором следующего пакета KEEPALIVE данному узлу. Таймер Hold показывает, сколько секунд осталось до того, как истечет время удержания для однорангового узла. Таймер удержания настраивается каждый раз, когда маршрутизатор получает пакет UPDATE или KEEPALIVE от однорангового узла. Если время задержки истекает, маршрутизатор объявит одноранговый узел выключенным, переведет его в состояние IDLE и установит таймер автовключения.

Оба таймера, Connect и Auto Enable, отображают оставшееся количество секунд до повторной попытки маршрутизатора соединиться с одноранговым узлом сети. Таймер Connect используется, когда одноранговый узел находится в состоянии ACTIVE; в данном состоянии, маршрутизатор будет принимать входящий запрос соединения от узла до истечения таймера Connect. Таймер Auto Enable используется, когда одноранговый узел находится в состоянии IDLE; в данном состоянии, маршрутизатор НЕ будет принимать запросы о соединении от одноранговых узлов, до тех пор пока не истечет время Auto Enable. Когда истекает время Auto Enable, одноранговый узел возвращается в состояние ACTIVE.

Назначение таймера автоподключения – не допустить слишком высокой частоты сеансов равноправных узлов. Если сеанс однорангового соединения прерван по какой-либо причине, соединение удерживается в течение некоторого времени перед установлением нового сеанса.

Команда Show BGP Mem

Команда show bgp mem позволяет просматривать подробную информацию о коэффициенте использования динамической памяти для BGP.

Команда Show BGP Config

Эта команда отображает Router ID маршрутизатора, параметры, установленные в разделе BGP General, статус перераспределения маршрутов и параметры конфигурации одноранговых узлов. Примите во внимание, что Router ID маршрутизатора для BGP тот же, что и для OSPF, максимальный IP–адрес интерфейсов IP маршрутизаторов.

Состояние одноранговых узлов Startup State показывает, будет ли маршрутизатор пытаться установить сессию с равноправным узлом при включении питания. Если он находится в режиме Inactive, партнер может быть активизирован командой BGP Enable. Одноранговый узел, тем не менее, снова будет неактивным после следующего перезапуска маршрутизатора.

Примите во внимание, что в первом одноранговом узле определены BGP Route Maps, в то время как во втором – нет. Поскольку значение опции Use IP Route Filters выставлено в Yes, они будут применяться для второго однорангового устройства и не будут для первого.

Команда show BGP aggregates

Команда show bgp aggregates отображает маршруты, настроенные администратором для объединения для внешних одноранговых устройств. Агрегирование будет происходить только в том случае, когда запись о маршруте отображается в таблице IP-маршрутизации.

BGP Disable

Эта команда прекращает сеанс BGP с выбранным одноранговым узлом или со всеми одноранговыми узлами.

Reset BGP Peer

Данная команда сбрасывает сеанс с выбранным одноранговым узлом BGP или со всеми одноранговыми узлами.

Краткое руководство по началу запуска BGP

Ниже приведен очень простой пример конфигурации, необходимой для запуска и работы BGP. Имеется в виду, что существует только одна точка выхода из AS, следовательно, для исходящих пакетов будет использоваться статический маршрут по умолчанию.

Включите BGP и укажите номер AS в основном разделе BGP.

Укажите IP-адрес и номер AS своего однорангового узла BGP, в данном случае маршрутизатора BGP ISP.

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

Параметры отладки BGP

Для версий ПО с доступной отладкой, существует пять команд отладки BGP: BGPPKT, BGPDB, BGPCON, BGPKEEP и BGPTXQ. BGPPKT – предоставляют информацию об обмене пакетами обновления BGP. BGPFDB – предоставляет информацию об обновлениях баз данных. BGPCON – предоставляет информацию, касающуюся состояния сеансов BGP с одноранговыми узлами. BGPKEEP предоставляет сведения о том, когда пакеты KEEPALIVE были отправлены или получены. BGPTXQ предоставляет сведения об отправке пакетов обновлений узлам в состоянии ESTABLISHED.

Источник