Наша почта:
В Москве:
РФ (звонок бесплатный):
Гибридное DMVPN облако или как мы Еltex ESR и Cisco ISR подружили
{ Сетевой инженер в Банк ДОМ.РФ }
Никита Николайчук

Видео доклада

Презентация спикера

Гибридное DMVPN облако или как мы Еltex ESR и Cisco ISR подружили
DMVPN нередко называют «дедушкой SD-WAN», но актуальности он не потерял: технология по-прежнему активно внедряется в самых разных компаниях. Российский вендор Eltex реализовал DMVPN во всех трёх фазах и обеспечил совместимость с оборудованием Cisco Systems. Это значит, что гибридное мультивендорное облако построить можно, и работать оно будет — с рядом нюансов, о которых и пойдёт речь.

Общая концепция

DMVPN — открытый стандарт, поэтому реализовать его может любой вендор. В рассматриваемом сценарии используются mGRE (multipoint GRE) и NHRP, в качестве Control Plane выбран BGP, для шифрования — IPsec.

Почему именно BGP? EIGRP отпадает практически автоматически: он реализован только у Cisco (и во FRR), и большинство вендоров смотрит на него с опаской. У OSPF, во-первых, на момент внедрения были свои нюансы на стороне Eltex, во-вторых, есть ограничения по масштабируемости, а при нескольких каналах им тяжелее управлять трафиком и расставлять приоритеты маршрутов. BGP же даёт полноценный Best Path Selection: любым атрибутом можно управлять — и жить замечательно.

Изначально в дизайне закладывается Front Door VRF, как и рекомендует Cisco. Причина проста: с одной стороны, оверлейный default нужно получать от хаба, с другой — на споках в Underlay прописывается default на провайдера, и эти два маршрута нужно развести между собой. Front Door VRF не является обязательным даже при необходимости оверлейного default, но альтернатив немного:
  • прокси-сервер: все устройства за споком ходят через прокси, а с хаба отдаётся, например, агрегат 10.0.0.0/8;
  • статический маршрут на хаб — вариант только для первой фазы, когда споки между собой напрямую не взаимодействуют и споку, кроме хаба, ничего знать не нужно.
Напомним и про фазы.
Во второй фазе споки начинают взаимодействовать напрямую и получают full view таблицы маршрутизации по всем подсетям других споков. В третьей фазе эти записи появляются динамически, по потребности: туннель поднялся, пару часов поработал и благополучно развалился.

Архитектура и резервирование

  • Предлагаемый подход:
    Провайдера и два спока, хаб также зарезервирован. Каждый спок подключается по принципу single cloud — сразу к обоим хабам. В оверлее получается четыре туннеля, и такая схема защищает от отказа провайдера, спока и хаба. Хабы при этом могут быть георазнесены — например, стоять в разных ЦОД или в разных зданиях головного офиса.
  • Дальше выбор за архитектором:
    Можно сделать ECMP, можно назначить одного провайдера приоритетным, а второго — резервным (это ближе к жизни). В качестве второго провайдера отлично работает LTE-модем — в том числе и на оборудовании Eltex.
Если требуется, чтобы весь трафик уходил через основной хаб и основного провайдера, наиболее удачным инструментом управления оказывается AS-Path: он позволяет управлять и исходящим, и входящим трафиком через route-map на in/out с AS-Path prepend. Выстраивается иерархическая структура автономных систем, при которой падение первого туннеля переводит трафик на второй, а падение основного провайдера целиком — на соседний спок и один из его туннелей до одного из хабов.

BGP: listen range и AS-range

В Eltex реализована фича, давно знакомая по Nexus, — BGP listen range. Изначально выбиралась архитектура iBGP: все споки и хабы в одной AS, потому что так удобнее конфигурировать хаб — настроил listen range на подсеть, и споки добавляются без дополнительной конфигурации.

На последних версиях прошивки Eltex поддерживается ещё и AS-range. В расширенном пространстве AS это делается без проблем, и появляется возможность реализовать сценарий eBGP: каждый спок — в своей AS, либо споки одного офиса в одной AS, споки второго офиса — в другой. Любой сценарий реализуется простым добавлением пула AS-range, если хабы построены на Eltex.

Во второй фазе при концепции iBGP хабы выступают route-реflector'ами и корректно зеркалируют маршрутную информацию.

Какая фаза нужна

Первая, вторая и третья фазы полностью совместимы между вендорами. Более того, совместим и Per-Tunnel QoS.
При этом третья фаза во многом была продиктована особенностями архитектуры Cisco: спецификой CEF и нехваткой TCAM — по сути, не хватало RIB. У Eltex даже самые младшие модели сегодня спокойно переваривают миллион записей, причём это заявлено в datasheet, а не получено «сверху». Отсюда практический вывод: если третья фаза уже используется — её и нужно сохранять для совместимости. Если её не было — возможно, она и не нужна.
Отдельно стоит помнить об ограничении третьей фазы:
до MLAG или стека агрегации долетает только агрегатный маршрут с хаба. Spoke-to-spoke маршруты вниз не опустятся, поскольку источником маршрутной информации является NHRP, а NHRP в BGP не редистрибьютируется.

