ITequipment.ruсетевое и серверное оборудование · МоскваПерейти в каталог →

OSPF или BGP в корпоративной сети: когда что применять

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

В чём принципиальная разница

Протоколы маршрутизации делятся на внутренние (IGP) и внешние (EGP). Внутренние работают в пределах одной административной зоны и оптимизируют путь. Внешние связывают независимые зоны и оптимизируют не длину пути, а соблюдение договорённостей между их владельцами.

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

BGP относится к внешним. Маршрутизатор не знает топологию соседней сети и не пытается её узнать. Он получает от соседа сообщение вида «через меня достижима такая-то подсеть, путь проходит через такие-то автономные системы» и решает, принимать ли такой маршрут и предпочесть ли его другому. Решение определяется набором атрибутов и настроенными политиками, а не метрикой расстояния.

Отсюда вытекают все остальные различия: OSPF быстрее сходится, но плохо переносит большой объём маршрутов и требует единого административного управления. BGP медленнее реагирует на изменения, но масштабируется до полной таблицы интернета и позволяет выражать произвольные правила выбора.

Как работает OSPF

Протокол описан в RFC 2328 для IPv4 (версия OSPFv2) и в RFC 5340 для IPv6 (версия OSPFv3). Современные реализации OSPFv3 поддерживают оба семейства адресов.

Маршрутизаторы обнаруживают друг друга служебными сообщениями hello и устанавливают отношения соседства. В сетях с множественным доступом выбирается назначенный маршрутизатор, через который идёт обмен, — иначе число отношений росло бы квадратично от числа узлов.

Метрикой служит стоимость, по умолчанию обратно пропорциональная полосе интерфейса. Важная деталь: опорная величина для расчёта исторически невелика, поэтому без настройки все интерфейсы быстрее определённого порога получают одинаковую стоимость, и протокол перестаёт различать канал на 10 и на 100 Гбит/с. Опорную величину задают явно и одинаково на всех маршрутизаторах.

Для масштабирования сеть делится на области. Нулевая область является опорной, все остальные подключаются к ней через пограничные маршрутизаторы. Внутри области передаётся полная топология, между областями — только сводные маршруты. Деление снижает объём вычислений и ограничивает распространение изменений: отказ линка внутри области не заставляет пересчитывать пути во всей сети.

Как работает BGP

Протокол описан в RFC 4271. Единицей является автономная система — сеть под единым административным управлением со своим номером. Номера бывают двухбайтовыми и четырёхбайтовыми; поддержка четырёхбайтовых обязательна для современных сетей и описана в RFC 6793.

Сессии BGP бывают двух видов. Внешние (eBGP) устанавливаются между маршрутизаторами разных автономных систем, внутренние (iBGP) — между маршрутизаторами одной. Сессия работает поверх TCP, что отличает BGP от OSPF с его собственным транспортом.

Выбор маршрута выполняется последовательной проверкой атрибутов до первого различия. Основные: предпочтение (local preference), задающее приоритет на выходе из своей сети; длина пути по автономным системам; происхождение маршрута; метрика для соседа. Сообщества (communities) служат метками, по которым применяют политики, не перечисляя подсети поимённо.

Внутренние сессии имеют особенность: маршрутизатор не передаёт между ними полученные маршруты, чтобы избежать петель. Поэтому все участники должны быть связаны каждый с каждым, что при росте сети даёт квадратичный рост числа сессий. Решают это маршрутными отражателями: выделенные узлы принимают маршруты и раздают остальным, превращая полную сетку в звезду.

Сравнение протоколов

ПараметрOSPFBGP
КлассВнутренний (IGP)Внешний (EGP)
ПринципСостояние каналаВектор пути
Знание топологииПолная карта областиТолько список автономных систем
ТранспортСобственный протоколTCP, порт 179
Критерий выбораСтоимость по полосеАтрибуты и политики
СходимостьДоли секундыСекунды и десятки секунд
Масштаб маршрутовТысячиСотни тысяч и более
Гибкость политикОграниченнаяШирокая
Область примененияВнутри своей сетиСтыки и большие масштабы

Таблица объясняет, почему противопоставление протоколов некорректно: они оптимизированы под разные задачи и в реальных сетях работают совместно.

Где применяют OSPF

OSPF уместен там, где сеть находится под вашим управлением целиком и требуется быстрая реакция на отказы.

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

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

Опорная маршрутизация в фабрике ЦОД. OSPF применяют для раздачи адресов точек туннелей, поверх которых работает наложенная сеть.

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

Где применяют BGP

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

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

Фабрика ЦОД. Распространён вариант, где каждый leaf-коммутатор получает собственный номер автономной системы из частного диапазона и устанавливает внешние сессии со всеми spine. Это даёт простую и предсказуемую опору для наложенной сети.

Передача сведений наложенной сети. Семейство адресов L2VPN EVPN переносится именно по BGP, что разобрано в материале о VXLAN и EVPN.

Разные зоны ответственности. Если сегментами сети управляют разные подразделения или подрядчики, BGP позволяет описать границы доверия явными политиками.

Когда протоколы работают вместе

Типовая архитектура средней корпоративной сети использует оба протокола с чётким разделением ролей.

OSPF обеспечивает внутреннюю связность: раздаёт адреса линков и служебных интерфейсов, обеспечивает достижимость маршрутизаторов друг для друга и быстро перестраивается при отказах. Число маршрутов в нём невелико.

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

Разделение даёт устойчивость. Отказ линка обрабатывает OSPF за доли секунды, сессии BGP при этом не рвутся, поскольку их конечные точки остаются достижимыми обходным путём. Без такого разделения каждое изменение топологии приводило бы к перестроению сессий и длительной нестабильности.

