Разбор самого демократичного из SD-WAN: архитектура, настройка, администрирование и подводные камни

Судя по числу вопросов, которые нам стали прилетать по SD-WAN, технология начала основательно приживаться в России. Вендоры, естественно, не дремлют и предлагают свои концепции, а некоторые смельчаки первопроходцы уже внедряют их у себя на сети.

Мы работаем почти со всеми вендорами, и за несколько лет в нашей лаборатории я успел покопаться в архитектуре каждого крупного разработчика программно-определяемых решений. Немного особняком тут стоит SD-WAN от Fortinet, который просто встроил функционал балансировки трафика между каналами связи в софт межсетевых экранов. Решение скорее демократичное, поэтому к нему обычно присматриваются в компаниях, где пока не готовы к глобальным переменам, но хотят эффективнее использовать свои каналы связи.

В этой статье я хочу рассказать, как настраивать и работать с SD-WAN от Fortinet, кому подойдет это решение и с какими подводными камнями здесь можно столкнуться.

Самых заметных игроков рынка SD-WAN можно отнести к одному из двух типов:

1. Стартапы, создавшие SD-WAN-решения с нуля. Самые удачные из таких получают огромный импульс к развитию будучи купленными крупными компаниями — это история Cisco/Viptela, VMWare/VeloCloud, Nuage/Nokia

2. Крупные сетевые вендоры, создавшие SD-WAN-решения, развивая программируемость и управляемость своих традиционных маршрутизаторов — это история Juniper, Huawei

Fortinet удалось найти свой путь. В софт межсетевых экранов был встроен функционал, позволяющий объединять их интерфейсы в виртуальные каналы и балансировать между ними нагрузку с помощью сложных, по сравнению с привычной маршрутизацией, алгоритмов. Этот функционал и назвали SD-WAN. Можно ли то, что сделал Fortinet, назвать SD-WAN? На рынке постепенно складывается понимание, что Software-Defined, значит отделение Control Plane от Data Plane, выделенные контроллеры, оркестраторы. У Fortinet ничего такого нет. Централизованное управление опционально и предлагается с помощью традиционного средства Fortimanager. Но на мой взгляд, не стоит искать абстрактной правды и тратить время на споры о терминах. В реальном мире любой подход имеет свои достоинства и недостатки. Лучший выход — разбираться в них и уметь выбирать решения, соответствующие задачам.

Попробую со скриншотами в руках рассказать, как выглядит и что умеет SD-WAN от Fortinet.

Как всё устроено


Предположим, у вас есть два филиала, связанные между собой двумя каналами передачи данных. Эти каналы передачи данных объединяются в группу, подобно тому, как обычные Ethernet-интерфейсы объединяются в LACP-Port-Channel. Старожилы припомнят PPP Multilink — тоже подходящая аналогия. Каналами могут быть физические порты, VLAN SVI, а также VPN или GRE-туннели.

VPN или GRE, как правило, используются при соединении локальных сетей филиалов поверх интернета. А физические порты — при наличии L2-соединений между площадками, либо при соединении поверх выделенной MPLS/VPN, если нас устраивает связь без Overlay и шифрования. Ещё один сценарий, при котором в SD-WAN-группе используются физические порты — балансировка локального выхода пользователей в интернет.

На нашем стенде есть четыре межсетевых экрана и два VPN-туннеля, работающие через двух «операторов связи». Схема выглядит вот так:

vqpcyfymwidcbxr61vryoolohp0.jpeg

VPN-туннели настроены в интерфейсном режиме, так, чтобы это было похоже на Point-to-Point-соединения между устройствами с IP-адресами на P2P-интерфейсах, которые можно пропинговать и убедиться в том, что связь через конкретный туннель работает. Чтобы трафик зашифровался и ушёл на противоположную сторону, достаточно смаршрутизировать его в туннель. Альтернатива — отбор трафика для шифрования с помощью списков подсетей, сильно запутывает администратора по мере усложнения конфигурации. В большой сети для построения VPN можно использовать технологию ADVPN, это аналог DMVPN от Cisco или DVPN от Huawei, позволяющий упростить настройку.

