Назад
Атрибут COMMUNITY является необязательным транзитивным атри-
бутом. Если маршрутизатор не понимает концепции сообщества, он должен
подчиняться следующему маршрутизатору. Однако если маршрутизатор «по-
нимает» концепцию сообщества, тогда он настраивается таким образом, что-
бы распространять информацию о сообществе; в противном случае сообще-
ства удаляются по умолчанию.
22.5.8 Атрибут «Вес»
Атрибут вес (WEIGHT) является атрибутом, специфическим для обору-
дования Cisco, используемым при выборе пути. Атрибут WEIGHT настраива-
ется для маршрутизатора локально, обеспечивает только политику локальной
маршрутизации и не распространяется на других BGP соседей.
Атрибут WEIGHT может принимать значение от 0 до 65535. Пути, ко-
торые рассылает маршрутизатор по умолчанию, имеют вес 32768, а другие
пути по умолчанию имеют вес, равный 0.
При наличии нескольких маршрутов к одному получателю предпочти-
тельными являются маршруты, имеющие больший вес.
R2
R1
R3
AS 65000
AS 65250
172.20.0.0/24
WEIGHT =200
MED=200
AS 65500
R4
AS 64520
WEIGHT =150
Рисунок 22.9 – Применение атрибута WEIGHT
Маршрутизаторы R2 и R4, изображенные на рисунке 22.9, определяют
сеть 172.20.0.0 в автономной системе 65250 и распространяют обновления на
маршрутизатор R1. Маршрутизатор R1 имеет два маршрута до сети 172.20.0.0
и должен принимать решение, какой из этих путей выбрать. Например, марш-
рутизатор R1 устанавливает вес пакетов обновления, приходящих от маршру-
тизатора R2, равным 200, и вес пакетов обновления, приходящих от маршру-
тизатора R3, равным 150. Из-за того, что значение атрибута WEIGHT марш-
341
рутизатора R2 больше значения атрибута WEIGHT маршрутизатора R3,
маршрутизатор R1 примет решение использовать маршрутизатор R2 в каче-
стве узла перехода на пути к 172.20.0.0.
342
23 Работа протокола BGP
23.1 Типы сообщений протокола BGP
Протокол BGP имеет следующие типы сообщений:
– сообщение OPEN;
– сообщение KEEPALIVE;
– сообщение UPDATE;
– сообщение NOTIFICATION.
После того как TCP соединение установлено, первым сообщением, по-
сланным каждой стороной, является сообщение OPEN. Если сообщение
OPEN может быть принято, назад посылается сообщение KEEPALIVE, под-
тверждающее прием сообщения OPEN. После подтверждения сообщения
OPEN BGP соединение считается установленным, и возможен обмен обнов-
лениями, сообщениями KEEPALIVE и NOTIFICATION.
Одноранговые BGP устройства сначала обмениваются своими полными
BGP таблицами маршрутизации. После этого при изменениях таблицы марш-
рутизации будут рассылаться только инкрементные обновления.
Пакеты KEEPALIVE посылаются для подтверждения существования
соединения между одноранговыми BGP устройствами, а NOTIFICATION па-
кеты посылаются в ответ на ошибки или специальные условия.
Сообщение OPEN содержит следующую информацию.
Версия поле длиной 8 бит, отражающее номер версии протокола
BGP. Текущий номер версии протокола BGP v4.
– Моя автономная система – поле длиной 16 бит, отражающее номер ав-
тономной системы отправителя.
Время задержки поле длиной 16 бит, отражающее максимальное
время в секундах, которое может пройти между приемом последовательных
сообщений KEEPALIVE или обновлений от отправителя. После приема сооб-
щения OPEN маршрутизатор вычисляет значение таймера задержки для ис-
пользования его или меньшего времени задержки, полученного в сообщении
OPEN.
BGP идентификатор (идентификатор маршрутизатора) 32-битовое
поле, отражающее BGP идентификатор отправителя. BGP идентификатор яв-
ляется IP адресом, присвоенным маршрутизатору, который задается при
запуске. BGP идентификатор маршрутизатора выбирается аналогично OSPF
идентификатору маршрутизатора он является наибольшим активным IP ад-
ресом на маршрутизаторе, если для такого IP адреса интерфейса обратной
петли не существует, в этом случае таковым будет наибольший IP адрес
обратной петли.
Необязательные параметры поле длины, отражающее общую длину
поля не обязательных параметров в октетах. Поле необязательных параметров
343
может содержать список необязательных параметров (в настоящее время име-
ется только аутентификация).
Для определения достижимости одноранговых устройств протокол BGP
не использует механизм сообщений KEEPALIVE, основанных на транспорт-
ном протоколе. Вместо этого обмен сообщениями KEEPALIVE осуще-
ствляется между одноранговыми устройствами достаточно часто, не вызывая
при этом истечения времени таймера задержки. Если согласованный интервал
времени задержки равен нулю, периодическое сообщение KEEPALIVE не
посылается.
Сообщение обновления содержит информацию только об одном пути;
несколько путей требуют несколько сообщений. Все атрибуты сообщения
имеют отношение только к пути и тем сетям, которые будут достижимы по
этому пути. Сообщение обновления включает следующие поля.
Нерабочие маршруты список префиксов IP-адресов, маршрутов, ко-
торые не обслуживаются, если они не указываются.
Атрибуты пути это известные нам атрибуты пути AS-PATH,
ORIGIN, LOCAL PREFERENCE и другие рассмотренные ранее атрибуты.
Каждый атрибут пути включает тип атрибута, его длину и значение. Тип
атрибута состоит из флагов атрибута и следующего за ним кода типа атрибу-
та.
Информация о достижимости сетевого уровня это поле содержит
список префиксов IP-адресов, которые достижимы по этому пути.
Сообщение NOTIFICATION посыпается при обнаружении ошибки.
BGP соединение закрывается немедленно после посылки этого сообщения.
Сообщение NOTIFICATION включает код и подкод ошибки, а также данные,
соответствующие ошибке.
23.1.1 Состояния BGP соседей
Протокол BGP является машиной состояний, которая принимает соот-
ветствующие состояния в зависимости от состояния процесса обмена данны-
ми маршрутизатора с его соседями:
– простой (Idle);
– соединение (Connect);
– активный (Active);
– открыт посылка (Open- Sent);
– открыт подтверждение (Open- Confirm);
– установлено (Established).
Обмен сообщениями UPDATE, KEEPALIVE и NOTIFICATION осуще-
ствляется только тогда, когда соединение находится в состоянии Established.
Сообщение KEEPALIVE состоит только из заголовка и имеет длину 19
байтов; по умолчанию они рассылаются каждые 60 секунд. Длина других со-
344
общений может быть от 19 до 4096 байтов. По умолчанию время задержки
составляет 180 секунд.
345
23.2 Процесс принятия решения при выборе пути
После приема пакетов обновления о различных получателях из различ-
ных автономных систем протокол BGP принимает решение о том, какой путь
избрать для достижения конкретного получателя. Протокол BGP выбирает
только один путь к конкретному получателю.
Процесс принятия решения выполняется на основании анализа атрибу-
тов, которые обсуждались ранее. При наличии нескольких маршрутов к одно-
му получателю для осуществления маршрутизации трафика к получателю
BGP выбирает лучший маршрут.
Следующий алгоритм отражает процесс выбора лучшего маршрута про-
токолом BGP на маршрутизаторе Cisco.
Шаг 1. Этот шаг не выполняется, если путь является внутренним, син-
хронизация включена, и маршрут не синхронизирован, другими словами,
маршрут отсутствует в таблице маршрутизации протокола IGP.
Шаг 2. Этот шаг не выполняется, если адрес следующего узла маршрута
не является достижимым.
Шаг 3. Маршрут с наибольшим весом является предпочтительным.
Атрибут WEIGHT применим только к оборудованию корпорации Cisco и яв-
ляется локальным для маршрутизаторов.
Шаг 4. Если несколько маршрутов имеют одинаковое значение атрибу-
та WEIGHT, выбирается маршрут с наибольшим значением LOCAL
PREFERENCE. Значение LOCAL PREFERENCE используется в пределах од-
ной АС.
Шаг 5. Если несколько маршрутов имеют один и тот же локальный при-
оритет, будет выбран маршрут, отправителем которого является локальный
маршрутизатор.
Шаг 6. Если несколько маршрутов имеют один и тот же локальный при-
оритет, но нет маршрута, разосланного локальным маршрутизатором, более
высоким приоритетом будет обладать маршрут, имеющий кратчайшее значе-
ние атрибута AS-PATH.
Шаг 7. При равных значениях атрибута AS-PATH более высокий прио-
ритет будет присвоен отправителю с меньшим кодом: IGP < EGP < incom-
plete.
Шаг 8. При равных кодах отправителя будет предпочтен путь с мень-
шим значением атрибута MED. Атрибут MED поступает из другой автоном-
ной системы.
Сравнение атрибута MED проводится только тогда, когда соседние ав-
тономные системы подобны во всем для всех маршрутов и не активизирована
команда bgp always-compare-med.
Шаг 1. При равных значениях атрибута MED предпочтение перед вну-
тренним путем (протокол IBGP) отдается внешнему пути (протокол EBGP).
346
Шаг 2. При отключенной синхронизации и оставшихся только внутрен-
них путях будет выбран путь через ближайшего IGP соседа. Это означает, что
маршрутизатор выберет кратчайший внутренний путь в пределах АС на пути
к получателю кратчайший путь к следующему узле протокола BGP.
Шаг 3. Для минимизации влияния на EBGP пути «переброски» маршру-
тов выбирайте самый старый, а следовательно и самый надежный маршрут.
Шаг 4. Маршрут с минимальным значением идентификатора соседнего
BGP маршрутизатора является более предпочтительным.
Шаг 5. При равных значениях идентификаторов BGP маршрутизатора
будет предпочтен маршрут с меньшим IP адресом соседа.
Путь запоминается в таблице маршрутизации и рассылается на сосед-
ние BGP маршрутизаторы. Здесь процесс принятия решения о выборе марш-
рута имеет обобщенный характер и не описывает все случаи, но этого доста-
точно для общего понимания того, каким образом протокол BGP выбирает
маршруты.
На шаге 11 в процессе принятия решения для EBGP путей предпочте-
ние отдается самому старому маршруту. Этого нельзя найти ни в одной доку-
ментации по протоколу BGP; такой метод разработан в Центре технической
поддержки компании Cisco (TAC).
23.2.1 Выбор нескольких путей
В соответствии с протоколом BGP для любого получателя выбирается
только один путь.
Команда настройки маршрутизатора для протокола BGP maximum-paths
работает, если маршрутизатор имеет два параллельных пути к двум разным
маршрутизаторам, находящимся в одной удаленной автономной системе.
Рассмотрим, например, три маршрутизатора: R1 из AS 65201 и маршрутиза-
торы R2 и из AS 65301. Маршрутизатор R1 работает с R2 ипод управ-
лением протокола EBGP. Маршрутизаторы R2 и рассылают объявления о
сети 10.0.0.0. Без команды maximum-paths, в настройках процесса маршрути-
зации BGP на маршрутизаторе R1, в его таблице маршрутизации не могут
быть представлены два пути. После добавления в конфигурацию протокола
BGP на маршрутизаторе R1 команды maximum-paths 2 в таблице маршрутиза-
ции прописываются оба пути. Это хорошо видно в примере 23.1. Кроме того,
по-прежнему в качестве лучшего пути выбран только один путь, такой путь
обозначается символом «>».
347
Пример 23.1 – Применение команды maximum-paths в протоколе BGP
r1#show ip route bgp
В 10.0.0.0/8 [20/0] via 192.168.1.18, 00:00:41
[20/0] via 192.168.1.50, 00:00:41
r1#show ip bgp
BGP table version is 3, local router ID is 192.168.1.49
Status codes: s suppressed, d damped, h history, * valid, > best,i -> internal
Origin codes:i - IGP,e - EGP,? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 10.0.0.0 192.168.1.18 0 0 65301 i
* 192.168.1.50 0 0 0 65301 i
23.3 CIDR маршрутизация и суммирование маршрутов
Бесклассовая междоменная маршрутизация (CIDR маршрутизация)
представляет собой механизм, разработанный для решения проблемы истоще-
ния IP адресного пространства и роста размеров таблиц маршрутизации. За-
мысел CIDR маршрутизации заключается в комбинировании или агрегирова-
нии в блоки множества адресов класса С. Это и позволяет создавать большие
бесклассовые наборы IP-адресов. Затем эти множества адресов класса C сум-
мируются в таблицах маршрутизации, что в результате уменьшает количество
рассылаемых объявлений маршрута.
В отличие от протокола BGP v4, более ранние версии протокола BGP не
поддерживают CIDR маршрутизацию. Поддержка протокола BGP v4 включа-
ет следующее.
Сообщение UPDATE протокола BGP включает как префикс, так и его
длину. Предыдущие версии включали только префикс; длина устанавлива-
лась в соответствии с адресом класса.
При объявлении адресов маршрутизатором протокола BGP они могут
агрегироваться.
Атрибут AS-PATH может включать комбинированный, несортирован-
ный список всех автономных систем, пройденные всеми агрегированными
маршрутами. Этот комбинированный список должен быть проверен на пред-
мет отсутствия в маршруте петель.
Например, на рисунке 23.1 маршрутизатор R3 рассылает объявления о
сети 192.168.1.0/24, а маршрутизатор R4 рассылает объявления о сети
192.168.2.0/24. Маршрутизатор R1 может передавать эти объявления на
маршрутизатор R2; однако есть возможность уменьшить размер таблицы
маршрутизации маршрутизатора R1. Для этого достаточно суммировать (аг-
регировать) эти два маршрута в один, например, 192.168.0.0/16.
348
R2
R1
R3
AS 65000
AS 65500
192 .168 .1.0/24
AS 65500
192 .168.2.0/24
R4
AS 64520
1
9
2
.
1
6
8
.
0
.
0
/
1
6
Рисунок 23.1 – Использование CIDR маршрутизации в протоколе BGP
Два атрибута протокола BGP имеют отношение к агрегированной адре-
сации. Это известный необязательный атрибут ATOMIC AGGREGATE, ин-
формирующий соседнюю автономную систему о том, что маршрутизатор от-
правитель имеет агрегированные маршруты, и необязательный транзитивный
атрибут AGGREGATOR, задающий идентификатор BGP маршрутизатора и
номер AS маршрутизатора, агрегировавшего маршрут.
По умолчанию агрегированный маршрут будет объявлен как приходя-
щий из автономной системы, которая производит агрегирование, и его атри-
бут ATOMIC AGGREGATE задается таким образом, чтобы показать, какой
информации не достает. Номера автономных систем необъединенных марш-
рутов не перечисляются. Маршрутизатор может быть настроен таким об-
разом, чтобы иметь несортированный список всех автономных систем, содер-
жащихся во всех просуммированных путях.
На рисунке 23.1 агрегированный маршрут 192.168.0.0/16 по умолчанию
может иметь атрибут AS-PATH, равный {64520}. Если маршрутизатор R1
был настроен так, чтобы включать комбинированный несортированный спи-
сок, он должен включать в атрибут AS-PATH набор {65250, 65500} и
{64520}.
349
24 Настройка протокола BGP
24.1 Одноранговые группы
В протоколе BGP соседние устройства зачастую настраиваются с ис-
пользованием одной и той же политики, например, применяются одни и те же
правила фильтрации. На маршрутизаторах Cisco соседи, использующие
подобные политики обновления, могут быть сгруппированы в одноранговые
группы для упрощения настройки и, что более важно, для того, чтобы сделать
модификацию более эффективной. Такой подход желателен при наличии
большого количества одноранговых устройств.
Одноранговая группа протокола BGP представляет собой группу сосед-
них устройств протокола BGP маршрутизатора, настроенных таким образом,
что они все имеют одинаковые политики обновления. Вместо задания одина-
ковых правил для каждого соседа в отдельности эти политики задаются для
всей одноранговой группы одновременно. После этого отдельные соседи ста-
новятся членами одноранговой группы. Политики одноранговой группы
подобны групповым шаблонам, применяющимся к отдельным членам одно-
ранговой группы.
Члены одноранговой группы наследуют все конфигурационные опции
группы. Маршрутизаторы могут быть настроены на отключение этих опций
для некоторых членов одноранговой группы. При этом опции не должны
влиять на исходящие пакеты обновления; другими словами, могут быть от-
ключены только те опции, которые влияют на входящие пакеты обновления.
Все соседние устройства протокола EBGP в одноранговой группе долж-
ны быть достижимы через один и тот же интерфейс. Так происходит потому,
что атрибут NEXT-HOP для соседей протокола EBGP, доступных через раз-
личные интерфейсы, должен различаться. Это ограничение можно обойти за
счет настройки логического интерфейса loopback отправителя для одноранго-
вых устройств протокола EBGP.
Одноранговые группы помогают упростить настройки в случаях, когда
большое количество соседних устройств имеют одинаковые политики. Они
также более эффективны из-за того, что обновления генерируются только
один раз для всей одноранговой группы, а не по разу для каждого соседнего
устройства в отдельности.
Имя одноранговой группы является локальным только для маршрутиза-
тора, на котором оно задано; оно не передается другим маршрутизаторам.
350