22. BGP атрибуты в IOS

NWLLA OMNI

  • При выборе маршрута Cisco IOS использует алгоритм:

Код

Мнемоника

Описание

N

Next Hop

Маршруты с доступным Next Hop

W

Weight

Маршруты с бОльшим Weight

L

Local Pref

Маршруты с бОльшим Local Preference

L

Local Origin

Маршруты с нулевым Next Hop (маршрут вброшены локально)

A

AS Path

Маршруты с меньшим количеством AS в AS Path

O

Origin

Маршруты с меньшим Origin

M

MED

Маршруты с меньшим MED

N

Neighbor

Маршруты полученные от EBGP (Hot Potato Routing)

I

IGP Metric

Маршруты с меньшей IGP метрикой до Next Hop

non-ECMP

EBGP Age

Только для EBGP: маршруты, полученные первыми

non-ECMP

Neigh ID

Маршруты от соседа с бОльшим Router ID

non-ECMP

Neigh IP

Маршруты от соседа с бОльшим IP адресом

  • В реализации Сisсo если маршруты по NWLLAOMNI полностью одинаковые, то будет выбран более старый маршрут, если и время одно, то тогда учитываются non-ECMP показатели

Использование атрибутов BGP в IOS

  • Для контроля исходящего трафика используются атрибуты:

    • Weight - проприетарный, локальный для роутера атрибут

    • Local Preference - стандартный атрибут, общий для всех роутеров в AS

    • Проставляя эти атрибуты, администратор влияет на роутеры в своей AS

  • Для контроля входящего трафика используются атрибуты:

    • MED - стандартный, но не особенно удобный атрибут

    • AS Path - используется техника AS Prepending, которую не любят провайдеры

    • Community - требуются договоренности с провайдерами и IXP

    • Проставляя эти атрибуты, администратор влияет на роутеры в других AS

Weight

  • Проприетарный атрибут Cisco

    • Локальный, назначается администратором, не передается в Update

    • 16-битное число, больше=лучше

  • По умолчанию:

    • 0 для маршрутов, изученных от соседей

    • 32768 для маршрутов, импортированных в BGP локальным роутером

Настройка Weight

  • R2 проставляет вес 10 на все маршруты, полученные от R1

  • Настройка через Neighbor:

  • Настройка через Route Map

Local Preference

  • Стандартный атрибут, общий для всех роутеров в AS

    • Обязателен в IBGP Update, отсутствует в EBGP Update

    • 32-битное число, больше=лучше

  • По умолчанию 100 для любых маршрутов

    • show ip bgp не отображает значение по умолчанию для EBGP-маршрутов

  • R1 проставляет LP 150 для EBGP и локальных маршрутов

  • Альтернатива: проставлять LP 150 на маршруты от ISP1

AS Path

  • Настройка требуется для техники AS Prepending

    • Настраивается через Route Map, обычно на EBGP-соседстве

    • Искусствено удлиняет AS Path добавлением номера собственной AS

    • Также номер своей AS добавляется при отправке EBGP Update отдельно от Prepending

  • R2 трехкратно добавляет номер своей AS в AS-Path

    • Плюс один раз за EBGP Update

MED

  • Инструмент указания предпочтения маршрута для соседней AS

    • По умолчанию MED маршрутов из разных AS не сравниваются

  • 32-битное число, меньше-лучше

    • Часто наследуется от метрики IGP

    • По умолчанию предпочитаются маршруты с отсутствующим MED

  • В случае, если MED не установлен, он считается нулевым и соответственно выбирается данный маршрут

    • Можно изменить поведение командой bgp bestpath med missing-as-worst и маршруты получат максимальное значение, если MED указан фактически

Импорт маршрутов через Network

  • Импортировать явно указанный маршрут:

    • Команда network <netip> mask <netmask>

    • Требуется строгое совпадение в RIB

    • Origin - IGP