Конфиг Site-to-Site VPN для двух устройств с маршрутизацией BGP с обеих сторон


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

После того, как мы добавили интерфейсы в бандл

h2untr0q7d1taoqtjwybzlrcpec.png

все маршруты и политики безопасности могут ссылаться на него, а не на интерфейсы, входящие в него. Как минимум, нужно разрешить трафик из внутренних сетей в SD-WAN. При создании правил для них можно применить защитные меры, такие, как IPS, антивирус и раскрытие HTTPS.

zvi1d085nczyqfdikkhopw1l6as.png

Для бандла настраиваются SD-WAN Rules. Это правила, определяющие алгоритм балансировки для конкретного трафика. Они похожи на политики маршрутизации в Policy-Based Routing, только в качестве результата попадания трафика под политику устанавливается не next-hop или обычный исходящий интерфейс, а интерфейсы, добавленные в SD-WAN бандл плюс алгоритм балансировки трафика между этими интерфейсами.

Трафик можно выделять из общего потока по L3-L4-информации, по распознанным приложениям, интернет-сервисам (URL и IP), а также по распознанным пользователям рабочих станций и ноутбуков. После этого, для выделенного трафика можно назначить один из следующих алгоритмов балансировки:

_jeahu1z6kf5vxwlunnzqeltqaw.png

В списке Interface Preference выбираются те интерфейсы из уже добавленных в бандл, которые будут обслуживать этот тип трафика. Добавив не все интерфейсы, можно ограничить по каким именно каналам у вас ходит, скажем, электронная почта, если не хотите нагружать ей дорогие каналы с высоким SLA. В FortiOS 6.4.1 появилась возможность группировать интерфейсы, добавленные в SD-WAN-бандл в зоны, создавая, к примеру, одну зону для связи с удалёнными площадками, а другую — для локального интернет-доступа с использованием NAT. Да-да, трафик, который идёт в обычный интернет, тоже можно балансировать.

Об алгоритмах балансировки


В части того, как Fortigate (межсетевой экран от Fortinet) умеет разбивать трафик между каналами есть две интересных опции, не очень распространённых на рынке:

Lowest Cost (SLA) — из всех интерфейсов, удовлетворяющих SLA в данный момент, выбирается тот у которого ниже вес (cost), заданный администратором вручную; этот режим подходит для «объемного» трафика, такого как резервное копирование и передача файлов.

Best Quality (SLA) — этот алгоритм, помимо привычных задержки, джиттера и потери пакетов Fortigate для оценки качества каналов может использовать и текущую загрузку канала; этот режим подходит для «чувствительного» трафика, такого как IP-телефония (VoIP) и видеоконференцсвязь.

Для этих алгоритмов требуется настройка измерителя производительности канала связи — Performance SLA. Этот измеритель периодически (check interval) контролирует информацию о соблюдении SLA: потерях (packet loss), задержке (latency) и джиттере (jitter) в канале связи, — и может «забраковать» те каналы, которые на текущий момент не удовлетворяют пороговым значениям качества — теряют слишком много пакетов или выдают слишком большую задержку. Помимо этого измеритель следит за статусом канала, и может временно удалить его из бандла в случае повторяющейся потери ответов (failures before inactive). При восстановлении, после нескольких последовательно пришедших ответов (restore link after) измеритель автоматически вернёт канал в бандл, и по нему снова начнут передаваться данные.

Вот так выглядит настройка «измерителя»:

vsgdmybn38he1ffcr5ktraztt-g.png

В веб-интерфейсе в качестве протокола для тестов доступны ICMP-Echo-request, HTTP-GET и DNS request. В командной строке опций чуть больше: доступны опции TCP-echo и UDP-echo, а также специализированный протокол измерения качества — TWAMP.

