Наша почта:
В Москве:
РФ (звонок бесплатный):
Сеть, которая не падает: практические архитектуры высокой доступности для небольших компаний
{ Основатель и технический директор в IntegraSKY }
Роман Козлов

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

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

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

Типовая исходная ситуация

Достаточно часто в малом бизнесе картина выглядит так: никакого резервирования нет вообще. Один провайдер. VPN подключается к внешнему IP-адресу. Сервер стоит в офисе. Коммутация — без резервирования. Примерное время простоя при аварии — около суток.

Минимальный набор мер

  • Подключение резервного провайдера.
    Как бы операторы ни старались, падают все — провайдеров, которые не падают никогда, не существует. С магистралями тоже периодически бывает интересно. Ещё пару лет назад в качестве резерва вполне годился LTE; сейчас к нему есть вопросы, но альтернатив в сегменте СМБ зачастую просто нет.
  • Резервное оборудование.
    Даже просто маршрутизатор той же модели, лежащий на полке без настроек, снижает время простоя примерно вдвое. Полдня всё равно уйдёт на то, чтобы приехать, разобраться, что происходит, и найти резервные копии конфигураций — если они найдутся. Коммутатор в запасе нужен по той же логике.
  • DNS для подключения пользователей вне офиса.
    DNS придумали ещё в 1980-е, но пользоваться им по-прежнему научились далеко не все. Использовать IP Cloud и прочие подобные сервисы динамического DNS не рекомендуется: они предполагают отсутствие статического IP-адреса и зависимость от внешнего провайдера сервиса. Лучше обычный классический DNS.
Даже такой набор мер сокращает время простоя примерно до полудня — пока доехали, пока разобрались, пока расчехлили резервный маршрутизатор.

Резервирование операторов связи

Механизмы делятся на два класса: active/backup, когда всегда работает один оператор, и схемы с двумя постоянно активными подключениями.

При одном маршрутизаторе доступны следующие варианты:
  • Проверка доступности шлюзов (Check Gateway)
    Рекурсивная маршрутизация. Классический механизм, не требующий практически ничего. По этой теме есть известная статья «Failover without scripting», которая когда-то входила в штатную документацию.
  • Полноценный Dual WAN
    С policy routing (далее — PR), плюс Check Gateway, плюс скрипты — аналоги IP SLA, Netwatch и т. п.
  • Динамическая маршрутизация поверх VPN плюс routing-фильтры
    Если есть VPN до дата-центра или другого статичного объекта, протокол маршрутизации, поднятый поверх туннелей, отвечает на глобальный вопрос: есть ли связь. Работает он на высоком уровне, поэтому отказ протокола — чёткий признак того, что один из каналов лёг. Нюанс: потребуются routing-фильтры, чтобы маршрут до пира шёл не в туннель, а вне его. Скриптов схема не требует, а время реакции при использовании BFD получается очень небольшим — именно такую схему часто применяют на транспорте, то есть на движущихся объектах.
  • VRF
    Классический вариант. С одной стороны, всё работает и удобно; с другой — приходится «приседать» с менеджментом железок и с размещением сервисов в рамках VRF. Для ряда вендоров эта схема будет более естественной.
  • BGP
    Если инфраструктура доросла до BGP — стыки с операторами, автономная система и так далее — сам бог велел.
  • IPv6
    Здесь нужно учитывать, что белые адреса оказываются прямо на хостах. Инструментарий: NAT66 (NAT в IPv6 существует, хотя об этом принято забывать), Netwatch, Check Gateway, а также управление Router Preference в Router Advertisement — при падении оператора его доступность проверяется, и при недоступности приоритет меняется. При внедрении IPv6 подобных сюрпризов и нюансов будет достаточно.
ECMP и его спецэффекты

