Устойчивый канал на базе кластера сотовых модемов (SD-WAN): решаем проблемы выбора маршрутов


    Тесты «в полях»

    Есть коммерческая задача: необходимо быстро подключать сайты к обычной WAN-сети, но делать это там, где в наличии только сотовое покрытие и нет возможности провести кабель или организовать радиорелейный переход до волокна или меди.

    Решение — модемные кластеры. Очевидная проблема решения в том, что каждый из модемов — это отдельный физический канал. Нужно с помощью зубила и какой-то матери объединить их в одно инкапсулированное устройство, которое просто будет отдавать канал. Кроме того, необходимо, чтобы при появлении кабеля не требовалось менять коробку и что-то перенастраивать.

    Из кого выбирать


    Технология называется SD-WAN. Лидерами считаются 3 американских стартапа: Versa Networks, Viptela, Velocloud. Классические производители сетевого оборудования стараются догнать. В частности, Cisco заявляет, что у них 2 решения SD-WAN — iWAN и Meraki. Но при этом пару месяцев назад объявили о покупке Viptela. А Riverbed где-то полтора года назад купил компанию Ocedo для выхода на рынок SD-WAN решений.

    В целом оценивались:

    • Cisco Systems,
    • Huawei,
    • Nuage Networks,
    • Viptela,
    • VeloCLoud,
    • Silver Peak,
    • Versa Networks,
    • Citrix,
    • InfoVista,
    • Riverbed.

    Что получили


    Мы остановились на решении Versa; сначала из-за преимущества в цене. Обычные SDN-решения используются немного для других задач, в частности, для объединения филиалов компаний в одну логическую сеть, видимую всем терминалам и серверам как единое физическое пространство адресации, чем-то похожий на DMVPN от Cisco, но своим блэкджеком в виде ZTP, channel-bundling и SLA. Выбранное решение оказалось чуть более специфичным, и за счет отсутствия fullstack-протоколов классических маршрутизаторов на самой коробке и использования стандартных комплектующих снижена базовая стоимость. Большинство вендоров предлагают купить железо и софт сразу или по подписке, но Versa железо не делает, поэтому софт — по подписке, а железо — у партнеров, которые делают референсные x86 коробки. Для заказчиков модель расходов по мере эксплуатации с каждым годом становится все более удобной. Например, самая маленькая коробка от Versa (на фото выше) стоит не дороже Cisco 800-й серии, но при этом может прокачать через себя 500 Mbps. И это на IMIX трафике, где 90% TCP и 10% UDP и при этом включены IPv4 Routing/Forwarding, IPSecEncryption, Layer 7 Application based traffic steering, CGNAT, NextgenFirewall (NGFW), QOS (Classification and Marking), SLA monitoring, internal service chaining, URL Filtering).


    Концепция SD-WAN

    От SDN взят принцип разделения control и data plane, а также overlay. Control plane — это Director (управление), контроллер (BGP route reflector и IPSEC), Analytics — необязательный компонент, но добавляет прозрачности в сервисы, которые используются на WAN.


    Сравнение тех самых двух коробок

    Логика работы внутри каждой бранчовой коробки.


    Логическая архитектура коробки

    Как устанавливается


    Сравнение такое: у Cisco в конце года в EOS уходит 19хх серия, и её надо будет заменять. То есть обойти (облететь, объездить) физически все точки ногами. Versa позволяет отправить коробку на место любой службой доставки. На месте в железяку надо будет воткнуть модем или кабель с интернетом. Как только железяка почует свежий коннект, она сама построит VXLAN-туннель с контроллером, получит с него IKE и с ним уже построит служебный IPSEC-туннель, через который заберет настройки и получит от контроллеров маршруты всей сети, поскольку, напомню, контроллер — это BGP route-reflector. Все это происходит полностью автоматически.

    То есть на месте справится даже бухгалтер — воткнул кабель, немного магии, заработало.


    Инициализация коробки на новой площадке

    Вот как эта процедура выглядит в англоязычной документации: 1. Branch device comes with stage–Controller’s IP address is the remote IP in IPSec config. 2. Establishes IKE session with controller over VXLAN tunnel. 3. Controller assigns an IP address to the branch device and generates a notification to Versa Director. 4. VD IP address is notified to branch. 5. Branch installs reverse route to VD. 6. VD pushes the post staging configuration to branch device over the IKE session and reboots the branch device.

    Сами настройки — это шаблоны, причем шаблоны с переменными — в них можно включить QOS, shaping, SLA, настройки LAN, правила балансировки по внешним каналам и бондинга этих каналов в одну трубу.

    Если есть большое желание, то можно залезть на коробку руками, производитель пока этого не закрыл, а там, сюрприз, Juniper-like-консоль.

    Тесты



    Прототипы с двумя модемами

    Для эмуляции реальной сети, где часть коробок на кабеле, а часть для LTE-кластерах. В одну железку втыкались 3G-LTE-данглы (в момент фото это были МТС и Мегафон), а во вторую кабель с Интернетом от «Гарса». Модемы объединяются в трубу, проходит передача информации. Железка смотрит трафик, распознает его по приложениям, накладывает политики и критерии по приоритизации.

    После небольшого допила Мегафон и МТС (как на фото) со своими залоченными модемами начали автоматически распознаваться коробками. Синтетический iperf-трафик на 5 сессиях выдавал практически 50/50 балансировку.


    Встроенные в Director функции мониторинга


    Графики загрузки двух LTE-модемов в интерфейсе Director

    Суммарная полоса составляла где-то 50 Мбит, по каждому из модемов в отдельности — 25 Мбит. Встроенные системы аналитики прямо из коробки в риал-тайме выдавали статистику по нагрузке.

    Эмпирически очень удачно получилось с телефонией: например, если бывает одновременно 15 телефонных вызовов, то с первого по восьмой мы пихаем в первый канал, а остальные — во второй с высоким приоритетом (во втором по умолчанию также остальные сервисы офиса типа почты).

    Вторая особенность: в местах, где много дропов на последней миле из-за особенностей загрузки сетей или покрытия, удалось поставить более-менее стабильное соединение.
    Протестировали per-packet-балансировку. Одна TCP-сессия раскидывается на два LTE-интерфейса. Тестировали iperf, одна TCP-сессия, в панели мониторинга видно, что разбивается по двум каналам. То есть на синтетическом трафике работает, далее уже зависит от каждого конкретного приложения, как они себя ведут при такой балансировке. Например, на базе собственного опыта можем подтвердить, что трансляция видео по RTSP через VLC работает отлично. Данную политику можно применять по отдельности для каждого сервиса. То есть сервисы, что хорошо работают при per-packet-балансировке, балансируем попакетно, остальные — per-flow. При этом сами политики раскатываются на коробках по кнопке. Из-за этого best-practice считает делать несколько групп сайтов: тестовые поближе к себе (лучше — в офисе), потом вторая для early-deploy шаблонов и политик и уже основная для продакшна.

    Переключение трафика с одного LTE-модема на другой работает. Тестировали iperf с одной сессией и всё тот же видеостриминг VLC. Вынимаешь тот модем, по которому идёт сессия, происходит небольшая просадка по пропускной способности (iperf показывает падение на 40–60%), видео немного рябит в течение пары секунд, потом всё восстанавливается.

    Особенности Версы


    1. Есть аналитика. Нет внешних систем управления, нет необходимости отдельно мониторить каналы с помощью PRTG и т. д., всё сразу как надо.
    2. Один контроллер может обслуживать любое количество устройств, по сути он web-scale. В частности, для оператора связи или облачного провайдера нет необходимости разворачивать для каждого заказчика отдельное решение SD-WAN в telco-cloud.
    3. При необходимости для важного трафика есть настройка дублирования пакетов по различным каналам для гарантирования доставки контента.
    4. Кроме того, на коробках используются TPM-чипы. Это специальные модули для хранения ключей шифрования на устройствах. На инициализации TPM-модуля создаётся пара ключей — закрытый и публичный. Закрытый ключ не может быть прочитан: нет методов для доступа к нему, но зато есть API для вызова метода шифрования-дешифрования.
    5. Динамические туннели. Когда контроллеры выступают BGP route reflector'ами, то они сбрасывают информацию по маршрутам на конечную железку каждого сайта, а spoke-to-spoke-туннель строится только для появления трафика между сайтами. И это же позволяет обеспечить масштабируемость решения до тысяч сайтов.

    Отличия в классическом site-to-site ipsec и в Versa SD-WAN IPSEC:


    VPN-облако от Versa

    Ещё один важный момент: железки для сотовых операторов стоят в разы дешевле, есть возможность закупаться почти напрямую с крупных заводов. Для этого вендор даёт отмашку заводу на то, чтобы поставлять устройства напрямую крупному клиенту, а потом даёт заводу базовые прошивки. Софт заливается в коробку, коробка приезжает оператору связи или клауд-провайдеру. Провайдер в нее забивает 2 параметра: IP-контроллера и конфиг доступа к Интернету (например, static-IP). Дальше коробка отправляется хоть почтой РФ заказчику. Коробка дальше сама найдет что и как. Совместимость широкая, то есть сразу сервисы IP-телефонии, ВКС — всё может входить.

    Ещё есть стандартные Packet steering (SLA) и bonding — это как раз объединение группы внешних каналов в одну трубу и прописывание логики переключения под каждый сервис. Причем в решении Versa или Riverbed идет автоматическое распознавание какому сервису принадлежит проходящий трафик, чтобы общаться не на уровне сессии «порт-тип», а на уровне «корпоративному Skype for buisness дать приоритет, а обычным видеозвонкам по Скайпу такого не давать». Бондинг же помогает решить проблемы с долгим предоставлением последней мили. Воткнули 3 LTE-модема от разных операторов и решили вопрос с доступностью площадки на 99,999.


    Динамические туннели между коробками на разных площадках

    Резюме


    1. Сейчас мы развернули сервис по настройке этих железок у себя, а не в американском облаке (как у ряда вендоров), чтобы облегчить жизнь компаний РФ.
    2. Это решение очень хорошо подходит сотовым операторам и клауд-провайдерам. Для первых это возможность продать ритейлу (например, сети прачечных, продуктовых или автосервисов), не только канал для отправки, скажем, отчетов и почты, но и дополнительную услугу по управлению трафиком приложений в бандле из каналов, а также разноплановый мониторинг качества работы приложений по имеющимся каналам связи (так называемый управляемый сервис). Кстати, как показывает общемировой тренд, то на текущий момент самые крупные проекты по SD-WAN (количество точек подключения) происходят в финансовом секторе и крупном ритейле.
    3. Очень простой ремонт. Если на другом конце планеты в продуктовом что-то сломалось — продавец перетыкает шнурок из одной «коробки» в другую — и на новую автоматически грузится конфиг старой за 10-15 минут. В общем, при желании справится даже бухгалтер.
    4. Для работы с SD-WAN не нужен айтишник в филиале, для любого из кейсов.

    Всё. Отвечу на вопросы в комментариях. Ну, или пишите на почту: MKazakov@croc.ru
    Метки:
    КРОК 227,42
    №1 по ИТ-услугам в России
    Поделиться публикацией
    Комментарии 20
    • +1
      Сколько стоят такие крутые коробки? Предполагаю, что цена для обычного домашнего использования неподъемная, и еще и привязка к инфраструктуре производителя.

      MKazakov_croc, эти устройства терминируют TCP у себя, или гоняют его в сеть в пакетном режиме? Мне кажется, терминирование TCP на устройстве выиграет в скорости и стабильности во всех случаях, т.к. нет зависимости от алгоритмов congestion control на клиентах, не нужно гонять ретрансмиссии от клиента в сеть, если пакеты теряются, можно быстро их переотправлять, точнее управлять TCP-окном и буферами.
      Низкоуровневый алгоритм для TCP работает на MPTCP, для UDP — на собственной реализации поверх ARQ-протокола KCP

      Я поискал-поискал с полгода, и понял, что для домашнего использования и использования в малом бизнесе никаких вменяемых предложений и нет. Все какое-то либо неудачное, либо крайне дорогое, либо с привязкой к собственным серверам. Решил делать своё, т.к. у меня есть и необходимые знания, и понимание, как это должно работать. Прежде всего меня интересует исходящий канал, поэтому упор делаю на вещиние видео с мероприятий через 3 и более LTE/3G-канала.

      По цене получается около $600, вместе с 3 портативными LTE-модемами Cat 6 с батареей, способной работать около 12 часов. Кому-нибудь такое, кроме меня, интересно?
      • +1
        Было бы интересно open-source решение.
        • +1

          Чем Linux bonding инкапсулированный в кучку L2 vpn-каналов не решение?

          • +2
            Это будет ужасно работать. Bonding предназначен для объединения одинаковых линков, с одинаковой скоростью и одинаковой задержкой передачи. Если вы попытаетесь объединить, скажем, два LTE-канала, один со скоростью 10 мегабит и пингом 50 мс, а другой — 40 мегабит и 100 мс, то вы, в лучшем случае, получите небольшое увеличение скорости самого медленного канала, а обычно — характеристики самого медленного канала.

            Если работать на уровне L2, то нужно учитывать алгоритмы управления TCP-окном и перегрузом. Они не любят, когда пакеты приходят вразнобой, а с каналами с разной задержкой это обязательно будет происходить. Поэтому, нужно либо буферизировать данные и выполнять перестановку пакетов в правильном порядке, либо придумывать другие костыли, либо переходить на уровень L3, с локальным терминированием TCP.

            В общем, это далеко не такая простая задача, какой она кажется.
            • 0
              Для наколеночного решения есть вариант с L3 без необходимости как-то его особо терминировать. Когда-то его настраивал на базе Cisco, там это, если память не изменяет, называется NAT load balancing. Идея простая — часть соединений забрасывается в один канал, часть — в другой, деление возможно, например, по младшим битам src и/или dst адресов или просто в разнобой. При обрыве одного из каналов он выключается из этой схемы — разумеется, соединения приходится переустанавливать. Уверен, аналог можно накатать на iptables под линуксом. Конечно, это не то, про что статья, но имхо наиболее простой вариант для дома.
              • +1
                Ну, это очень просто, достаточно установить OpenWRT и пакет mwan3.
              • 0
                Bonding предназначен для объединения одинаковых линков, с одинаковой скоростью и одинаковой задержкой передачи

                Новый Network Teaming поддерживает веса для каждого порта, их можно изменять в реальном времени, проверяя качество канала внешней утилитой.


                Если работать на уровне L2, то нужно учитывать алгоритмы управления TCP-окном и перегрузом.

                Согласен, но поверх этого можно развернуть какой-нибудь ip-туннель через tcp, он и будет гарантировать доставку каждого пакета.
                По поводу буферизации — идея хорошая, но сходу у меня идей нет на этот счет, может знаете какое-нибудь простое unixway-решение?

                • +2
                  Согласен, но поверх этого можно развернуть какой-нибудь ip-туннель через tcp, он и будет гарантировать доставку каждого пакета.
                  У нас уже TCP, зачем нам пересылать TCP внутри TCP? Дело не в гарантии доставки, а в скорости работы. Существующие распространенные алгоритмы congestion control плохо работают и со скачущим пингом, и вообще с разными каналами. У вас TCP-окно будет подстраиваться под самый плохой канал (и в смысле скорости, и в смысле задержки), и быстрый канал будет утилизироваться на малый процент.

                  Хорошего unix-way-решения в принципе не может быть, оно будет всегда плохое. Корректных решений два:
                  1. MPTCP с локальным терминированием TCP.
                  2. Свой ARQ-протокол с инкапсуляцией в UDP и локальным терминированием TCP.
              • 0
                Дикий оверхед.
              • +3
                как раз вчера глядя на эту статью пошел гуглить, что есть в оперсорсе — нашел github.com/VrayoSystems/vtrunkd но еще не попробовал.
                Сам городил на openvpn + бондинг + маршрутизация + баш-костылики — ужасно работало.

                CC: ValdikSS
                • 0

                  Спасибо за ссылку.

              • 0
                Я думаю интересно многим, как и SOHO, так и «для дома для семьи». Пост бы с примерами конфигурации. Если там ничего секретного нет.
                • 0
                  Домашнее использование – это не про SD-WAN.
                  Наверное единственное, где он может быть применим дома – это дорогие фрилансеры, которые должны гарантированно что-то коммитить в основную инфраструктуру головного офиса, но и тут переткнуть руками LTE модем или проводной канал будет проще.
                  Малому же бизнесу SD-WAN предпочтительнее в виде покупки его у оператора в рамках канала.
                  В случае же покупки у того же cloud provider, что хранит основные ИТ-ресурсы компании, ценник будет выше чем 600$, но проценты, а не в разы.
                  Разворачивание решение SD-WAN целиком на своих ресурсов для малого бизнеса не очень интересно, поскольку это нивелирует его основное преимущество в возможности снизить требования к своим ИТ-специалистам и минимизацию выездов ИТшников на площадки.
                  • 0
                    Это в РФ избалованны быстрым широкополосным доступом. В Европе это не так, зато почти везде можно поймать wifi от какого-нибудь ресторана или учреждения.
                    • 0
                      ценник будет выше чем 600$, но проценты, а не в разы.
                      О, тогда ладно. Коробки для вещания видео стоят от $5000, поэтому я и думал, что и здесь такие цены.
                    • 0
                      Все настройки делаются через Versa Director. Там веб-интерфейс. Настройка интерфейсов, к примеру, выглядит так:


                      Versa Director отправляет этот конфиг на филиальное устройство. На самом устройстве это видится в виде Juniper-подобного листинга:

                      interfaces {
                      vni-0/1 {
                      enable true;
                      unit 0 {
                      vlan-id 0;
                      enable true;
                      family {
                      inet {
                      address 11.11.11.11/24;
                      }
                      }
                      }
                      }
                      vni-0/2 {
                      enable true;
                      unit 0 {
                      vlan-id 0;
                      enable true;
                      family {
                      inet {
                      address 172.89.45.1/24;
                      }
                      }
                      }
                      }
                      vni-0/32 {
                      enable true;
                      unit 0 {
                      vlan-id 0;
                      enable true;
                      family {
                      inet {
                      dhcp;
                      }
                      }
                      }
                      }
                      vni-0/34 {
                      enable true;
                      promiscuous false;
                      unit 0 {
                      enable true;
                      family {
                      inet {
                      address 172.20.20.1/24;
                      }
                      inet6;
                      }
                    • 0
                      Для домашнего использования, возможно, действительно окажется дороговато. Целевая аудитория SD-WAN это энтерпрайз с большим количеством удалённых площадок.
                      Цена опять же сильно зависит от функционала, который вы приобретаете. У Versa можно выбирать из Basic/Advanced SD-WAN, NGFW, UTM, CG-NAT.

                      То, что вы описываете с терминированием TCP, это скорее про оптимизацию трафика. Конкретно Versa этим не занимается. В решении Versa вы определяете типы трафика по L2-L7-характеристикам и устанавливаете для них SLA и действия, которые предпримет железка, при нарушении этих SLA. Можно начать дуплицировать пакеты в другой канал, если потери в первом превышают 2%, можно перекинуть весь поток на более качественный канал, если в текущем задержки превышают заданное значение и т.п.
                    • 0
                      Для дома, я думаю, хватит OpenWRT c mwan3.
                      • 0
                        Правильно ли я понимаю, что сам оператор связи ( в вашем тесте это MTC и Мегафон) должны поддерживать SD-WAN? или заслуга SD-WAN заключается в том, что CPE железка устанавливает 2 BGP сессии через 2-ух провайдеров для сигнализации к контроллеру, от него она получает обо всех других удаленных офисах, а также тип балансировки (per-packet, per-session) опять же через 2 активные BGP Сессии? и как CPE узнает, что первый канал может 10 Мбит, в второй — 50? Это нужно задавать в настройках вручную? То есть по сути versa как и другой SD-WAN провайдер предлает WEB-интерфейс для удаленного управления CPE, а также «услуги» в виде BGP route-reflector-a?
                        продавец перетыкает шнурок из одной «коробки» в другую
                        То есть это в том случае когда у нас резервирование не только через несколько модемов, но и физическое резервирование CPE устройств? т.е они работают только в режиме Active-Standby?
                        • 0
                          BGP нужен для передачи маршрутной информации сайтов организации и на базе этого принимается решение о построении динамических туннелей. Сама BGP сессия устанавливается в служебном IPSec туннеле.
                          Оператор не должен поддерживать SD-WAN и с ним не надо пириться по BGP (за исключением MPLS каналов связи).
                          Тип балансировки (per-packet, per-session) задается вручную, но per-application.
                          Полоса пропускания задается вручную при настройке филиальной железки на Versa Director, плюс есть возможность настройки трафик-shaping под эту полосу.

                          Резервирование в Active-Active режиме обеспечивается за счёт установки 2-х коробок на сайт.
                          Про «перетыкание провода», это о том что делать, если сломалось устройство на небольшом сайте, где нет админов.

                          Versa это вендор, который предлагает решение SD-WAN с поддержкой multi-tenancy, аналитики и функций безопасности. Все компоненты вы можете развернуть в своей инфраструктуре и полностью ими управлять.
                          Основное отличие от других производителей решений SD-WAN – это средства аналитики и безопасность (например, NGFW на базе NFV).

                          SD-WAN, можно сравнить с DMVPN у Cisco, только с SD-WAN вы можете:
                          — быстро настраивать и подключать конечные устройства через Director (Zero-Touch-Provisioning)
                          — для конкретных приложений определять, что делать с их трафиком в зависимости от текущих потерь, задержек, джиттера
                          — определять типы трафика на базе URL
                          — балансировать трафик приложений по пакетам по сессиям, переключать его с канала на канал, копировать пакеты в параллельный канал для нивелирования потерь.

                          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                          Самое читаемое