aumwgiihfsluvcr0uu4oj_ld1bi.png

Результаты измерений можно видеть и в веб-интерфейсе:

u61lq807ek4cgz-tkljjrnwf97w.png

И в командной строке:

rga9ft-b_gljvwjl9qosexspw5c.png

Траблшутинг


Если создали правило, а работает всё не так, как ожидалось, стоит посмотреть на значение Hit Count в списке SD-WAN Rules. Он покажет, попадает ли трафик вообще в данное правило:

rqakaisevjmnekjrp8nwqnalesm.png

На странице настройки самого измерителя можно видеть изменение параметров канала во времени. Пунктиром обозначено пороговое значение параметра

rkxy9ma52q-5xxpzocgxiwy5qok.png

В веб-интерфейсе можно смотреть как распределяется трафик по объёму передаваемых/получаемых данных и количеству сессий:

d7p_xhn7t6voow8fad0qbpiifje.png

Кроме всего этого, есть отличная возможность отследить прохождение пакетов с максимальной детализацией. При работе в реальной сети в конфигурации устройства накапливается множество политик маршрутизации, межсетевого экранирования и распределения трафика по SD-WAN-портам. Всё это сложным образом между собой взаимодействует, и, хотя вендор приводит подробные блок-схемы алгоритмов обработки пакетов, очень важно иметь возможность не строить и проверять теории, а посмотреть куда реально девается трафик.

К примеру, следующий набор команд

diagnose debug flow filter saddr 10.200.64.15
diagnose debug flow filter daddr 10.1.7.2
diagnose debug flow show function-name
diagnose debug enable
diagnose debug trace 2

Позволит отследить два пакета с адресом источника 10.200.64.15 и адресом получателя 10.1.7.2.
Пингуем 10.7.1.2 с 10.200.64.15 два раза и смотрим на вывод на консоли.

Первый пакет:

cgdubh3m8d9grnbf8_k4zpnh_rk.png

Второй пакет:

gpuuijjk9jp84329zsz-nosxbg4.png

Вот первый пакет получен межсетевым экраном:
id=20085 trace_id=475 func=print_pkt_detail line=5605 msg="vd-Internet:0 received a packet(proto=1, 10.200.64.15:42->10.1.7.2:2048) from DMZ-Office. type=8, code=0, id=42, seq=0."
VDOM – Internet, Proto=1 (ICMP), DMZ-Office – название L3-интерфейса. Type=8 – Echo.

Для него создалась новая сессия:
msg="allocate a new session-0006a627"

И обнаружилось совпадение в настройках политик маршрутизации
msg="Match policy routing id=2136539137: to 10.1.7.2 via ifindex-110"

Выясняется, что пакет нужно отправить в один из VPN-туннелей:
"find a route: flag=04000000 gw-192.168.254.1 via DC-Ph1-1"

В политиках межсетевого экранирования обнаруживается разрешающее правило:
msg="Allowed by Policy-3:"

Пакет шифруется отправляется в VPN-туннель:
func=ipsecdev_hard_start_xmit line=789 msg="enter IPsec interface-DC-Ph1-1"
func=_ipsecdev_hard_start_xmit line=666 msg="IPsec tunnel-DC-Ph1-1"
func=esp_output4 line=905 msg="IPsec encrypt/auth"

Зашифрованный пакет отправляется по адресу шлюза для данного WAN-интерфейса:
msg="send to 2.2.2.2 via intf-WAN1"

Для второго пакета всё происходит аналогично, но он отправляется в другой VPN-туннель и уходит через другой порт межсетевого экрана:
func=ipsecdev_hard_start_xmit line=789 msg="enter IPsec interface-DC-Ph1-2"
func=_ipsecdev_hard_start_xmit line=666 msg="IPsec tunnel-DC-Ph1-2"
func=esp_output4 line=905 msg="IPsec encrypt/auth"
func=ipsec_output_finish line=622 msg="send to 4.4.4.2 via intf-WAN2"