ECMP — это схема active/active. Если прямого стыка с операторами связи нет, в полный рост встают проблемы с NAT: на части сервисов периодически меняются внешние IP-адреса. Балансировку между двумя внешними каналами следует применять с большой осторожностью: стоит протестировать, как ведёт себя IP-телефония, банковские приложения и прочие чувствительные сервисы. Для торрентов схема великолепна, но в корпоративной сети это вряд ли актуальный сценарий.

Не стоит делать минимальную скорость на резерве. Показательный случай из практики: у клиента корректный BGP-стык, всё как положено. Падает основной оператор — потери около 60 %. Выясняется, что на основном канале полтора гигабита, а на резервном — 50 мегабит, «потому что экономим». Два часа ушло на звонки оператору, чтобы расширить резервный линк.

При двух операторах гораздо гибче не ECMP, а policy routing. Да, его не любят и считают костылём, но он позволяет гораздо более гранулярно управлять тем, какой трафик в какого оператора уходит.

Идеальные условия

По возможности стоит требовать статические IP-адреса без DHCP и без VPN-клиентов от операторов связи: это лишний оверхед. При DHCP или статическом адресе железка показывает производительность, близкую к заявленной в даташите; VPN-клиент от оператора даёт падение производительности примерно вдвое.

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

Резервирование маршрутизатора

Простейшая схема — VRRP плюс два канала в разных маршрутизаторах. Активность провайдера проверяется, при отказе VRRP на соответствующем узле выключается, мастер переходит на соседа. Базово всё работает из коробки, без сложных схем с policy routing.

Для балансировки схема заметно усложняется: ECMP, policy routing, передача трафика между маршрутизаторами, вопросы connection tracking и stateful firewall, обработка invalid-пакетов (raw-таблица, notrack и т. д.). Те же вопросы возникают и при BGP на двух маршрутизаторах: при полноценном stateful firewall придётся разрешать пакеты, возвращающиеся не на основной маршрутизатор.

Если сервисы опубликованы на адресах оператора, при его падении они станут недоступны. Входящий трафик резервируется через DNS. При серьёзном дисбалансе каналов (например, гигабит и 50 мегабит) внесение нескольких A-записей даст негативный эффект: DNS работает по round-robin, и каждый второй клиент попадёт на канал, где скорости не хватит. Выход — скрипты, обращающиеся к API DNS-провайдера и вносящие изменения при падении основного оператора. Схема стандартная, и российские DNS-операторы — Яндекс, RU-CENTER и другие — её вполне поддерживают.

Аппаратная маршрутизация

Если нужен трафик между VLAN на максимальной скорости, от VRRP приходится отказываться сразу — это частый кейс. Взамен используется проверка доступности соседа плюс скрипт включения IP-адресов. Нюанс IPv4 — локальные ARP-таблицы клиентов: они какое-то время остаются необновлёнными, и время сходимости зависит от каждого клиента. Классический симптом: после возврата основного канала трафик по-прежнему идёт через резервный маршрутизатор, потому что в ARP-таблице клиента остался его MAC-адрес. Решается отправкой gratuitous ARP через генератор трафика; готовые скрипты, которые сами вытаскивают MAC-адреса из интерфейсов, уже существуют.

Если трафик приходит на резервный маршрутизатор со вторым каналом снаружи, простейший способ довести его до локальной сети — source NAT в её сторону, без policy routing. Если требуется видеть исходные внешние адреса, придётся строить policy routing между своими же маршрутизаторами, рассматривая второй маршрутизатор как внешний канал.

Два линка в один VLAN

Схема, которую операторы связи любят, поскольку она позволяет продать больше. Тем не менее она даёт лучшую работу сети при отказах. VRRP-интерфейсы можно поставить как в сторону операторов, так и вниз, в сторону абонентов. В сторону оператора для безопасности имеет смысл настроить аутентификацию VRRP-группы, чтобы VRRP-пакеты не передавались между маршрутизаторами в сети оператора и схема «не светилась». У оператора потребуется взять минимум сеть /29. Для схем active/active на каждом маршрутизаторе понадобится policy routing — сложнее и трудозатратнее, но результат интереснее.