Редистрибуция

  • Процесс импорта маршрутов из RIB в таблицу топологии BGP

  • Параметры импортируемого маршрута

    • Origin - INCOMPLETE

    • MED - metric

MED и Next Hop для импорта

  • Импортируемые маршруты получают стартовые атрибуты

  • Next Hop

    • 0.0.0.0/0 для connected/static attached

    • Наследуется для remote

  • MED

    • 0 для network connected/static attached, redistribute connected

    • Default-metric для redistribute static и network static remote

      • Если default metric не задана, MED=0

    • Default-metric для redistribute IGP

      • Если default-metric не задана, MED=IGP Metric

Route-map при редистрибуции в BGP

  • С помощью Route-map можно отобрать префиксы для редистрибуции или назначить специальные атрибуты

Distribute-list в BGP

  • Позволяет фильтровать:

    • отправляемые и принимаемые префиксы (лучше делать не так)

    • импорт маршрутов других протоколов из RIB при редистрибуции

Инъекция маршрута по умолчанию

  • BGP может распространять маршрут по умолчанию из RIB

    • Редистрибуция статики и затем команду default-information originate

    • Отдать маршрут по умолчанию соседу

Манипуляции с AD

  • Можно задать AD префиксам BGP в RIB

  • По умолчанию:

    • 20 для EBGP

    • 170 для IBGP

    • 200 для локальных маршрутов

  • Задание AD для отдельных маршрутов

    • distance <AD> <gatewayip> <gatewaywildcardmask> <acl>

Фильтрация входящих BGP Update

  • На все маршруты нужно принимать от EBGP-пиров:

    • Некоторые префиксы провайдер в принципе не должен анонсировать

    • Ваше устройство, как правило, ограничено по ресурсам

  • Что можно принять от провайдера, если вы - предприятие?

    • Только маршрут по умолчанию

    • Маршрут по умолчанию и отдельные specific routes

      • Маршруты клиентов, подключенных к тому же провайдеру

      • Маршруты крупных контент-провайдеров для балансировки трафика

    • Вообще все маршруты в Интернете (>700000 префиксов)

      • Прекрасный способ выстрелить себе в ногу и бездарно потратить деньги на железо

Фильтрация исходящих BGP Update

  • Не все маршруты нужно отправлять EBGP-пирам

    • По сути, вашему провайдеру не нужно отправлять ничего, кроме ваших PI IP

    • Особенно плохая идея - отправлять вообще все маршруты без разбора

Механизмы фильтрации в Cisco IOS

  • Cisco IOS позволяет фильтровать маршруты BGP-пира с помошью:

    • distribute-list - фильтрация на основе ACL

    • prefix-list - филтрация на основе prefix-list

    • filter-list - фильтрация на основе AS Path ACL

    • route map - фильтрация на основе чего угодно плюс изменение атрибутов

  • Фильтрация исходящих префиксов по ACL

  • Фильтрация входящих префиксов по Prefix-list

Фильтрация с помощью AS Path ACL

  • AS Path ACL используют фильтрацию на основе AS Path

    • Строковое представление AS Path анализируется регулярным выражением

    • AS Path ACL состоят из вердикта и шаблона регулярного выражения

  • Удобные сценарии использования AS Path

    • Компании: ограничить исходящие Update своими PI-префиксами

    • Провайдеру: ограничить входящие от клиента маршруты его PI-префиксами

Символы регулярного выражения

Символы

Что попадает

Строка из цифр

Указанная подстрока

строка 1\строка 2

Любая из указанных подстрок

[диапазон]

Любой символ из диапазона

.

Любой символ, включая пробел

^

Начало строки

$

Конец строки

_

Любой разделитель, включая пробел, начало и конец строки

(строка)

Группировка символов в выражение

*?+

"Ноль или более", "ноль или один", "один или более"

\1

Значение первого выражения

  • Фильтрация исходящих префиксов:

  • Вероятный AS Path ACL со стороны провайдера

Last updated