В этой заметке мы познакомимся о существующих атрибутах BGP.
Для начала рассмотрим их градацию:
Общеизвестные обязательные атрибуты, это те атрибуты, которые должны обязательно находится в UPDATE сообщении. Если один из этих атрибутов не будет указан, то пошлется соответствующее NOTIFICATION сообщение с ошибкой: нет обязательного атрибута.
К таким атрибутам относится: NEXT_HOP, AS-PATH, ORIGIN. Все эти Атрибуты мы с Вами рассмотрим ниже.
Общеизвестные не обязательные атрибуты. Это те атрибуты, которые могут быть включены в UPDATE сообщение, но это не является обязательным, к таким атрибутам относятся: LOCAL_PREF и Atomic AGGREGATE
Опциональные транзитивные. Это атрибуты, которые являются так же не обязательными, но которые могут перенаправляться другими роутерами, другим, своим BGP соседям.
К таким атрибутам относятся: AGGREGATOR, COMMUNITY
Опциональные не транзитивные атрибуты. Это необязательные атрибуты, но в отличии от прошлой группы, эти атрабуты не могут быть транзитивными.
К таким атрибутам относятся: MED, ORIGINATOR_ID,CLUSTER_ID, CLUSTER LIST, Multiprotocol unreachable NLRI , Miltiprotocol Reachable NLRI.
Так же есть еще атрибуты, такие как расширенная community, RCID_PATH/CLUSETER_ID, DPA, Advertiser, которых мы пока касаться практически не будет.
Все эти атрибуты описаны в RFC: 1771, 1997, 1966,1863,2283
Тепреь рассмотрим некоторые BGP атрибуты более подробно.
AS-PATH — это общеизвестный атрибут, который является обязательным.
Этот атрибут указывает на то, в какое AS был создан данный маршрут, и через какие системы прошел данный маршрут, пока достиг данного роутера.
AS-PATH обозначается так: 20 30 40, здесь мы видим, что маршрут прошел 3 Автомномные системы (AS), был порожден в 40 системе (то что справа это то, где поражден маршрут, то что слева это тот, кто отдал нам этот маршрут), далее маршрут прошел через транзитную систему 30, 20 и попал к нам.
AS-PATH имеет хороший механизм защиты от петель, все просто, маршрутизатор принимает обновление, «смотрит» атрибут AS-PATH и если он находит там уже свою AS, то это говорит о том, что обнаружена петля, и такой UPDATE отбрасывается.
Так работает BGP роутер по умолчанию, но иногда, такое умолчание нужно изменить и разрешить такие вещи, например при использовании MPLS VPN.
LOCAL_PREFERENCE — Этот атрибут указывает на выбор роутера, который будет использован для выхода из данной Автономной системы. Используется когда есть не одно подключение к провайдерам, а несколько. Выбирается тот роутер, который имеет наивысшлий LP.
Существует похожий атрибут, разработанный Cisco, который называется Wieght (вес), который используется для определения, через какой интерфейс будет осуществляться выход из нашей AS, чем выше вес, тем приоритетнее интерфейс. Используется, когда есть два соединения с одной и той же AS.
MULTIEXIT_DESCRIMINATOR или коротко его называют MED.
Этот атрибут используется так же при подключении к одному провайдеру двумя линками, и этот параметр указывает на то, через какой интерфейс будет идти входящий трафик. Выбирается наименьший MED.
По умолчанию MED равен нулю. (metric в sh ip bgp)
По умолчанию MED работает только тогда, когда есть два подключения к одной и той же AS, но есть команда, которая заставляет маршрутизатор работать и с разными AS, — bgp always-compare-med.
NEXT_HOP — обязательный атрибут.
ATOMIC_AGGREGATE — не обязательный атрибут, который используется при агрегировании маршрутов, при агрегировании маршрутов, вся информация о атрибутах теряется, и передается соседу.
AGGREGATOR — атрибут указывает тот роутер, который сделал агрегацию маршрутов.
Данный атрибут можно увидеть командой: show ip bgp {neighbor_IP}, там вы увидите aggregated by
COMMUNITY — опциональный, транзитивный атрибут. Этот атрибут позволяет выделить необходимые маршруты в логическую группу, чтоб в дальнейшем их каким-то специальным образом обработать (пустить их по другому маршруту, так же используется при QOS BGP, и так далее.)
Существует несколько видов Community
— NO_EXPORT — компьюнити не будет транслироваться EBGP пиру.
— NO_ADVERTISE — комьюнити передается соседу, но далее не передается никому из BGP пиров.
LOCAL_AS — комьюнити могут транслироваться между IBGP пирами.
— INTERNET — комьюнити передается повсюду (iBGP, EBGP)
Коротко мы рассмотрели все необходимые нам атрибуты, для более детального изучения используйте RFC, которые я указал немного выше.