Для сохранения аппаратной маршрутизации (старшие маршрутизаторы, часть коммутаторов в роли маршрутизаторов) от VRRP отказываются. Взамен появляется возможность использовать аппаратную маршрутизацию в том числе в сторону оператора, причём вместе с NAT: аппаратный FastTrack позволяет сохранить stateful firewall и NAT. Из минусов — интерфейсы операторов придётся добавить в общий мост, настроить соответствующие VLAN и обезопасить L2 со стороны оператора (BPDU Guard, edge-порты и прочее). Взамен — производительность, близкая к скорости интерфейса.

Резервирование удалённого VPN-клиента

Главный инструмент — снова DNS. VPN должен подключаться по имени; несколько записей в глобальном DNS прекрасно работают как с классическими, так и с вендорскими решениями.

В OpenVPN можно указать несколько серверов, которые перебираются по round-robin. Известны реализации, доработавшие этот механизм через SRV-записи: клиент получает весь пул VPN-серверов и знает, куда подключаться в конкретный момент. Из бесплатных вариантов под Windows — CMAK: специализированный пакет, позволяющий собрать VPN-подключение с несколькими серверами и перебором по round-robin.

При серьёзном дисбалансе каналов без скриптов через API DNS-провайдера не обойтись.

Резервирование удалённого офиса

По большому счёту удалённый офис — такой же клиент remote access. Если допустима вероятность того, что VPN просто оборвётся и переподключится в момент проблемы у основного оператора, достаточно классической схемы с DNS и несколькими A-записями.
Более сложный вариант:
  • Держать разные протоколы.
    Хорошая практика последних лет — SSTP на резерве с большой дистанцией. Основой может быть GRE, L2TP с IPsec, а SSTP страхует на случай, если по неведомой причине основные протоколы перестанут работать: он реже отказывает.
  • Маршруты-заглушки.
    Для удалённого офиса делаются blackhole-маршруты на локальные сети RFC 1918. Это нужно, чтобы при отказе туннелей локальный трафик не ломился в интернет. Сам по себе такой трафик не страшен — оператор решит, что с ним делать, — но для протоколов без состояния возникает риск зависнуть в connection tracking, который затем придётся чистить.
  • Пары туннелей через разных операторов.
    При двух операторах с каждой стороны туннели строятся по принципу «каждый с каждым»: с каждого канала до каждого. С туннельным IPsec сразу возникают политики IPsec, которые плохо дублируются, а без VTI-интерфейсов гибко управлять маршрутизацией не получится. На выбранных активных туннелях можно поднять ECMP — здесь он показывает себя великолепно, поскольку NAT нет, а connection tracking работает между своими же устройствами. Результат — двукратный рост скорости между офисами.
  • Динамическая маршрутизация.
    Если сложные протоколы незнакомы, остаётся RIP: он прост, его достаточно просто включить, а для ускорения сходимости к нему можно добавить BFD.

Резервирование L2-коммутации

Частая операторская схема — кольцо коммутаторов: гирлянда, замкнутая ещё одним линком снизу. Резервирование обеспечивается протоколами семейства STP. Экономически выгодно, но коммутация часто неоптимальна, а в STP нужно разобраться на 100 %: расставить приоритеты на корневом мосте и желательно на линках, чтобы топология собиралась предсказуемо. Диагностировать и управлять этим сложно. Главный минус: пропускная способность всей коммутации фактически сводится к скорости одного верхнего линка, и современные коммутаторы отдают лишь малую часть своих возможностей.

Классическая двух-трёхуровневая модель никуда не делась, и Collapsed Core великолепно себя показывает. При небольшом трафике «запад — восток» между пользовательскими VLAN их можно дотащить прямо до маршрутизатора. На старших маршрутизаторах включается аппаратная маршрутизация, скорости достигают 10 Гбит/с и более. Управление доступом и межсетевым экранированием удобно, поскольку всё концентрируется на верхнем маршрутизаторе. STP при этом сохраняется — он поддерживает резервные линки и обеспечивает отказоустойчивость. На клиентских портах включаются edge-режим (аналог fast forward), BPDU Guard и прочие защиты. Межкоммутаторные линки в 2026 году разумно строить на десяти гигабитах.

