Розбір найдемократичнішого з 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-тунелі, що працюють через двох «операторів зв'язку». Схема виглядає так:

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

VPN-тунелі налаштовані в інтерфейсному режимі, так щоб це було схоже на Point-to-Point-з'єднання між пристроями з IP-адресами на P2P-інтерфейсах, які можна пропінгувати і переконатися в тому, що зв'язок через конкретний тунель працює. Щоб трафік зашифрувався та пішов на протилежний бік, достатньо змаршрутизувати його в тунель. Альтернатива – відбір трафіку для шифрування за допомогою списків підмереж, що сильно заплутує адміністратора в міру ускладнення конфігурації. У великій мережі для створення VPN можна використовувати технологію ADVPN, це аналог DMVPN від Cisco або DVPN від Huawei, що дозволяє спростити налаштування.

Конфіг Site-to-Site VPN для двох пристроїв з маршрутизацією BGP з обох сторін

«ЦОД» (DC)
«Филиал» (BRN)

config system interface
 edit "WAN1"
  set vdom "Internet"
  set ip 1.1.1.1 255.255.255.252
  set allowaccess ping
  set role wan
  set interface "DC-BRD"
  set vlanid 111
 next
 edit "WAN2"
  set vdom "Internet"
  set ip 3.3.3.1 255.255.255.252
  set allowaccess ping
  set role lan
  set interface "DC-BRD"
  set vlanid 112
 next
 edit "BRN-Ph1-1"
  set vdom "Internet"
  set ip 192.168.254.1 255.255.255.255
  set allowaccess ping
  set type tunnel
  set remote-ip 192.168.254.2 255.255.255.255
  set interface "WAN1"
 next
 edit "BRN-Ph1-2"
  set vdom "Internet"
  set ip 192.168.254.3 255.255.255.255
  set allowaccess ping
  set type tunnel
  set remote-ip 192.168.254.4 255.255.255.255
  set interface "WAN2"
 next
end

config vpn ipsec phase1-interface
 edit "BRN-Ph1-1"
  set interface "WAN1"
  set local-gw 1.1.1.1
  set peertype any
  set net-device disable
  set proposal aes128-sha1
  set dhgrp 2
  set remote-gw 2.2.2.1
  set psksecret ***
 next
 edit "BRN-Ph1-2"
  set interface "WAN2"
  set local-gw 3.3.3.1
  set peertype any
  set net-device disable
  set proposal aes128-sha1
  set dhgrp 2
  set remote-gw 4.4.4.1
  set psksecret ***
 next
end

config vpn ipsec phase2-interface
 edit "BRN-Ph2-1"
  set phase1name "BRN-Ph1-1"
  set proposal aes256-sha256
  set dhgrp 2
 next
 edit "BRN-Ph2-2"
  set phase1name "BRN-Ph1-2"
  set proposal aes256-sha256
  set dhgrp 2
 next
end

config router static
 edit 1
  set gateway 1.1.1.2
  set device "WAN1"
 next
 edit 3
  set gateway 3.3.3.2
  set device "WAN2"
 next
end

config router bgp
 set as 65002
 set router-id 10.1.7.1
 set ebgp-multipath enable
 config neighbor
  edit "192.168.254.2"
   set remote-as 65003
  next
  edit "192.168.254.4"
   set remote-as 65003
  next
 end

 config network
  edit 1
   set prefix 10.1.0.0 255.255.0.0
  next
end

config system interface
 edit "WAN1"
  set vdom "Internet"
  set ip 2.2.2.1 255.255.255.252
  set allowaccess ping
  set role wan
  set interface "BRN-BRD"
  set vlanid 111
 next
 edit "WAN2"
  set vdom "Internet"
  set ip 4.4.4.1 255.255.255.252
  set allowaccess ping
  set role wan
  set interface "BRN-BRD"
  set vlanid 114
 next
 edit "DC-Ph1-1"
  set vdom "Internet"
  set ip 192.168.254.2 255.255.255.255
  set allowaccess ping
  set type tunnel
  set remote-ip 192.168.254.1 255.255.255.255
  set interface "WAN1"
 next
 edit "DC-Ph1-2"
  set vdom "Internet"
  set ip 192.168.254.4 255.255.255.255
  set allowaccess ping
  set type tunnel
  set remote-ip 192.168.254.3 255.255.255.255
  set interface "WAN2"
 next
