Поддерживать стабильную работу сетевой инфраструктуры крупного предприятия — задача непростая. Взаимодействие промышленных и корпоративных сетевых сред на предприятиях требуют гибкого подхода к сетевым архитектурам. Именно здесь особенно важна грамотно спроектированная маршрутизация и устойчивость соединений. Правильный выбор BGP-решений, будь то внутренний iBGP или внешний eBGP, оказывает значительное влияние на производительность и отказоустойчивость сетевой инфраструктуры.

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

Виды BGP

Прежде всего разберемся с двумя основными видами BGP-протоколов, используемых в сетях крупных организаций. Начнем с iBGP. Внутренний BGP используется для распространения маршрутов внутри одной автономной системы. Автономная система (AS) — это группа IP-сетей, находящихся под управлением единого административного контроля, использующих общую внутреннюю политику маршрутизации. То есть, маршруты распространяются между роутерами, пр��надлежащими одному предприятию или организации.

Маршрутизатор, подключённый к внешнему миру посредством eBGP, который мы рассмотрим чуть позже, получает внешние маршруты и распространяет их внутри своей AS с использованием iBGP. Это гарантирует, что вся внутренняя инфраструктура AS осведомлена о доступных внешних маршрутах.

Принцип работы iBGP строится следующим образом. Сначала происходит формирование полной сетки (Full Mesh Topology). Для этого все маршрутизаторы внутри AS должны установить прямое соединение друг с другом. Когда маршрутизатор получает новый маршрут через eBGP, он передает его остальным членам iBGP-группы.

Однако здесь возникает важный нюанс: iBGP-маршрутизатор не пересылает маршруты, полученные от другого iBGP-маршрутизатора, третьим iBGP-маршрутизаторам. Это правило предотвращает образование петель маршрутизации.

При передаче маршрутов сохраняются все атрибуты, такие как AS_PATH, NEXT_HOP, LOCAL_PREF и MED. И здесь важно отметить, что атрибут NEXT_HOP обычно остается неизменным, указывая на интерфейс, через который был получен первоначальный маршрут.

Как можно обойти ограничение, связанное с тем, что iBGP-маршрутизатор не отправляет маршруты, полученные от другого iBGP-маршрутизатора, другим iBGP-маршрутизаторам той же AS. Для его обхода применяются дополнительные механизмы, например Route Reflectors - специальные устройства, отражающие маршруты между группами маршрутизаторов. Также можно использовать конфедерации, то есть разделение большой AS на меньшие подсистемы.

В свою очередь, внешний eBGP применяется для связи разных AS друг с другом. Используется чаще всего при взаимодействии с провайдерами или партнерами вне вашей собственной автономной системы.

Работа eBGP начинается с установления соседства (neighbor adjacency), когда два маршрутизатора, принадлежащие разным автономным системам, устанавливают TCP-соединение на порте 179. Они обмениваются сообщениями OPEN, содержащими параметры сессии, такими как версия BGP, поддерживаемые опции и тайминги. Далее, после успешного установления соединения маршрутизаторы начинают обмениваться сообщениями UPDATE, содержащими списки достигаемых и недоступных сетей (префиксов). Эти обновления содержат атрибуты маршрута, такие как следующий переход (Next Hop), метрика пути (MED), локальное предпочтение (Local Preference) и др. Получив обновление, маршрутизатор применяет алгоритм принятия решений BGP для выбора лучшего маршрута к каждому префиксу. Этот процесс учитывает множество факторов, включая административные настройки, длину AS-path, локальное предпочтение и другие атрибуты. Выбранный оптимальный маршрут добавляется в таблицу маршрутизации и распространяется дальше соседям через eBGP или внутренние протоколы маршрутизации (iBGP).

Когда что выбираем?

iBGP подходит для крупных инфраструктурных решений внутри сети организации, когда требуется распространение маршрутов между внутренними сегментами сети. Однако при проектировании iBGP нельзя забывать о тех особенностях, которые мы рассматривали в разделе посвященном принципам работы iBGP. В частности, необходимо использовать механизм синхронизации, например, Route Reflector или Confederation, иначе каждый узел должен поддерживать полное соединение (full mesh) с каждым другим узлом, а такая топология плохо масштабируется, увеличивая нагрузку на CPU и память устройств.

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

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