Без необходимости не стоит браться за MSTP и MLAG.

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

MLAG — технология любопытная, но способна неожиданно «отстрелить» трафик: встречаются потери в 50 % на одном из верхних линков. Прежде чем внедрять, её нужно очень чётко оттестировать: подёргать провода между MLAG-парой, поотключать и повозвращать питание разными способами, посмотреть, всё ли отработает корректно. И, разумеется, придётся внимательно читать changelog прошивок.

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

Рассматриваются только решения с аппаратной маршрутизацией. VLAN терминируются на агрегации или на ядре. Отказ шлюза решается скриптами с Netwatch и оповещением ARP. MLAG и VRRP с аппаратной маршрутизацией несовместимы.

Для самых сильных инженеров есть вариант опустить L3 прямо до коммутатора доступа и терминировать VLAN на нём. Поддержки IP unnumbered в этом случае нет, поэтому сети придётся дробить на мелкие сегменты средствами VLSM — по небольшому сегменту на каждый коммутатор доступа. Бонус: между коммутаторами можно собирать ECMP-пары, использовать динамическую маршрутизацию — OSPF или BGP — и получить суммирование скорости без характерных для MLAG рисков. По сути, это подход IP-фабрики. Из нюансов — DHCP relay на L3-коммутаторах и общий рост стека технологий: чем больше трафика, тем больше придётся освоить.

Сети серверов

Если сервер не утилизирует один интерфейс целиком, не стоит выдумывать себе приключения. Раскладка хешей, MLAG и подобные механизмы зачастую провоцируют аварии, а не отказоустойчивость. Классическая история: «зарезервировались так, что в итоге упали» — настроили сложную схему, она обрушилась, и полдня ушло на выяснение причин.
  • Active-backup bonding со стороны сервера — предельно простая схема, которая просто проверяет живость интерфейса и работает безотказно.
  • 802.3ad (LACP) в связке с MLAG со стороны коммутаторов — как раз тот случай, который в отдельных ситуациях провоцирует аварии: склейка «мозгов» коммутаторов и сборка MLAG-пары достаточно сложны, возможны нюансы на уровне чипов.
  • STP на конечном сервере — вполне рабочий вариант. Нюанс для Linux-серверов и платформ виртуализации: в базовом мосте RSTP нет, есть STP. Работать будет медленнее, но он обратно совместим с RSTP. Затащить туда MSTP теоретически можно, но потребуется самосборный модуль.
  • IP-фабрика тоже возможна. Однако если её разворачивают на маленьком проекте, есть вероятность, что преследуются интересы не бизнеса, а собственного резюме. Без необходимости IP-фабрика, ECMP, VXLAN и EVPN в небольшой сети избыточны.
При разрастании инфраструктуры складывается базовая сводная схема: резервирование серверов, резервирование клиентов на уровне «отказал один коммутатор — пользователи на других продолжают работать», плюс ЗИП на пользовательские устройства. Если отдельный пользователь генерирует выручку сопоставимо с сервером, его есть смысл резервировать двумя линками. Но это уже вопрос денег и того, что проект может себе позволить.
Финал
Чем больше сеть, тем больше технологий приходится осваивать и применять для резервирования. На маленькой сети вполне рабочей схемой остаётся «резервный маршрутизатор в коробке». Это как внедрение CRM в компании из пяти человек: возможно, CRM у них уже есть — на уровне устной коммуникации и записи в журнале, и работает она быстро и эффективно. Не нужно учиться строить EVPN/VXLAN-фабрику на сети из двадцати человек. Решения следует применять по силам и по задачам компании.
В Москве:
РФ (звонок бесплатный):
Наша почта:
GetNet
Остались вопросы?
Группа компаний VoxLink © 2011-2026