Найти в Дзене
Кадр за кадром

Выбор протокола для базовой сети в VXLAN

При построении сети VXLAN, какие факторы следует учитывать при выборе протокола базовой сети, такого как OSPF, IS-IS или BGP? Очевидно, что выбранный дизайн должен поддерживаться вашим предпочтительным вендором оборудования. Ваша команда также должна быть способна поддерживать этот дизайн. Хотя я считаю разумным ожидать от сетевого инженера хотя бы базовых знаний в области OSPF и BGP, это не должно быть главным решающим фактором. Давайте рассмотрим различные протоколы, их характеристики и то, как они могут использоваться в качестве протоколов базовой сети в сети VXLAN. Я сравню OSPF с BGP, так как IS-IS предоставляет все преимущества OSPF с некоторыми дополнительными функциями, но имеет меньшую поддержку со стороны вендоров и менее известен большинству инженеров. Пример L3 топологии и Spine-Leaf Архитектуры OSPF — это протокол состояния связей, который строит Базу Данных Состояний Связей (LSDB) и использует алгоритм Кратчайшего Пути Первым (SPF), основанный на работе Дейкстры, для вы
Оглавление

При построении сети VXLAN, какие факторы следует учитывать при выборе протокола базовой сети, такого как OSPF, IS-IS или BGP? Очевидно, что выбранный дизайн должен поддерживаться вашим предпочтительным вендором оборудования. Ваша команда также должна быть способна поддерживать этот дизайн. Хотя я считаю разумным ожидать от сетевого инженера хотя бы базовых знаний в области OSPF и BGP, это не должно быть главным решающим фактором. Давайте рассмотрим различные протоколы, их характеристики и то, как они могут использоваться в качестве протоколов базовой сети в сети VXLAN. Я сравню OSPF с BGP, так как IS-IS предоставляет все преимущества OSPF с некоторыми дополнительными функциями, но имеет меньшую поддержку со стороны вендоров и менее известен большинству инженеров.

Пример L3 топологии и Spine-Leaf Архитектуры

OSPF

Обзор протокола:

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

Установление соединения и передача пакетов протокола:

OSPF передает пакеты через IP с использованием протокола IP 89. Он может отправлять пакеты как в режиме одноадресной, так и многоадресной передачи. При работе в режиме точка-точка, что является распространенным сценарием в сети VXLAN, он использует только локальную многоадресную передачу для отправки пакетов. OSPF устанавливает связь с непосредственно подключенными устройствами, которые также работают по OSPF. В сети типа "лиф-спайн" лиф (leaf) будет формировать связь со всеми спайнами, которых обычно немного — чаще всего два или четыре. Спайн же сформирует связь со всеми лифами.

Нумерация:

OSPF может работать как на ненумерованных, так и на нумерованных линках. Возможность работы на ненумерованных линках может сэкономить ресурсы при управлении IP-адресами, поскольку необходимо настраивать IP-адреса только на loopback-интерфейсах.

Масштабируемость:

При рассмотрении масштабируемости учитываются такие факторы, как количество поддерживаемых маршрутов и количество поддерживаемых устройств. Хотя OSPF является внутренним протоколом маршрутизации (IGP) и, следовательно, не предназначен для передачи миллионов маршрутов, в сети VXLAN обычно передаются только loopback-адреса и, возможно, некоторые адреса линков, что делает количество маршрутов небольшим. Главное соображение для OSPF — это количество адъюнкций (подключений) и необходимость флудинга. Количество адъюнкций на лифах будет низким, так как они подключены только к спайнам. На спайнах количество адъюнкций будет выше, но, учитывая количество портов на спайнах, каждый спайн, скорее всего, будет подключен только к 30–40 лифам. Это относительно большое количество адъюнкций, но оно всё равно не должно вызывать проблем. Существуют сети провайдеров с сотнями или тысячами устройств в одной зоне, хотя количество адъюнкций на одно устройство обычно ниже.

Сходимость:

OSPF может очень быстро сходиться. На основе событий, таких как обрыв связи, он будет флудить обновления, чтобы активировать другие устройства на выполнение SPF. В центре обработки данных, где всё подключено без промежуточных устройств, двунаправленное обнаружение отказов (BFD) строго говоря не требуется, но OSPF можно настроить для использования BFD. Предположим, есть сеть с двумя лифами, L1 и L2, и двумя спайнами, S1 и S2. Трафик течёт между L1 и L2 через S1. Линк от L1 до S1 обрывается. S1, очевидно, осведомлен об этом и флудит обновление, запуская SPF. L2 запустит SPF на основе обновленной информации и перестанет использовать путь к S1, который ранее был установлен как маршрут ECMP. Флудинг LSA, выполнение SPF и аннулирование маршрута должны легко выполняться за доли секунды.