Плюсы решения


Надежный функционал и удобный интерфейс. Набор функций, имевшийся в FortiOS до появления SD-WAN, сохранился полностью. То есть мы имеем не заново разработанный софт, а зрелую систему от проверенного вендора межсетевых экранов. С традиционным набором сетевых функций, удобным и простым для освоения веб-интерфейсом. Многие ли вендоры SD-WAN имеют на оконечных устройствах, скажем, функционал Remote-Access VPN?

Безопасность 80-ого уровня. FortiGate входит в топ решений по межсетевому экранированию. В интернете есть множество материалов по настройке и администрированию межсетевых экранов, а на рынке труда немало специалистов по безопасности, уже освоивших решения вендора.

Нулевая цена за функционал SD-WAN. Построить SD-WAN-сеть на FortiGate стоит столько же, сколько и построить на нём обычную WAN-сеть, поскольку никакие дополнительные лицензии для реализации SD-WAN-функционала не нужны.

Низкий порог входа по цене. У Fortigate хорошая градация устройств под разную производительность. Самые младшие и недорогие модели вполне подойдут для того, чтобы поднять офис или точку продаж, скажем, на 3–5 сотрудников. У многих вендоров таких малопроизводительных и доступных моделей просто нет.

Высокая производительность. Сведение SD-WAN-функционала к балансировке трафика позволило компании выпустить специализированный SD-WAN ASIC, благодаря которому работа SD-WAN не снижает производительности межсетевого экрана в целом.

Возможность реализовать офис целиком на оборудовании Fortinet. Это пара межсетевых экранов, коммутаторы, точки доступа Wi-Fi. Таким офисом легко и удобно управлять — коммутаторы и точки доступа регистрируются на межсетевых экранах и управляются с них. Вот так, к примеру, может выглядеть порт коммутатора с интерфейса межсетевого экрана, которым этот коммутатор управляется:

ipy8pgboxn7q1n5tymgymizolpk.png

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

На что обращать внимание


Отсутствие разделения Control Plane и Data Plane. Это значит, что сеть нужно настраивать либо вручную, либо с использованием уже имевшихся традиционных средств управления — FortiManager. У вендоров, у которых такое разделение реализовано, сеть собирается сама. Администратору может потребоваться лишь скорректировать её топологию, что-то где-то запретить, не более того. Однако, козырь FortiManager в том, что он умеет управлять не только межсетевыми экранами, но и коммутаторами и точками доступа Wi-Fi, то есть практически всей сетью.

Условный рост управляемости. Из-за того, что для автоматизации настройки сети используются традиционные средства, управляемость сети с внедрением SD-WAN повышается незначительно. С другой стороны, новый функционал становится доступен быстрее, так как вендор сначала выпускает его только для операционной системы межсетевых экранов (что сразу даёт возможность им пользоваться), а уже потом дополняет нужными интерфейсами систему управления.

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

Кому подойдёт


Тем, у кого не очень много филиалов. Внедрение решения SD-WAN со сложными центральными компонентами на сети в 8–10 филиалов может не стоить свеч –придётся потратить деньги на лицензии к SD-WAN-устройствам и ресурсы системы виртуализации на размещение центральных компонентов. Свободных вычислительных ресурсов у небольшой компании как правило в обрез. В случае с Fortinet достаточно просто купить межсетевые экраны.

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

Тем, кто не готов пока шагнуть слишком далеко. Внедрение SD-WAN с контроллерами, проприетарной маршрутизацией, новым подходом к планированию и управлению сетью может оказаться слишком серьёзным шагом для некоторых заказчиков. Да, такое внедрение в итоге поможет оптимизировать использование каналов связи и работу администраторов, но сначала придётся выучить много нового. Тем, кто пока не готов к смене парадигмы, но хочет выжать побольше из своих каналов связи, как раз подойдёт решение от Fortinet.

© Habrahabr.ru