Описание проблемы

Основная особенность настройки проткола BGP для маршрутизации внутри автономной системы состоит в том, что роутеры не передают своим iBGP соседям информацию о маршрутах, выученных по iBGP, без дополнительных настроек. Чтобы все маршрутизаторы выучили маршруты до всех сетей и могли иметь максимально эффективные маршруты, требуется подключить друг к другу все роутеры внутри автономной системы. По итогу, будет получено n * (n-1) / 2 подключений между роутерами, при увеличении количества роутеров количество соединений будет расти многократно быстрее, что не очень хорошо и для управления, и для мощностей роутеров.

Конфедерации

Одно из решений этой проблемы - использование конфедераций BGP. Решение состоит в том, чтобы разделить автономную систему на набор sub-AS (подавтономных систем), внутри которых iBGP соседи будут вести себя как обычно. Но между подавтономными системами маршруты, выученные по iBGP уже будут анонсироваться (при этом для сообщений используется TTL=1, как и в eBGP), но в остальном поведение маршрутизаторов внутри автономной системы останется похожим на поведение iBGP соседей (к примеру, атрибут next-hop по умолчанию не меняется при пересылке маршрута). Саму же автономную зону можно будет называть конфедерацией.

По итогу, соседи в автономной системе делятся на два типа по отношению к отдельно взятому роутеру:

  1. iBGP-сосед по конфедерации - принадлежит к одной подавтономной системе с роутером
  2. eBGP-сосед по конфедерации - принадлежит к другой подсистеме.

При этом, так как роутеры внутри каждой подавтономной системы ведут себя как iBGP соседи, правило полносвязности между всеми членами подавтономной системы сохраняется (при условии неиспользования других способов решения проблемы).

Однако, нам уже не нужна полносвязность роутеров в разных sub-AS. Каждый eBGP-сосед по конфедерации будет анонсировать все маршруты, выученные по iBGP, своим eBGP-соседям по конфедерации.

Untitled

На рисунке описано распределение роутеров по подавтономным системам в конфедерации.

В данной топологии мы не можем создать подавтономную систему с более чем 3 роутерами (т.к. иначе будет утеряно полносвязное соединение между всеми членами такой подавтономной системы). К тому же, всего можно создать не более 2 таких подавтономных зон (и создание второй системы не уменьшит итоговое количество подавтономных систем т.к. придется создавать систему только для одного роутера). Поэтому создана только одна подавтономная зона, которая включает в себя 3 роутера. Остальные 3 зоны включают только по 2 роутера.

Особенности конфедерации

Маршруты внутри подавтономных систем благодаря алгоритму выбора лучшего маршрута BGP не будут как-либо зацикливаться. Однако, свободная передача всех выученных маршрутов между подавтономными системами создает опасность создания петель маршрутизации на уровне конфедерации.

Решается эта проблема через использование атрибута AS_PATH (который должен передаваться во всех обновлениях, которые пересылаются BGP протоколом). Обычно, в него включаются номера автономных систем, когда информация о маршруте перемещается между разными автономными системами в Интернете. Но внутри конфедерации этот атрибут также заполняется номерами подавтономных систем, через которые информация о маршруте успела пройти. Так как роутеры отклоняют объявления маршрутов с повторяющимися номерами в AS_PATH, петли на уровне конфедерации просто не могут образоваться (действует правило, похоже на управление информацией о маршрутизации для обычных eBGP соседей в разных автономных системах).

Использование атрибута AS_PATH для выбора наилучшего маршрута также позволяет включить случай конфедерации в алгоритм поиска наилучшего маршрута BGP (один из пунктов алгоритма – выбор маршрута с наименьшим количеством автономных систем до сети назначения).

Пока информация о маршруте перемещается внутри конфедерации заполнение атрибута AS_PATH не создает проблем. Но передача этого атрибута внешнему для конфедерации eBGP соседу может создать огромное количество проблем. Поэтому маршрутизаторы чистят атрибут AS_PATH от объявлений номеров подавтономных систем и после добавляют номер самой конфедерации в самый конец атрибута AS_PATH. Это позволяет также скрыть от маршрутизаторов из других автономных систем информацию о внутренней структуре конфедерации.

По итогу конфедерации становятся способом упростить управление большим количеством маршрутизаторов внутри автономной системы с возможностью точечного изменения правил маршрутизации внутри каждой подавтономной системы.

Настройка оборудования

<aside> ℹ️ Настройка интерфейсов на каждом маршрутизаторе пропущена.

</aside>