Введение
Предварительные условия
Требования
Используемые компоненты
Общая конфигурация BGP
Настройки однорангового узла BGP
Примерная конфигурация узла
Политика объявления маршрута BGP
Сети BGP
Настройка агрегирования BGP
Перераспределение протокола маршрутизации
Распределение статических маршрутов в BGP
Настройка карты маршрута протокола BGP
Правила настройки карт маршрутизации BGP
Сводка по процессу выбора маршрута BGP
Фильтры IP-маршрута и протокол BGP
Команды консоли BGP
Show BGP rtcount
Show BGP Routes
Show BGP Peers
Show BGP Networks
Show BGP Stats
Show BGP Timers
Show BGP Mem
Show BGP Config
Show BGP Aggregates
BGP Disable
Reset BGP Peer
Краткое руководство по запуску BGP
Параметры отладки BGP
Ссылки BGP RFC
Дополнительная информация
Пограничный шлюзовый протокол (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 General. BGP активизируется для маршрутизатора в целом, а не на интерфейс, как RIP и OSPF. BGP Off по умолчанию. Для включения BGP необходимо установить параметр BGPEnabled в значение On.
[ BGP General ] BGPEnabled = Off Enable or disable the BGP protocol BGPAS = "" Autonomous system number of this router BGPLocPref = 100 BGP local preference, default is 100 BGPUseIPRFltrs = False Use IP Route Filters, default is False
Номер автономной системы (AS) этого маршрутизатора настраивается здесь. Должен быть предоставлен номер BGPAS; если это не так, BGP не будет включен.
Атрибут местного приоритета BGPLocPref является предметом обмена между маршрутизаторами одной AS, а также указателем пути для выхода из AS; путь с наивысшим местным приоритетом является предпочтительным. Если не задан никакой BGPLocPref, будет использоваться значение по умолчанию: 100.
BGP использует карты маршрутов BGP для фильтрации маршрутов и настройки атрибутов. Дополнительные сведения см. в разделах Настройки однорангового узла BGP и Карта маршрутов BGP этого документа. Пользователь может использовать фильтры IP-маршрута вместо карт маршрутов BGP. Для всех равноправных узлов, для которых не определены карты маршрутов BGP, будет проверяться значение параметра BGPUseIPRFltrs, и при положительном значении (TRUE) для соответствующих узлов будут проверены фильтры IP-маршрутов. Учтите, что фильтры маршрута IP являются глобальными для маршрутизатора, в то время как карты маршрутов BGP можно настроить для каждого однорангового узла.
В BGP Peer List (списке одноранговых узлов BGP) перечислены настроенные одноранговые партнеры данного маршрутизатора. Маршрутизатор не установит BGP-соединение с маршрутизатором, которого нет в списке. Если BGP Peer List отсутствует, BGP не будет активизирован, даже если BGPEnabled установлен в On в разделе BGP General.
[ BGP Peer List ] BGPPeer = On/Off IPAddress ASNumber PeerConfigID
Параметр 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 можно настроить несколько равноправных узлов одновременно, при условии, что все устанавливаемые параметры одинаковы.
[ BGP Peer Config "SectionID" ] Section ID is a character string InputRouteMap = "" Name of input Route Map to be used for this peer OutputRouteMap = "" Name of output Route Map to be used for this peer NextHopSelf = False Next hop is this router EBGPMultihop = False External peer not directly connected PeerWeight = 100 Neighbor weight PeerRetryTime = 30 Retry time in seconds PeerHoldTime = 180 Configured hold time in seconds BGPUseLoopback = False Use router LoopbackAddress with this peer AdvertiseDefault = False Advertise default route to this peer
Обратите внимание, что 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 Peer List ] BGPPeer = On 198.41.11.213 100 Peer1 BGPPeer = On 205.14.128.1 110 Peer2 [ BGP Peer Config "Peer1" ] InputRouteMap = bgpin1 OutputRouteMap = bgpout1 PeerHoldTime = 180 PeerRetryTime = 65 PeerWeight = 1000 [ BGP Peer Config "Peer2" ] InputRouteMap = bgpin2 OutputRouteMap = bgpout1 PeerHoldTime = 180 PeerRetryTime = 45 PeerWeight = 2000
В приведенном примере BGP Peer List и BGP Peer Config, одноранговые узлы 198.41.11.213 и 206.14.128.2 используют BGP Peer Config 1, а узел 205.14.128.1 - BGP Peer Config 2.
Поведение BGP по умолчанию – НЕ объявлять маршруты. Это сделано для того, чтобы предотвратить случайные объявления маршрутов в Интернете.
Чтобы объявить маршруты, необходимо кое-что настроить: Список сетей BGP, перераспределение маршрута IP, маршрутные карты BGP или фильтры маршрута IP.
Чтобы объявить внешние маршруты, используйте карты маршрутов BGP или фильтры маршрута IP. Чтобы объявить внутренние маршруты, используйте список сетей BGP или перераспределение маршрута IP.
Каждый из разделов конфигурации описан ниже.
Раздел 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 должен выглядеть следующим образом:
[ BGP Networks ] LocalNet = IP address [mask] [ BGP Networks ] LocalNet = 198.41.9.32 255.255.255.255
При указанной в сети LocalNet маске маршрутизатору будет соответствовать только запись 198.41.9.32. Сеть будет объявлена как 198.41.9.0/24, так как автоматически обрезается маска подсети более специфичная чем класс C. Однако, если будет предоставлена маска 255.255.255.0, сеть 198.41.9.0/24 будет объявлена трижды, поскольку все три подсети будут соответствовать записи LocalNet. Данное обрезание не такое же самое, что и агрегирование, и применяется только к внутренним сетям и к маскам более специфичным, чем класс C. Чтобы обеспечить агрегирование маршрутов, используйте раздел "Агрегация BGP".
Раздел BGP Aggregates содержит сети, которые следует объединить перед объявлением внешним одноранговым партнерам. Таблица IP-маршрутизации маршрутизатора должна содержать сети, которые являются подмножеством объединения, чтобы объединение было объявлено; внешним узлам будут объявляться только объединения, а не индивидуальные маршруты. Внутренние одноранговые узлы получают индивидуальные маршруты, если они создаются за пределами AS; внутренние одноранговые узлы не обмениваются внутренними маршрутами через BGP.
Нет необходимости иметь список объединений для внутренних подсетей сетей класса C (см. раздел Сети BGP выше). Если имеется несколько сетей класса C (или более высокого), которые могут быть объединены с помощью общей маски в суперсеть, можно применить функции агрегирования.
[ BGP Aggregates ] AddrAndMask = [IPAddr] [IPMask] IP Routing Table Entries 198.41.8.0 255.255.255.0 198.41.9.0 255.255.255.0 198.41.10.0 255.255.255.0 198.41.11.0 255.255.255.0 [ BGP Networks ] LocalNet = 198.41.8.0 255.255.252.0 [ BGP Aggregates ] AddrAndMask = 198.41.8.0 255.255.252.0
Одиночный маршрут 198.41.8.0/22 будет объявлен внешним одноранговым узлам BGP. Без записи BGP Aggregates, будут объявляться раздельно четыре сети. Все четыре сети будут соответствовать маскам, представленных в разделе BGP Networks, но объединение не будет произведено автоматически.
Другой способ указать маршруты RIP и OSPF для импортирования их в BGP -это перераспределение маршрутов. По умолчанию перераспределение маршрутизации отключено.
Можно преобразовывать маршруты BGP в RIP и OSPF-маршрутизацию, но это действие рекомендуется только при приеме небольшого количества маршрутов BGP. Нужно осторожно использовать соответствующие фильтры во время совершения таких операций, как импортирование маршрутизаторов BGP в OSPF и последующее экспортирование маршрутизаторов OSPF в BGP.
Примечание. Количество поддерживаемых маршрутов будет также зависеть от объема памяти маршрутизатора.
[ IP Route Redistribution ] BGPtoOSPF Redistribute BGP routes to OSPF Syntax: [True|False] [Metric] BGPtoRIP Redistribute BGP routes to RIP Syntax: [True|False] [Metric] RIPtoBGP Redistribute RIP routes into BGP OSPFtoBGP Redistribute OSPF routes into BGP
Статический маршрут может быть перераспределен в BGP благодаря использованию флага перераспределения во время настройки маршрута в разделе IP Static:
[ IP Static ] 198.41.16.0 255.255.255.0 198.41.9.65 1 Redist=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 Peer Config 2 ] InputRouteMap = bgpin2 OutputRouteMap = bgpout2
Вместо BGP Route Maps, с BGP можно использовать IP Route Filters. Условия совпадения более ограничены, а различные параметры, такие как community (сообщество), local preference (локальное предпочтение) и weight (вес),не могут быть заданы в IP Route Filters.
BGP Route Map name - это особый раздел конфигурации, означающий отсутствие ключевых слов для документирования. Каждый раздел содержит полный набор фильтров, который однозначно определяется частью Name имени раздела. Может существовать несколько разделов, при этом у каждого будет уникальное имя. Длина имени должна быть не более 15 символов.
Данный раздел подробно описывает параметры и модификаторы относящиеся к правилам настройки карт маршрутизации BGP.
action route [direction] [out | in modifiers] permit | deny IP Address out | in
Необходимые параметры - это action, route и direction. Модификаторы In и out являются необязательными.
Описывает действия, которые необходимо предпринять при соответствии маршрута условиям правил.
IP–адрес указывается также, как и для фильтров IP–маршрутов; т.е. в обычной точечной десятичной нотации, как и факторизованный адрес, шестнадцатеричное число, или с добавочным /разрядным полем. Подробные сведения см. в разделе Фильтрации маршрутов IP руководства.
Должны быть указаны параметры in или out. Определяет направление, к которому применяется правило.
Данный модификаторы применимы, если направление указано как:
ipaddr: IP – адрес однорангового узла
srcas: номер AS - источника маршрута
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 равноправного узла
srcas: номер 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 Route Map "mymapin" ] permit 192.61.5.0 in comm 200 setpref 100 permit 0.0.0.0 in comm 200 setpref 300 [ BGP Route Map "mymapout" ] permit 0.0.0.0 out toas 200 origin direct setmed 10 permit 0.0.0.0 out toas 300 setcomm noadv
Карты маршрутизации помогают администратору влиять на процесс выбора маршрута, поскольку BGP помимо всего прочего использует вес, предпочтение и MED. BGP использует следующие критерии (в указанном порядке) для выбора оптимального маршрута до точки назначения:
Наиболее предпочтителен путь с максимальным весом.
Если веса совпадают, выбирается путь и наивысшим локальным приоритетом.
Если пути имеют одинаковый приоритет, выбирается путь с самой короткой длиной AS-пути.
Если все пути имеют одинаковую длину пути AS, выберите путь с самым низким MED.
Если для путей используется одинаковый селектор MED, выберите путь однорангового узла 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:
[ IP Route Filter "bgpin" ] deny 0.0.0.0 in via bgp from 300 permit 0.0.0.0 in via bgp from 400 permit 0.0.0.0 in via rip ospf [ IP Route Filter "bgpout" ] permit 192.62.16.0 out via bgp to 200 permit 192.62.17.0 out via bgp to 400 permit 0.0.0.0 out via rip ospf [ IP Route Filter "bgp600" ] deny 0.0.0.0 in via bgp contains 600 permit 0.0.0.0 in via rip ospf --------- --------- --------- 192.62.16.0 | R1 |___________| R2 |__________| R3 | 192.62.17.0 | AS100 | | AS200 | | AS300 | --------- --------- --------- | | | | --------- --------- --------- | R4 |__________| R6 |__________| R5 | 199.41.13.0 | AS400 | | AS600 | | AS500 | --------- --------- ---------
Однако с фильтрацией AS это сделать невозможно, так как фильтр AS применяется к источнику маршрута. Предположим, маршрутизатор R1 получает объявление о маршруте 199.41.13.0 с обоих одноранговых узлов R2 и R4, и что маршрут исходит из AS 500. Путь AS для маршрута из R2 следовательно [200,300,500], а путь AS для того же маршрута из R4 – [400,600,500].
[ IP Route Filter "does not work as intended" ] deny 199.41.13.0 in via bgp from 200 permit 199.41.13.0 in via bgp from 400
Хотя синтаксис является верным, верхний фильтр может отклонить маршрут; он не будет соответствовать фильтру во второй строке, потому что исходный номер AS – 500, а не 400. Чтобы достигнуть вышепоказанной цели, можно использовать IP–адреса одноранговых узлов R2 и R4
[ IP Route Filter "bgpin" ] deny 199.41.13.0 in via BGP from "R2's IP address" permit 199.41.13.0 in via BGP from "R4's IP address"
Имеется несколько команд отображения для BGP и несколько команд включения и выключения BGP или сброса BGP-соединений:
show bgp rtcount BGP Routing Entry Counts show bgp routes Display BGP Routing Entries show bgp peers Display the list of BGP Peers and current status show bgp timers BGP Peer timer information show bgp mem BGP Database Memory Allocation show bgp config BGP configuration information show bgp stats BGP peer uptime and packet exchange statistics show bgp networks Display list of internal networks to be advertised show bgp aggregates Display BGP routes to be aggregated bgp disable Disable BGP connection to all peers or 1 specified peer Usage: { ALL | IP Address } bgp enable Enable BGP connection to all peers or 1 specified peer Usage: { ALL | IP Address } bgp reset peer Reset BGP connection to all peers or 1 specified peer Usage: { ALL | IP Address }
Данная команда отображает сводку числа маршрутов в базе маршрутизации BGP. BGP удобно использовать, если имеется большое количество маршрутов, и следует знать их точное количество, но нет необходимости распечатывать их.
BGP Test> sho bgp rt BGP Routing Database Entries In Use Added Removed In IP routing table: 51548 78694 27146 BGP route heads: 51548 78702 27154 IP Routing Table Entries: 51561
Команда show bgp routes без аргументов отображает для каждого назначения лучший маршрут в базе данных маршрутизации BGP. Пример выборки приведен ниже.
База данных маршрутизации BGP может содержать маршруты, которые не входят в таблицу IP-маршрутизации маршрутизатора; маршрут BGP не будет представлен в таблице IP-маршрутизации, если в маршрутизаторе нет записи для следующего узла данного маршрута.
bgptest>sho bgp ro BGP Best Routes List Network/Mask Bits Pref Weight Next Hop AS Path 1 128.128.0.0 /16 100 100 199.45.133.101 3404 1 1 2 129.129.0.0 /16 100 100 199.45.133.101 3404 1 1239 1673 1133 559 3 130.130.0.0 /16 100 100 199.45.133.101 3404 1 1 5727 7474 7570 4 131.131.0.0 /16 100 100 199.45.133.101 3404 1 1 1236 5 134.134.0.0 /16 100 100 199.45.133.101 3404 1 1239 1760 4983 6 135.135.0.0 /16 100 100 199.45.133.101 3404 3561 3561 4293 7 139.139.0.0 /16 100 100 199.45.133.101 3404 1 1239 568 1913 1569 8 140.140.0.0 /16 100 100 199.45.133.101 3404 1 1239 7170 374 9 141.141.0.0 /16 100 100 199.45.133.101 3404 1 1239 3739 3739 3739 10 142.142.0.0 /16 100 100 199.45.133.101 3404 3561 3561 577 549 808 11 147.147.0.0 /16 100 100 199.45.133.101 3404 3561 3561 5400 2856 12 149.149.0.0 /16 100 100 199.45.133.101 3404 1 1 3749 13 150.150.0.0 /16 100 100 199.45.133.101 3404 3561 3561 3786 6068 14 151.151.0.0 /16 100 100 199.45.133.101 3404 1 1239 174 15 152.152.0.0 /16 100 100 199.45.133.101 3404 1 1 286 1891 16 155.155.0.0 /16 100 100 199.45.133.101 3404 1 701 702 8413 1913 1564 17 158.158.0.0 /16 100 100 199.45.133.101 3404 3561 3561 18 161.161.0.0 /16 100 100 199.45.133.101 3404 1 1239 174 19 164.164.0.0 /16 100 100 199.45.133.101 3404 1 701 7633 20 165.165.0.0 /16 100 100 199.45.133.101 3404 1 701 5713
Данная команда просмотра также может быть задана для определенного маршрута, в таком случае будут отображаться все пути данного маршрута.
BGP 2600>sho bgp ro 129.129.0.0 BGP routing table entry for 129.129.0.0/16 Paths: (in order of preference, best first) AS path 11129 3404 1239 1673 1133 559 Next hop 198.41.11.1 from peer 198.41.11.17 (RtrID 198.41.11.17) Origin IGP, localpref 100, weight 100 AS path 12345 11129 3404 1239 1673 1133 559 Next hop 198.41.11.1 from peer 198.41.11.201 (RtrID 198.41.11.201) Origin IGP, localpref 100, weight 100
Если вводится только IP-адрес, будет отображен наиболее точный маршрут. Чтобы отобразить менее конкретный маршрут с тем же IP-адресом, также введите маску.
Маршруты протокола BGP отображаются при использовании нотации CIDR: Сеть/биты маски, а не маршрут/маска.
С помощью BGP Route Maps можно настраивать предпочтение и вес. Если они не указаны, будут использованы значения локального предпочтения и веса по умолчанию.
Полный путь AS отображается с источником AS, являющимся самым дальним справа. Каждый AS, который проходит маршрут, добавит свой собственный AS к атрибуту пути AS.
Вывод таблицы IP-маршрутизации по команде show ip routing, с маршрутами BGP, показан ниже. Для протокола BGP метрикой является длина пути, так же как и для RIP. Большинство BGP–маршрутов определяются как IGP, что означает, что они исходят от протокола внутреннего шлюза. Другие возможности – это EGP (протокол внешней маршрутизации) или Incomplete (обычно означает статический маршрут).
bgptest> sho ip ro dynamic bgp Dynamic Routes: Destination Mask Gateway Metric Uses Type Src/TTL Interface 3.0.0.0 FF000000 198.41.11.1 5 0 BGP INC Ether0 6.0.0.0 FF000000 198.41.11.1 6 0 BGP INC Ether0 9.2.0.0 FFFF0000 198.41.11.1 6 0 BGP IGP Ether0 9.20.0.0 FFFF8000 198.41.11.1 6 0 BGP INC Ether0 12.0.0.0 FF000000 198.41.11.1 5 0 BGP IGP Ether0 12.2.97.0 FFFFFF00 198.41.11.1 6 0 BGP IGP Ether0 12.2.183.0 FFFFFF00 198.41.11.1 4 0 BGP IGP Ether0 12.4.164.0 FFFFFF00 198.41.11.1 5 0 BGP IGP Ether0 12.5.164.0 FFFFFF00 198.41.11.1 5 0 BGP IGP Ether0 12.5.252.0 FFFFFE00 198.41.11.1 6 0 BGP IGP Ether0 12.6.42.0 FFFFFE00 198.41.11.1 6 0 BGP IGP Ether0 12.7.214.0 FFFFFE00 198.41.11.1 11 0 BGP IGP Ether0 12.8.188.0 FFFFFC00 198.41.11.1 5 0 BGP IGP Ether0 12.8.188.0 FFFFFF00 198.41.11.1 5 0 BGP INC Ether0 12.8.189.0 FFFFFF00 198.41.11.1 5 0 BGP INC Ether0 12.8.191.0 FFFFFF00 198.41.11.1 5 0 BGP INC Ether0 12.10.14.0 FFFFFE00 198.41.11.1 5 0 BGP INC Ether0 12.10.152.0 FFFFF800 198.41.11.1 5 0 BGP IGP Ether0 12.10.231.0 FFFFFF00 198.41.11.1 6 0 BGP IGP Ether0 12.11.134.0 FFFFFE00 198.41.11.1 5 0 BGP IGP Ether0
Команда show bgp peers отображает сконфигурированные одноранговые узлы BGP данного маршрутизатора, включая информацию о номере AS однорангового узла, идентификаторе маршрутизатора, IP-адресе, номере разъема TCP, состоянии активизации и состоянии соединения протокола BGP.
bgptest>sho bgp peers ========================================================================== BGP PEER STATUS -------------------------------------------------------------------------- Int AS Router IP TCP Enable BGP Ext Number ID Address Socket Status State -------------------------------------------------------------------------- Ext 23456 0.0.0.0 198.14.13.18 0 Off IDLE Ext 34567 198.41.11.6 198.14.12.6 82 On ESTABLISHED Int 11129 0.0.0.0 198.41.11.17 0 Off IDLE Int 11129 0.0.0.0 198.41.11.2 0 On ACTIVE ==========================================================================
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.
bgptest>sho os tcp ========================================================================== TCP SESSION INFORMATION -------------------------------------------------------------------------- Local Remote Remote Num Session Type State Socket Port Port IP Address -------------------------------------------------------------------------- 1 SERVER (TELNET) LISTEN 80 23 0 0.0.0.0 2 SERVER (BGP) LISTEN 81 179 0 0.0.0.0 3 ACTIVE (BGP) ESTABLISH 82 20001 179 198.41.9.2 -------------------------------------------------------------------------- 13 free TCBs out of 16. ==========================================================================
Команда show bgp networks отображает список внутренних сетей, которые будут предложены внешним одноуровневым узлам BGP.
bgptest>sho bgp networks BGP NETWORKS: 2 Address Mask 198.41.11.0 255.255.255.0 209.14.128.0 255.255.255.0
Команда show bgp stats отображает статистику типов пакетов, полученных от одноранговых узлов BGP и отправленных им, а также текущее время работоспособного состояния однорангового узла.
BGP Test>sho bgp stats Received Sent Open messages: 8 58 Keepalive messages: 4069 4124 Notify messages: 0 0 BGP External Peer 198.41.11.6 state ESTABLISHED 6 peer sessions, current uptime 2 days 16 hours 40 minutes 19 secs 0 updates received 78791 updates sent, last at 6 secs BGP Internal Peer 198.41.9.2 state ESTABLISHED 1 peer sessions, current uptime 2 days 20 hours 42 minutes 28 secs 88791 updates received, last at 7 secs 0 updates sent
Команда show bgp timers отображает текущее время в секундах на каждом таймере, соответствующим каждому одноранговому узлу. Если одноранговый узел находится в состоянии "ESTABLISHED", то будут использоваться таймеры KEEPALIVE и HOLD. Если одноранговый узел находится в состоянии ACTIVE, то будет использоваться таймер CONNECT. Если одноранговый узел находится в состоянии IDLE, но при этом включен, это будет таймер AUTO ENABLE. Если узел находится в режиме IDLE и отключен, то отключаются и все таймеры, пока не будет дана команда bgp peer enable.
BGP Test>sho bgp timers ====================================================================== BGP TIMERS ---------------------------------------------------------------------- Peer Address Status State Timers ---------------------------------------------------------------------- 198.41.9.2 Enabled ESTABLISHED Send KEEPALIVE pkt: 2 secs HOLD timer expires: 121 secs 198.14.13.2 Enabled ACTIVE Next CONNECT attempt: 16 secs 199.13.12.3 Enabled IDLE AUTO ENABLE: 112 secs 198.41.9.3 Disabled IDLE No timers active ======================================================================
Когда одноранговый узел находится в состоянии ESTABLISHED, таймер Keepalive показывает число секунд, оставшееся до отправки маршрутизатором следующего пакета KEEPALIVE данному узлу. Таймер Hold показывает, сколько секунд осталось до того, как истечет время удержания для однорангового узла. Таймер удержания настраивается каждый раз, когда маршрутизатор получает пакет UPDATE или KEEPALIVE от однорангового узла. Если время задержки истекает, маршрутизатор объявит одноранговый узел выключенным, переведет его в состояние IDLE и установит таймер автовключения.
Оба таймера, Connect и Auto Enable, отображают оставшееся количество секунд до повторной попытки маршрутизатора соединиться с одноранговым узлом сети. Таймер Connect используется, когда одноранговый узел находится в состоянии ACTIVE; в данном состоянии, маршрутизатор будет принимать входящий запрос соединения от узла до истечения таймера Connect. Таймер Auto Enable используется, когда одноранговый узел находится в состоянии IDLE; в данном состоянии, маршрутизатор НЕ будет принимать запросы о соединении от одноранговых узлов, до тех пор пока не истечет время Auto Enable. Когда истекает время Auto Enable, одноранговый узел возвращается в состояние ACTIVE.
Назначение таймера автоподключения – не допустить слишком высокой частоты сеансов равноправных узлов. Если сеанс однорангового соединения прерван по какой-либо причине, соединение удерживается в течение некоторого времени перед установлением нового сеанса.
Команда show bgp mem позволяет просматривать подробную информацию о коэффициенте использования динамической памяти для BGP.
BGP Test>sho bgp mem ROUTING DATABASE DYNAMIC MEMORY USAGE ------------------------------------------------------------ Memory Block Allocs Deallocs Size (bytes) ------------------------------------------------------------ ip radix nodes 1976180 ip routing entries 4332132 bgp ip routes 78709 27149 bgp routes 78717 27157 2062400 bgp int change 0 0 0 bgp aggregates 0 0 0 bgp agg paths 0 0 0 bgp timers 12 0 384 ------------------------------------------------------- Peer 198.41.9.2 bgp path entries 78728 27168 1443680 bgp transmit queues 0 0 0 bgp PA strings 28151 21181 1784320 bgp PA hdr entries 28151 21181 529720 bgp rejected routes 0 0 0 bgp rej entries 0 0 0 bgp history entries 0 0 0 ------------------------------------------------------------ Total Size 12128816 ------------------------------------------------------------
Эта команда отображает Router ID маршрутизатора, параметры, установленные в разделе BGP General, статус перераспределения маршрутов и параметры конфигурации одноранговых узлов. Примите во внимание, что Router ID маршрутизатора для BGP тот же, что и для OSPF, максимальный IP–адрес интерфейсов IP маршрутизаторов.
bgptest>sho bgp config BGPEnabled Yes Router ID 205.14.128.2 BGP AS Number 100 BGP Local Preference 100 Use IP Route Filters Yes Route Relector Server No Redistribute RIP routes into BGP is disabled Redistribute OSPF routes into BGP is disabled Redistribute BGP routes into OSPF is disabled Redistribute BGP routes into RIP is disabled BGP Peer 205.14.128.1 Configuration ID 1 Startup State Inactive AS Number 110 Peer Weight 2000 Next Hop Self No Cfg Hold Time 180 Retry Time 45 Use Loopback No Advertise Default Yes Input Route Map rmapin Output Route Map rmapout BGP Peer 198.41.11.213 Configuration ID 2 Startup State Active AS Number 100 Peer Weight 1000 Next Hop Self No Cfg Hold Time 180 Retry Time 65 Use Loopback No Advertise Default No Input Route Map None Output Route Map None
Состояние одноранговых узлов Startup State показывает, будет ли маршрутизатор пытаться установить сессию с равноправным узлом при включении питания. Если он находится в режиме Inactive, партнер может быть активизирован командой BGP Enable. Одноранговый узел, тем не менее, снова будет неактивным после следующего перезапуска маршрутизатора.
Примите во внимание, что в первом одноранговом узле определены BGP Route Maps, в то время как во втором – нет. Поскольку значение опции Use IP Route Filters выставлено в Yes, они будут применяться для второго однорангового устройства и не будут для первого.
Команда show bgp aggregates отображает маршруты, настроенные администратором для объединения для внешних одноранговых устройств. Агрегирование будет происходить только в том случае, когда запись о маршруте отображается в таблице IP-маршрутизации.
bgptest>sho bgp agg BGP AGGREGATES: 195.41.0.0/16
Эта команда прекращает сеанс BGP с выбранным одноранговым узлом или со всеми одноранговыми узлами.
BGP disable all OR BGP disable 205.14.128.1
Данная команда сбрасывает сеанс с выбранным одноранговым узлом BGP или со всеми одноранговыми узлами.
Reset BGP Peer all OR Reset BGP Peer 205.14.128.1
Ниже приведен очень простой пример конфигурации, необходимой для запуска и работы BGP. Имеется в виду, что существует только одна точка выхода из AS, следовательно, для исходящих пакетов будет использоваться статический маршрут по умолчанию.
Включите BGP и укажите номер AS в основном разделе BGP.
[ BGP General ] BGPEnabled = On BGPAS = your AS number
Укажите IP-адрес и номер AS своего однорангового узла BGP, в данном случае маршрутизатора BGP ISP.
[ BGP Peer List ] BGPPeer = On peer IP address peer AS number
Задайте список сетей для внешних сетей, которые вы хотите отобразить вне вашей автономной системы.
[ BGP Networks ] LocalNet = first IP address mask LocalNet = second IP address mask
Для версий ПО с доступной отладкой, существует пять команд отладки BGP: BGPPKT, BGPDB, BGPCON, BGPKEEP и BGPTXQ. BGPPKT – предоставляют информацию об обмене пакетами обновления BGP. BGPFDB – предоставляет информацию об обновлениях баз данных. BGPCON – предоставляет информацию, касающуюся состояния сеансов BGP с одноранговыми узлами. BGPKEEP предоставляет сведения о том, когда пакеты KEEPALIVE были отправлены или получены. BGPTXQ предоставляет сведения об отправке пакетов обновлений узлам в состоянии ESTABLISHED.
sys debug flags BGPPKT sys debug flags BGPCON sys debug flags BGPFDB sys debug flags BGPKEEP sys debug flags BGPTXQ
rfc2283 -- Multiprotocol Extensions for BGP-4. T. Bates, R. Chandra, D. Katz, Y. Rekhter. February 1998. (Status: PROPOSED STANDARD) rfc2042 -- Registering New BGP Attribute Types. B. Manning. January 1997. (Status: INFORMATIONAL) rfc1998 -- An Application of the BGP Community Attribute in Multi-home Routing. E. Chen & T. Bates. August 1996. (Status: INFORMATIONAL) rfc1997 -- BGP Communities Attribute. R. Chandra, P. Traina & T. Li. August 1996. (Status: PROPOSED STANDARD) rfc1965 -- Autonomous System Confederations for BGP. P. Traina. June 1996. (Status: EXPERIMENTAL) rfc1863 -- A BGP/IDRP Route Server alternative to a full mesh routing. D. Haskin. October 1995. (Status: EXPERIMENTAL) rfc1774 -- BGP-4 Protocol Analysis. P. Traina, Editor. March 1995. (Status: INFORMATIONAL) rfc1773 -- Experience with the BGP-4 protocol. P. Traina. March 1995. (Status: INFORMATIONAL) rfc1771 -- A Border Gateway Protocol 4 (BGP-4). Y. Rekhter & T. Li. March 1995. (Status: DRAFT STANDARD) rfc1745 -- BGP4/IDRP for IP---OSPF Interaction. K. Varadhan, S. Hares, Y. Rekhter. December 1994. (Status: PROPOSED STANDARD)