Общее правило: во внутреннем протоколе держат минимум маршрутов, только служебные. Пользовательские подсети передают по BGP.

Требования к маршрутизаторам

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

СценарийЧто критичноНа что смотреть
Только OSPF внутри сетиПроцессор для пересчёта путейЧисло узлов в области, частота изменений
BGP с частичной таблицейПамять и объём таблицы пересылкиЧисло принимаемых маршрутов
BGP с полной таблицей интернетаПамять, таблица пересылки, время загрузкиЗапас по числу маршрутов на годы вперёд
Фабрика ЦОД на BGPЧисло сессий и скорость сходимостиПоддержка ускоренного обнаружения отказов

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

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

Как выбрать протокол под задачу

  1. Определите границы административного управления. Всё, что внутри вашей зоны ответственности, — область внутреннего протокола. Всё, что на стыке с чужой сетью, — область BGP.
  2. Оцените число маршрутов. До нескольких тысяч внутренний протокол справляется; десятки тысяч и выше — повод переносить маршруты в BGP.
  3. Оцените требования к сходимости. Если перерыв в доли секунды критичен, внутренняя связность должна строиться на OSPF с ускоренным обнаружением отказов.
  4. Определите потребность в политиках. Если нужно по-разному обрабатывать маршруты по источнику, назначению или принадлежности, это задача BGP.
  5. Проверьте число подключений к внешним сетям. Два и более провайдера с автоматическим резервированием означают BGP и собственный номер автономной системы.
  6. Посчитайте площадки. От нескольких десятков площадок BGP с маршрутными отражателями предпочтительнее разрастающейся системы областей.
  7. Сопоставьте с возможностями оборудования: объём таблицы пересылки, оперативная память, поддержка нужных семейств адресов и лицензия, если функции маршрутизации лицензируются отдельно.

Типичные ошибки

Опорная величина стоимости оставлена по умолчанию. Все скоростные интерфейсы получают одинаковую стоимость, и OSPF перестаёт отличать быстрый канал от медленного. Величину задают явно и единообразно на всех маршрутизаторах.

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

Одна большая область OSPF. Деление на области существует ради ограничения распространения изменений; отказ от него сводит масштабируемость протокола на нет.

Забыты маршрутные отражатели. Внутренние сессии BGP требуют связи каждого с каждым. При росте числа маршрутизаторов это становится неуправляемым.

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

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

Что учесть при закупке

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

Объём памяти. Для сценариев с полной таблицей интернета уточняйте установленный объём оперативной памяти и возможность расширения, а также заявленное число поддерживаемых маршрутов в таблице пересылки.

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

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

Оборудование с вторичного рынка. Проверяйте привязку лицензий к прежнему владельцу и срок поддержки модели. Соображения собраны в материале о новом, б/у и refurbished, а общий порядок подготовки — в материале о планировании закупки.

Смотреть маршрутизаторы в наличии →

Вопросы по теме

Что выбрать для небольшой сети из нескольких маршрутизаторов?
OSPF. Он настраивается быстро, сам находит обходные пути и не требует номера автономной системы. BGP в такой сети добавит сложности без выигрыша, если нет подключения к двум провайдерам.
Нужен ли BGP при одном провайдере?
Обычно нет. При одном подключении достаточно маршрута по умолчанию в сторону провайдера. BGP становится оправдан при двух и более подключениях, когда требуется автоматическое резервирование и управление распределением трафика.
Почему BGP сходится медленнее OSPF?
OSPF имеет полную карту области и пересчитывает пути локально за доли секунды. BGP получает сведения последовательно от соседей, применяет политики на каждом переходе и по умолчанию использует таймеры в десятки секунд. Сходимость ускоряют настройкой таймеров и ускоренным обнаружением отказов.
Что такое таблица пересылки и почему её объём важнее памяти?
Таблица маршрутов хранится в оперативной памяти и содержит все известные маршруты. Таблица пересылки размещается в специализированной памяти микросхемы и содержит используемые записи — именно она обеспечивает обработку на полной скорости. При её переполнении часть трафика уходит в программную обработку, и производительность резко падает.
Можно ли применять BGP внутри сети?
Да, это распространённая практика в крупных сетях и в фабриках ЦОД. Каждому коммутатору выдают номер автономной системы из частного диапазона, и фабрика строится на внешних сессиях. Такая схема предсказуема и хорошо масштабируется.
Что такое маршрутный отражатель?
Выделенный маршрутизатор, который принимает маршруты по внутренним сессиям BGP и передаёт их остальным участникам. Он заменяет связь каждого с каждым звездообразной схемой и снимает квадратичный рост числа сессий при развитии сети.
Чем OSPFv3 отличается от OSPFv2?
OSPFv2 описан для IPv4, OSPFv3 изначально создавался для IPv6, а затем был расширен для работы с обоими семействами адресов. Механика протокола совпадает, различия касаются формата сообщений и способа привязки к интерфейсам.
Сколько маршрутов выдерживает OSPF?
Точного предела нет, он определяется мощностью процессора и объёмом памяти маршрутизаторов области. На практике внутренний протокол комфортно работает с тысячами маршрутов; при десятках тысяч нагрузка от пересчёта путей становится заметной, и маршруты переносят в BGP.
Нужен ли собственный номер автономной системы?
Для подключения к нескольким провайдерам с собственным адресным пространством — да. Для внутреннего применения BGP, включая фабрику ЦОД, используют номера из частного диапазона, которые не требуют регистрации и не анонсируются наружу.