Кратко

  • BGP MED — необязательный, нетранзитивный и намеренно слабый атрибут; меньшее значение имеет силу только внутри набора кандидатов и политики принимающей сети.
  • Нужное значение в обновлении или looking glass не доказывает, что каждый значимый маршрутизатор выбрал этот вход, установил его в FIB и направил туда рабочие потоки.
  • Утверждение о переносе входящего трафика требует связанного свидетельства: анонсов, import policy, сопоставимых кандидатов, best path, состояния пересылки и измерений трафика за определённый период.

Меньшее число, но прежняя загрузка стыка

Представим окно работ, в котором сеть снижает MED на одном из двух интерконнектов. Route collector показывает новое значение. Запись об изменении почти готовы закрыть: атрибут виден, меньшее число кажется решающим, ни один маршрут не отозван. Однако счётчики интерфейсов по-прежнему показывают, что большая часть входящего трафика приходит через другую площадку.

Это не доказывает, что BGP проигнорировал MED. Принимающая сеть могла назначить другой LOCAL_PREF, предпочесть более короткий AS_PATH, нормализовать MED при импорте, сравнивать его только у маршрутов от одного соседнего AS или выбрать разные пути на разных маршрутизаторах. Наблюдаемое обновление устанавливает один факт: конкретный speaker передал конкретный атрибут. Оно не раскрывает всё удалённое решение и не подтверждает последующее движение пакетов.

Входной параметр предпочтения, а не команда

RFC 4271 определяет MULTI_EXIT_DISC как необязательную нетранзитивную четырёхоктетную метрику для выбора между несколькими точками входа или выхода к одному соседнему AS. При прочих равных предпочтительно меньшее значение. Каждое ограничение существенно. Атрибут необязателен, не передаётся следующему соседнему AS и по базовому правилу сравнивается только между маршрутами от одного соседнего AS. Условие «при прочих равных» ставит MED после решений политики, которые могли исключить маршрут ещё до этого этапа.

Решение принадлежит принимающей сети. RFC 4271 требует локального механизма удаления MED и разрешает локальной конфигурации изменить полученное значение до выбора пути. Пир может принять значение, заменить его, не использовать в ожидаемом сравнении или расширить сравнение особой политикой реализации. Отправитель выражает предпочтение, но не получает права принимать решение на удалённой стороне.

Отсутствующий MED тоже требует явного соглашения. Действующая базовая спецификация приписывает маршруту без атрибута наименьшее возможное значение в заданном сравнении. RFC 4451 фиксирует исторические расхождения спецификаций и реализаций, включая противоположную трактовку отсутствующего MED. Поэтому многие операторы сбрасывают MED на входе в фиксированное значение. Панель с 50 против 100 неполна, если не показывает судьбу отсутствующих значений и место нормализации.

Набор кандидатов — настоящий знаменатель

MED имеет смысл лишь для маршрутов, дошедших до этапа его сравнения. Маршрут с меньшим MED может раньше проиграть по LOCAL_PREF, длине AS_PATH или иному решению политики. Маршрут от другого соседнего AS по базовому правилу не участвует в том же сравнении MED. Сравнение между автономными системами меняет это допущение и может смешать несопоставимые шкалы.

RFC 4451 предупреждает о широком разбросе поведения MED и о том, что сравнение значений разных автономных систем способно породить непредусмотренные взвешенные решения. Там же описано, как route reflection и confederation выявляют отсутствие полного порядка и могут поддерживать устойчивые колебания. Поэтому нужен не снимок одного маршрута, а полный набор кандидатов на маршрутизаторах, чьи решения важны: какие атрибуты пережили более ранние этапы и видели ли все узлы одинаковые альтернативы.

От выбранного маршрута к движению пакетов

Запись best path сильнее обновления, но ещё не является квитанцией трафика. Выбранный next hop должен попасть в плоскость пересылки. Equal-cost или per-flow механизмы могут разделять поток. Спрос может меняться во время наблюдения. Отзыв маршрута, reset сессии или изменение topology способны переместить трафик одновременно с правкой MED.

Цепочка вывода должна оставаться видимой. Анонс доказывает, что отправлено. Состояние импорта — что принято или переписано. Состояние решения — что выбрал один маршрутизатор. Состояние пересылки — что он установил. Счётчики интерфейсов или flow samples — куда шли пакеты в указанный интервал. Ни одно звено не должно присваивать себе доказательную силу следующего.

RFC 4451 добавляет временное предостережение. MED, вычисляемые из метрик IGP, могут превратить внутреннее изменение в массовый поток обновлений BGP. Reset сессии способен изменить анонсированные MED и распределение трафика. Подтверждение, полученное до reset или на одном route reflector, не остаётся действительным бессрочно.

Источники