IPsec: pre-shared key или сертификаты

В классическом варианте Cisco на споках в ISAKMP указывался адрес 0.0.0.0 0.0.0.0, что позволяло устанавливать соседство с любыми хабами и споками по одному ключу из конфигурационного файла.

На Eltex это работает иначе. Требуется отдельный IPsec-профиль до HUB1, отдельный — до HUB2 и отдельный — до всех остальных споков, сколько бы их ни было: сто, двести, триста. То есть настраиваются три профиля, а адреса хабов указываются вручную. Исправление обещали в конце 2025 года, но профиля в стиле Cisco в новых релизах пока не появилось.
Что касается сертификатов, на момент внедрения выбор был сделан в пользу pre-shared key.

Причина: функционала OCSP-сервера тогда не было, а CRL приходилось прошивать руками на каждую железку — ни на какой CRL-сервер устройство не ходило. Это плохо масштабируется. Если цель — максимально просто интегрировать Eltex и Cisco в DMVPN-облаке, оптимальным вариантом будет PSK. Идти в сторону сертификатов тоже можно: короткий ответ — работать будет.

Сеть офиса: два спока и агрегация

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

При использовании eBGP (каждый спок — в своей AS) хороший вариант — дотянуть BGP до самого уровня агрегации. Если там стек или MLAG, на нём тоже поднимается BGP: либо два port-channel, либо четыре и BGP-соседства.

Дотягивать BGP до агрегации удобно ещё и потому, что во всей сети остаётся единый протокол динамической маршрутизации. Альтернатива с OSPF выглядит хуже: при редистрибьюции OSPF в BGP и обратно на споках поднимаются два протокола маршрутизации, но главное — теряется управляемость. Например, задача «увести трафик со спока 1 на спок 2 целенаправленно» (на интерфейсе провайдера побежали ошибки или дропы, но канал не упал) в BGP решается AS-Path prepend в одном месте, и Best Path Selection перестраивает всё вплоть до агрегации. В OSPF для этого потребуется костыль в виде track-объекта, ухудшающего метрику, — довольно громоздкая конструкция.

L3 to Access

Более современный подход — L3 to Access, когда уровень агрегации фактически «проглатывается»: стек (здесь безальтернативно именно стек, а не MLAG) ставится сразу на доступе, до него дотягивается BGP, и к нему же подключаются пользователи.

Модели здесь младше и стоят существенно дешевле: спок ESR-15R, а на стеке — 24-портовые MES, собранные в пару на случай отказа одного из устройств. Для офиса на 20–30 пользователей получается отличное решение. Лицензия на BGP для MES приобретается отдельно, но проблема невелика.
Приятная деталь:
на младших моделях BFD работает на всех юнитах стека, так что его можно поднимать и с мастера, и с backup-коммутатора. Soft reconfiguration тоже поддерживается — не придётся перезапрашивать маршруты после правки route-map.
Ограничение у L3 to Access простое и банальное: у младших моделей ограниченное количество портов, особенно 10-гигабитных SFP+. Если этажей несколько, пусть даже небольших, такой дизайн не собрать — нужна агрегация, куда эти этажи будут сливаться. Если этаж один, пусть даже на 300 человек, можно собрать стек до 8 устройств и подключить его в ESR-30 парой линков: переподписка будет, но для офисной сети это не страшно. То есть выбор зависит не столько от масштаба офиса, сколько от его физической структуры. MLAG при этом — вариант «с запасом»: туда впоследствии можно добавить и серверы, и контроллеры, и что угодно ещё.

Per-Tunnel QoS

Типовой вопрос: как безболезненно смигрировать старое облако на Cisco с EIGRP на новую архитектуру с BGP и Eltex? На практике автоматизация здесь довольно простая, без ухищрений.
Конфигурация на все офисы готовится заранее по шаблонам и скриптам, а затем просто перезаливается файлами. Cisco ISR отлично загружаются из-под нового startup-config, залитого файлом. Приятная особенность ISR: даже если в конфиге написано что-то некорректное, устройство это просто проглотит и не отобразит в show run после перезагрузки. Переживать, что маршрутизатор не поднимется из-за пропущенного символа, не нужно. Таким образом всю архитектуру можно переработать и за ночь перевести разом сотню-другую офисов, наблюдая, как железки одна за другой подключаются к новому облаку.
Стоит завести шаблоны конфигурации — достаточно скрипта на три строчки, куда вбиваются параметры нового офиса: адрес провайдера, IP-адресация, адрес туннеля. Шаблон разливается, и готовая конфигурация сразу бутует ESR в офисе. Не Zero-Touch, но One-Touch Provisioning.