Политика:

OSPF не предлагает много возможностей в плане инженерии трафика или фильтрации. Поскольку это протокол состояния связей, все устройства должны иметь одинаковое представление (LSDB) зоны. В целом, в базовой сети нет большой необходимости в политике. Она должна просто обеспечивать маршрутизацию между loopback-адресами и поддерживать маршруты Equal Cost Multi Path (ECMP).

Поддержка:

OSPF — это протокол, который должен быть доступен на любом устройстве и поддерживаться вендорами. Это также протокол, с которым каждый сетевой инженер должен иметь хотя бы какой-то опыт. Настройка его в качестве базового протокола в сети VXLAN тривиальна. Это вопрос всего нескольких строк конфигурации. Также он не требует большого количества настроек в отличие от BGP.

Возможность шаблонизации:

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

BGP

Обзор протокола:

BGP — это протокол вектора путей, наиболее известный своим использованием в интернете, но также широко применяемый в корпоративных сетях и, например, в MPLS VPN.

Адъюнкции и передача пакетов протокола:

BGP устанавливает соединения (пиринг) с соседями, которые были специально настроены. Это происходит через TCP порт 179. Он использует только одноадресную передачу для отправки своих пакетов.

Нумерация:

Поскольку BGP использует одноадресную передачу, он не может выполнять начальное обнаружение и передачу пакетов так, как это делает OSPF, который может использовать многоадресную передачу. Кроме того, BGP требует явной настройки соседей, если не используется функция, где BGP прослушивает соседей в определенном диапазоне IP-адресов. Можно сказать, что BGP работает на ненумерованных линках, если используется RFC 5549 (объявление префиксов IPv4 через IPv6 Link Local Address (LLA)), хотя это технически неверно, поскольку IPv6 локальный адрес всё же является IP-адресом. Однако это устраняет необходимость настройки IPv4-адреса. Другой важный момент заключается в том, что BGP также требует использования номера автономной системы (AS).

Масштабируемость:

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

Сходимость:

BGP имеет печально известные медленные таймеры по умолчанию. Например, на устройствах Cisco интервал проверки активности составляет 60 секунд, а время удержания — 180 секунд. Однако это не должно иметь значения, если есть событие обрыва связи, чтобы таблица маршрутизации могла быть обновлена и сгенерированы BGP-обновления. Я ожидаю, что BGP будет немного медленнее, чем OSPF, но всё равно возможна сходимость за доли секунды. BGP также поддерживает использование BFD.

Политика:

Здесь BGP действительно выделяется. У него есть несколько атрибутов, которые можно манипулировать, таких как локальное предпочтение, и он поддерживает сообщества (communities), фильтрацию и многое другое. Насколько это полезно в базовой сети, спорно.

Поддержка:

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

Возможность шаблонизации:

Здесь BGP находится в невыгодном положении. Как правило, он требует нумерованных линков. Также требуется использование AS-номера. В зависимости от типа дизайна может использоваться уникальный ASN для каждого лифа. Это означает, что вам нужно назначить несколько уникальных параметров, таких как IP-адреса и ASNs, каждому устройству.

Итог:

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

Какой протокол лучше?

Главная цель этой статьи — сравнить и противопоставить протоколы, чтобы показать, что ни один протокол не лучше другого. Я надеюсь, что, читая такие посты, я смогу заставить вас задуматься о различных аспектах с аналитической точки зрения, а не просто копировать то, что делают другие, например, гипермасштабируемые компании. Часто можно услышать замечания вроде "BGP масштабируется лучше!" Но в сети, где спайн имеет 32 порта, а лиф — 48 портов, это дает вам сеть, состоящую из 32 лифов с общим количеством 1536 портов. Я не знаю многих предприятий, которым нужно больше 1536 физических серверов. Это очень много виртуальных машин! Другой аргумент, который я часто вижу, заключается в том, что легче использовать один протокол вместо двух? Но так ли это на самом деле? Если учесть, что OSPF более известен большинству инженеров, что создает четкое разделение между базовой и оверлейной сетью. Когда OSPF не требует "нерд-настроек", как BGP, чтобы сделать его более похожим на IGP.

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