Файл: Проектирование маршрутизации в двух трехуровневых сетях с использованием протокола BGP (Расположение маршрутизаторов).pdf
Добавлен: 29.06.2023
Просмотров: 97
Скачиваний: 2
Атрибуты маршрута подразделяются на четыре категории: обязательные общеизвестные; общеизвестные, предоставленные на собственное усмотрение; необязательные транзитивные и необязательные нетранзитивные. Принадлежность к одной из этих категорий определяется первыми двумя битами в поле флагов атрибута (Atribute Flags).
- Первый бит в поле флагов атрибута (бит 0) указывает на то, является ли атрибут общеизвестным (0) или необязательным (1).
- Второй бит (бит 1) указывает, является ли необязательный атрибут нетранзитивным (0) или транзитивным (1). Общеизвестные атрибуты всегда транзитив-ны, так что второй бит всегда установлен в 1.
- Третий бит (бит 2) показывает, является ли информация, содержащаяся в необязательном транзитивном атрибуте, полной (0) или частичной (1).
- В четвертом бите (бит 3) определяется длина атрибута —1 байт (0) или 2 байта (1).
- Младшие биты (с 4 по 7) в поле атрибута флага в настоящее время не используются и всегда установлены в 0.
Обязательные общеизвестные (Well-known mandatory).
Атрибуты, которые обязательно должны присутствовать в пакете UPDATE протокола ВОР. Если отсутствует общеизвестный атрибут, то автоматически генерируется сообщение об ошибке NOTIFICATION и сеанс прекращается. Это указывает на то, что во всех реализациях BGP может использоваться стандартный набор атрибутов. В качестве примера общеизвестного обязательного атрибута можно привести атрибут AS_PATH.
Общеизвестные, предоставленные на собственное усмотрение (Well-known
discretionary).
Эти атрибуты опознаются всеми реализациями BGP, но при этом могут
и не посылаться в сообщении UPDATE протокола BGP. Атрибутом этой категории является атрибут LOCAL_PREF. Кроме общеизвестных атрибутов, маршрут может обладать одним и более необязательными атрибутами. Эти атрибуты необязательно будут поддерживаться всеми реализациями протокола BGP. Необязательные атрибуты могут быть транзитивными и нетранзитивными.
Необязательные транзитивные (Optional transitive).
Если необязательный атрибут неопознан протоколом BGP, то обращается внимание на флаг транзитивности. Если он установлен для этого атрибута, что говорит о транзитивности последнего, то используемый BGP принимает атрибут и передает его другим спикерам BGP.
Необязательные нетранзитивные (Optional nontransitive).
Когда необязательные атрибуты не опознаны и не установлен флаг транзитивности, что указывает нанетранзитивность атрибута, то такой атрибут просто игнорируется и не передается другим BGP-системам.
Байт кода типа атрибута содержит код атрибута. В настоящее время определены следующие атрибуты:
Номер атрибута |
Имя атрибута |
Код категории/типа |
Соответствующий RFC/проект документа |
|
1 |
ORIGIN |
Общеизвестный обязательный код типа 1 |
RFC 1771 |
|
2 |
AS_PATH |
Общеизвестный обязательный код типа 2 |
RFC 1771 |
|
3 |
NEXT_HOP |
Общеизвестный обязательный код типа 3 |
RFC 1771 |
|
4 |
MULTI_EXIT_DISC |
Необязательный нетранзитивный, код типа 4 |
RFC 1771 |
|
5 |
I_OCAL_PREF |
Общеизвестный предоставленный на собственное усмотрение, код типа 5 |
RFC 1771 |
|
6 |
ATOMIC_AGGREGATE |
Общеизвестный используемый по усмотрение, кодтипа 6 |
RFC 1771 |
|
7 |
AGGREGATOR |
Необязательный транзитивный, код типа 7 |
RFC 1771 |
|
8 |
COMMUNITY |
Необязательный транзитивный код типа 8 |
RFC1997 |
|
9 |
ORIGINATORJD |
Необязательный нетранзитивный, код типа 9 |
PFC1966 |
|
10 |
Список кластеров (Cluster List) |
Необязательный нетранзитивный, код типа 10 |
RFC1966 |
|
11 |
DPA (Destination Point |
Атрибут точки назначения для BGP |
Не используется |
|
12 |
Atribute) Объявитель маршрутов (Advertiser) |
Сервер маршрутов BGP/IDRP |
документ RFC1863 |
|
13 |
FaD_PATHO-USTTЈRJD |
Сервер маршрутов BGP/IDRP |
RFC1863 |
|
14 |
NLRI, допускающий работу в мультипротокольном режиме (Multiprotocol Reachable NLRI) |
Необязательный нетранзитивный, код типа 14 |
RFC2283 |
|
15 |
NLRI, запрещающий работу в мультипротокольном режиме (Multiprotocol Unreachable NLRI) |
Необязательный нетранзитивный, код типа 15 |
RFC 2283 |
|
16 |
Дополнительные сообщества (Extended Communities) |
"в стадии разработки" draft-ramachandra-bgp-ext-communities- 00.txt |
||
256 |
Зарезервировано |
Протокол ВGР с мультипротокольными расширениями (Multiprotocol ВОР — MBGP) иногда также называют BGP-4+ и ошибочно причисляют его к групповому протоколу ВGР (Multicast ВGР). На самом деле протокол ВGР с мультипротокольными расширениями описан в RFC 2283, и его работа организуется на основе возможностей по ведению переговоров, принятых в протоколе BGP. Протокол MBGP обеспечивает обратную совместимость с протоколом BGP-4, что позволяет ему переносить в себе информацию для протоколов сетевого уровня (кроме IPv4), таких как IPv6 и IPX. Кратко рассмотрим основные типы новых атрибутов, а также сферах применения этого протокола.
В порядке поддержки мультипротокольных расширений в протокол BGP-4 было введено два дополнительных атрибута: NLRI, допускающий работу в мультипротокольном режиме (Multiprotocol Reachable NLRI — MP_REACH_NLRI), и NLRI, запрещающий работу в мультипротокольном режиме (Multiprotocol Unreachable NLRI— MP_UNRICH_NLRI). NLRI, допускающий работу в мультипротокольном режиме (MP_REACH_NLRI), является необязательным нетранзитивным атрибутом, который может использоваться для следующих целей:
- Объявление действующих маршрутов соседнему узлу.
- Разрешение маршрутизатору объявлять адреса сетевого уровня следующемуближайшему маршрутизатору, который будет использоваться в качестве промежуточного узла, чтобы достичь пункта назначения, указанного в поле NLRI атрибута МР_ NLRI.
- Разрешение заданному маршрутизатору выдавать отчет о некоторых или обовсех точках подключения подсетей (Subnetwork Points of Attachment — SNPA),которые имеются на локальной системе.
NLRI, запрещающий работу в мультипротокольном режиме (Multiprotocol Unreachable NLRI — MP_UNRICH_NLRI), также представляет собой необязательный нетранзитивный атрибут, который может использоваться для удаления одного или нескольких недействующих маршрутов.
Эти новые атрибуты были введены в действие протоколом MBGP для обеспечения возможности связывания определенного протокола сетевого уровня с информацией о соседнем узле и с NLRI. Адресная информация, описанная в RFC 1700, используется для идентификации протоколов сетевого уровня. Междоменная групповая маршрутизация — наиболее общий случай применения мультипротокольных расширений протокола BGP. Вероятно, в этом и кроется причина того, что иногда ошибочно под MBGP подразумевают Multicast (т.е. групповой) BGP, а не Multiprotocol (мультипротокольный) BGP. При использовании MBGP для работы с группами адресов протокол BGP одновременно передает информацию о двух наборах маршрутов — об уникальных маршрутах и о маршрутах, используемых в групповой маршрутизации. Маршруты для групповой маршрутизации используются затем групповым независимым протоколом (Protocol-Independent Multicast — PIM) для процедур пересылки обратных маршрутов (Reverse Path Forwarding — RPF), с помощью которых осуществлялось построение деревьев распределения данных. До появления MBGP в групповой междоменной маршрутизации использовались обычные системы с однозначными маршрутами, что требовало взаимного соответствия топологий сети для одно- и многоадресной маршрутизации. С появлением протокола MBGP работа с многоадресной междоменной маршрутизацией стала более гибкой, что предоставило новые возможности для управления сетевыми ресурсами.
7.Примеры практического применения протокола BGP
Рассмотрим примеры практического применения протокола BGP для реализации простейших схем взаимодействия маршрутизаторов внутри AS и между несколькими AS. Из приведенного выше материала следует, что BGP является универсальным инструментом управления маршрутной информацией, т.е. область применения данного протокола не ограничивается только за пределами либо только внутри AS. Таким образом существует как бы два варианта использваония данного протокола: eBGP и iBGP.
Если AS содержит несколько BGP маршрутизаторов, то она может использоваться в качестве транзитной системы для других AS.
AS200 является транзитной системой для AS100 и AS300.
В данном случае передача информации между AS100 и AS300 по BGP напрямую невозможна, в соответствии с топологией связей. Для выполнения задачи используется транзитная система - AS200, т.е. передача BGP трафика между граничными маршрутизаторами внутри AS200. Это стало возможным благодаря одновременному использованию внутреннего BGP (iBGP) – для передачи BGP трафика внутри AS, и внешнего BGP (eBGP) – для передачи трафика между маршрутизаторами, лежащими в разных AS. Т.о. если BGP выполняется между маршрутизаторами одной AS – это iBGP. Если же BGP выполняется между маршрутизаторами разных AS - это eBGP.
Для запуска BGP необходимо два маршрутизатора. В предлагаемых примерах это маршрутизатор А , маршрутизатор В и т.д. (RTA, RTB, RTC etc). Конфигурация BGP начинается с указания номера AS к которой принадлежит маршрутизатор.
router bgp autonomous-system
RTA#
router bgp 100
RTB#
router bgp 200
В приведенном выше примере RTA использует BGP и принадлежит к AS100, RTB так же использует BGP и принадлежит AS200.
Следующим шагом конфигурации является объявление соседей, для указания соседних маршрутизаторов, использующих BGP.
Формирование BGP Neighbors.
Два BGP маршрутизатора становятся соседями после установки TCP соединения между собой. После установления TCP соединения маршрутизаторы обмениваются сообщениями содержащими такую информацию как номер AS, версия используемого протокола BGP, BGP ID маршрутизатора и значение временного интервала для обмена сообщениями keepalive. После того как указанные сообщения переданы, подтверждены и согласованы - соединение между соседями считается установленным (established). Любое другое состояние TCP соединения, отличное от «established» указывает, что два маршрутизатора не являются соседями и не могут обмениваться BGP трафиком.
Для установки соединения используется следующая команда
neighbor ip-address remote-as number
number – это номер AS маршрутизатора с которым необходимо установить соединение BGP.
ip-address – это IP адрес в той же сети подключенного напрямую маршрутизатора для eBGP, или любой другой IP адрес маршрутизатора для iBGP независимо от топологии подключения.
Важно, что бы адрес, указываемый в команде neighbour, был достижим. Для подтверждения достижимости используется команда ping с указанием интерфейса источника, который должен использоваться отправки эхо-запроса на IP адрес соседнего BGP маршрутизатора.
В случае изменения конфигурации протокола BGP на маршрутизаторе, обязательна перезагрузка соединения, для применения изменений. Для это используют следующую команду:
clear ip bgp address (где address это адрес соседа )
clear ip bgp * (очищает соединения со всеми соседями)
По умолчанию, сессия BGP начинается с использования версии протокола – BGP 4, процесс переговоров происходит в убывающем порядке, и в случае необходимости версия может быть понижена.
Для запрещения переговоров и жесткого определения номера версии BGP, используемого на маршрутизаторе для взаимодействия с соседом используют следующую команду:
neighbor {ip address|peer-group-name}version value
value – номер версии
Пример использования команды neighbour
RTA#
router bgp 100
neighbor 129.213.1.1 remote-as 200
RTB#
router bgp 200
neighbor 129.213.1.2 remote-as 100
neighbor 175.220.1.2 remote-as 200
RTC#
router bgp 200
neighbor 175.220.212.1 remote-as 200
В приведенном выше примере между маршрутизаторами RTA и RTB используется eBGP. Между RTC и RTB используется iBGP. Разница, между eBGP и iBGP, заключается в объявлении номера AS совпадающего или не совпадающего с номером AS, в которой находится маршрутизатор. Также, при использовании eBGP, маршрутизаторы-соседи подключены напрямую, а в случае использования iBGP топология подключения не принципиальна. Т.е. маршрутизаторы, использующие iBGP, могут не быть подключены напрямую друг к другу, так же как и маршрутизаторы использующие протоколы внутренней маршрутизации – основное требование – возможность взаимодействия на сетевом уровне.
Пример вывода информации при использовании команды show ip bgp neighbors на маршрутизаторе RTA
# show ip bgp neighbors
BGP neighbor is 129.213.1.1, remote AS 200, external link
BGP version 4, remote router ID 175.220.12.1
BGP state = Established, table version = 3, up for 0:10:59