Теперь поговорим о ситуациях, когда предпочтительнее использование eBGP. Этот протокол  помогает организовать взаимодействие с внешними сервис-провайдерами и партнёрами, обеспечивая связь между разными AS. Но здесь также есть ряд моментов, на которые следует обратить внимание при проектировании.

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

Но зато, eBGP не нуждается в полной взаимной доступности узлов (full-mesh), так как работает поверх пограничных маршрутизаторов, объединяющих разные AS.

Здесь в качестве примера использования eBGP можно представить организацию надежного соединения предприятия с поставщиками сырья и комплектующих.

Важные аспекты дизайна BGP

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

Используйте Path Selection Policies (PSP) для тонкой настройки выбора маршрута и оптимизации производительности приложений. Эти политики помогают администраторам сети настроить предпочтительные пути передачи трафика, учитывать ограничения пропускной способно��ти каналов и обеспечивать надежность работы сети. Например, мы можем назначить разный вес маршрутам и он будет влияет на порядок сортировки маршрутов. Чем больше вес, тем выше приоритет маршрута.

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

Помимо политик, применяйте также ECMP (Equal-Cost MultiPath Routing) для балансировки нагрузки и повышения устойчивости сети. Метод маршрутизации ECMP, позволяет отправлять пакеты по нескольким эквивалентным путям одновременно. Вместо выбора единственного пути к цели, ECMP распределяет нагрузку равномерно между всеми доступными путями равной стоимости. Такой подход значительно улучшает производительность сети, снижает перегрузку отдельных каналов и увеличивает общую устойчивость системы.

Безопасность и защита сети

При работе с BGP важным аспектом становится безопасность и защита от возможных атак. Здесь прежде всего установите парольную защиту сессий BGP с использованием MD5 или SHA хеш-функций для защиты каналов от несанкционированного вмешательства.

Также настройте строгую фильтрацию маршрутов с использованием списков ACL и префиксных фильтров. Включайте механизмы защиты от спуфинга и DoS-атак, используя такие технологии, как BFD (Bidirectional Forwarding Detection) и Fast Convergence. Технология быстрого обнаружения сбоев в линиях связи (BFD), позволяет значительно ускорить процессы восстановления работоспособности сети. Она интегрируется с существующими протоколами маршрутизации и сигнализации, повышая их быстродействие и стабильность.

BFD периодически посылает небольшие тестовые пакеты (Hello messages) между двумя устройствами, участвующими в коммуникации. Эти пакеты отправляются с заранее установленным интервалом (обычно миллисекунды), и отсутствие ответа за указанный период воспринимается как сигнал о неисправности линии связи.

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

Заключение

Выбор между iBGP и eBGP определяется конкретной задачей, стоящей перед предприятием. Если речь идет о внутренней маршрутизации и контроле над всеми сегментами сети, то оптимальным решением станет внутренний BGP. Во многих случаях целесообразно комбинировать оба подхода, применяя iBGP для внутреннего контроля и eBGP для взаимодействия с внешними ресурсами.

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

Если тема BGP интересна на уровне архитектуры, имеет смысл смотреть шире — как эти решения работают в масштабах ЦОД. На курсе «Дизайн сетей ЦОД» подробно разбирают построение underlay и overlay, применение BGP, EVPN и VXLAN в отказоустойчивых топологиях, с фокусом на практику и реальные сценарии проектирования. Чтобы узнать, подойдет ли вам программа курса, пройдите вступительный тест.

Для знакомства с форматом обучения и экспертами приходите на бесплатные демо-уроки:

  • 26 февраля, 20:00. «Underlay для фабрики: iBGP vs eBGP. Тонкости дизайна, особенности, нюансы». Записаться

  • 11 марта, 20:00. «Сети ЦОД — SP vs. DC. Какой же подход к построению сетей оказался более распространен и почему?». Записаться

  • 25 марта, 20:00. «VxLAN: как связать дата-центры поверх обычной сети». Записаться