end

config vpn ipsec phase1-interface
  edit "DC-Ph1-1"
   set interface "WAN1"
   set local-gw 2.2.2.1
   set peertype any
   set net-device disable
   set proposal aes128-sha1
   set dhgrp 2
   set remote-gw 1.1.1.1
   set psksecret ***
  next
  edit "DC-Ph1-2"
   set interface "WAN2"
   set local-gw 4.4.4.1
   set peertype any
   set net-device disable
   set proposal aes128-sha1
   set dhgrp 2
   set remote-gw 3.3.3.1
   set psksecret ***
  next
end

config vpn ipsec phase2-interface
  edit "DC-Ph2-1"
   set phase1name "DC-Ph1-1"
   set proposal aes128-sha1
   set dhgrp 2
  next
  edit "DC2-Ph2-2"
   set phase1name "DC-Ph1-2"
   set proposal aes128-sha1
   set dhgrp 2
  next
end

config router static
 edit 1
  set gateway 2.2.2.2
  et device "WAN1"
 next
 edit 3
  set gateway 4.4.4.2
  set device "WAN2"
 next
end

config router bgp
  set as 65003
  set router-id 10.200.7.1
  set ebgp-multipath enable
  config neighbor
   edit "192.168.254.1"
    set remote-as 65002
   next
  edit "192.168.254.3"
   set remote-as 65002
   next
  end

  config network
   edit 1
    set prefix 10.200.0.0 255.255.0.0
   next
end

Наводжу конфіг у текстовому вигляді, тому що, як на мене, так VPN налаштовувати зручніше. Майже всі налаштування з двох сторін однакові, у текстовому вигляді їх можна зробити копі-пастою. Якщо робити те саме в веб-інтерфейсі, легко помилитися, - забути десь галочку, ввести не те значення.

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

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

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

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

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

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

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

У списку 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) вимірювач автоматично поверне канал в бандл, і по ньому знову почнуть передаватися дані.

Ось так виглядає налаштування «вимірника»:

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

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

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

Результати вимірювань можна побачити і у веб-інтерфейсі:

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

І в командному рядку:

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

Траблшутинг

Якщо створили правило, а працює все не так, як очікувалося, варто подивитися на значення Hit Count у списку SD-WAN Rules. Він покаже, чи потрапляє трафік взагалі у це правило:

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

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

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

У веб-інтерфейсі можна дивитися як розподіляється трафік за обсягом переданих/отримуваних даних та кількістю сесій:

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

Крім того, є відмінна можливість відстежити проходження пакетів з максимальною деталізацією. При роботі в реальній мережі конфігурації пристрою накопичується безліч політик маршрутизації, міжмережевого екранування та розподілу трафіку по 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 двічі та дивимося на висновок на консолі.

Перший пакет:

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

Другий пакет:

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

Ось перший пакет отриманий міжмережевим екраном:
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. Таким офісом легко та зручно керувати – комутатори та точки доступу реєструються на міжмережевих екранах та управляються з них. Ось так, наприклад, може виглядати порт комутатора з інтерфейсу міжмережевого екрану, яким цей комутатор управляється:

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

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

На що звертати увагу

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

Умовне зростання керованості. Через те, що для автоматизації мережі використовуються традиційні засоби, керованість мережі з використанням SD-WAN підвищується незначно. З іншого боку, новий функціонал стає доступнішим швидше, оскільки вендор спочатку випускає його тільки для операційної системи міжмережевих екранів (що відразу дає можливість ним користуватися), а вже потім доповнює потрібними інтерфейсами систему управління.

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

Кому підійде

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

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

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

Джерело: habr.com

Додати коментар або відгук