Для Eltex стоит посмотреть в сторону ECCM — системы управления, отчасти похожей на Cisco Prime. Там можно обновлять устройства, конфигурировать шаблонами, вести инвентаризацию и разворачивать мониторинг как некоторую альтернативу Zabbix. В целом работает неплохо.

Отдельного упоминания заслуживает система commit/confirm на Eltex ESR: сделал commit, дрогнула рука — через пару минут всё откатывается, и можно спокойно начинать заново. У Cisco в этом плане есть reload in, но перезагружать железку раз за разом обычно ничем хорошим не заканчивается.

Нюансы из практики

  • Uplink со стека.
    Допустим, в офисе стек из трёх и более коммутаторов, включён Non-Stop Forwarding, вверх собран port-channel, и в него добавлено по интерфейсу с каждой железки. Консистентное хэширование на младших моделях Eltex, естественно, не работает — используется базовый хэш. Теперь представим, что мастер умер. NSF заморозил всё состояние L2 — LACP, STP — и это здорово. Но пока backup-устройство не доинициализируется до мастера, пересчитать хэши некому: при четырёх коммутаторах 25% трафика будет просто дропаться, несмотря на работающий Non-Stop Forwarding.
  • Hold-таймер BGP.
    По выводу show ip bgp neighbors видно текущее значение hold-таймера. Логика подсказывает, что при keepalive 60 и hold 180 значение не должно опускаться ниже 120, а если опустилось — потерян как минимум один keepalive и в сети есть проблемы. Как подсветила техподдержка Eltex со ссылкой на RFC, в действительности стартовое значение выбирается как случайное число из диапазона от 0,75 до 1,0 от сконфигурированного hold. То есть при hold 180 отправной точкой может стать любое значение от 145 до 180 секунд, и текущее значение 85 секунд — вполне адекватная цифра: ничего не потерялось, просто изначально был выбран hold чуть ниже. То же справедливо и для агрессивных таймеров вроде 3/9 или 13/39 — на суть это не влияет.

MTU, MSS и мониторинг

Рекомендации по MTU и MSS связаны скорее с характеристиками каналов, чем с конкретной платформой — ESR это или ISR. Проходящий data-трафик подрезать необходимо, поскольку IPsec съедает часть полезной нагрузки. Насколько именно — зависит от используемых в IPsec протоколов и стойкости шифрования. Важно другое: MTU должен быть подрезан синхронно и одинаково на всём облаке — туннели-то динамические.
С мониторингом у Eltex ситуация хорошая: SNMP реализован подробно. Мониторить можно состояние туннелей, BGP-сессии и количество префиксов, приходящих с офисов на хаб. Если число префиксов просело — значит, где-то что-то не то. Таким образом можно двигаться в разные стороны, и с мониторингом всё будет замечательно.

DMVPN или SD-WAN?

Сравнение напрашивается само собой. В России SD-WAN реализуют лишь несколько вендоров, да и в мире их не так много. Чтобы покупать SD-WAN, нужна стопроцентно корректная поддержка вендора — не в том формате, в каком сейчас складываются отношения с зарубежными коллегами. SD-WAN — это коробка, о внутренностях которой сетевая экспертиза заказчика не знает почти ничего: вендор реализовал её так, как он это видит.
  • DMVPN
    набор открытых стандартов. BGP и NHRP можно изучить по курсам и RFC. Именно поэтому Eltex смог сделать так, чтобы его оборудование подружилось с Cisco. Свой SD-WAN Eltex с SD-WAN от Cisco не подружил бы никогда.
  • SD-WAN
    компания серьёзно ограничивает себя в выборе вендора и в собственной экспертизе: при поломке остаётся бежать к вендору и просить починить. Нужно быть уверенным, что вендор стабилен, развивается и будет на рынке завтра, — по сути, ему отдают себя полностью. В случае DMVPN оборудование остаётся полностью в руках инженеров: не подошёл DMVPN — настраивается что-то другое.
Это не значит, что SD-WAN плох:
он современнее, и крупные работающие инсталляции существуют. Просто нужно понимать, что часть экспертизы отдаётся на откуп вендору, а декомпозировать проблему («это провайдер, наше оборудование или неудачно пролитые политики на хосты?») становится тяжелее.
Финал
Мультивендорный DMVPN — это несложно, это не больно, и это работает. Более того, работает неплохо. Все три фазы и Per-Tunnel QoS совместимы между Cisco и Eltex, а гибридное облако из сотни офисов на одном вендоре и десятка на другом строится без экзотики.
Из плюсов Eltex стоит отметить очень качественную техподдержку и документацию: если что-то не работает, об этом написано в явном виде. Из сложностей — обновляться приходится часто: вендор быстро бежит и быстро добавляет функционал, так что сеть нужно регулярно обновлять, чтобы получать нужные фичи.
А нюансы — они всегда были, есть и будут.
В Москве:
РФ (звонок бесплатный):
Наша почта:
GetNet
Остались вопросы?
Группа компаний VoxLink © 2011-2026