Создание универсального WiFi контроллера и его
интеграция с SDN сетями
Сергей Монин 11/03/2014
Wireless –начало работ R&D-09/13
Многие точки доступа уже могут управляться централизовано.SDN для Wifi был придуман в 2003 году Бобом О’Харой. Реализован в виде WiFi контроллера в 2004. Прекрасно работает в различных вариантах сегодня.
Имеется открытый протокол взаимодействия с точками доступа CAPWAP.Хорошо известны реализации этого решения от Cisco, Aruba Networks, Motorola,Extreme Networks, Juniper, Ubiquiti, Zyxel..
Проблема раздражающая рынок: цена точек доступа указанных вендоров (500-5000$), контроллеров (750-1М$) и невозможность подключать точки одного вендора к контроллерам другого!
Cisco 1040/1140/3500i In Ceiling Mounting Bracket - $50 - TP-LINK tl-wr1043nd WiFi Router b/g/n
Wireless –начало работ R&D-09/13
Требуется софтовый, Wireless LAN CAPWAP контроллер, который сможет управлять любыми недорогими точками доступа с соответствующими прошивками.
Желательно реализовать это быстро, может быть даже в ущерб функциональности,ее можно дописать позже. Основное: радиочастотная оптимизация, управление
пользователями, бесшовный роуминг… Заказчики – Ростелеком,МГТС ? (см. след. слайд)
CA
PW
AP
CAPWAP описан в RFC 5415Имеется открытый код
Имеются модифицируемыепрошивки Open-WRT, DD-WRT и драйвера MADWiFi/Netlink для экспериментов.
Wireless –начало работ R&D-09/13
WiFi Controller
Вариант решения проблемы: внедрение софтового контроллера и, как следствие,уменьшение количества необходимых точекдоступа.
Развитие идеи: МГТС предлагает клиентуНе СРЕ оборудование, а услугу. Логин/пароль. Гарантируется, что клиент,Где бы он не предъявил свой логин, Попадет в свой домашний VLAN со всемиТелевизорами/умными домами, etc.SDN
Controller
AAAСервер
VXLAN
Дом
ПаркVxLAN обеспечит взаимосвязьL2 через L3 (udp) ..до 16 млн(2^24)логических сетей.
capwap
R&D - Increase The Drama Ситуация в бизнес центрах близка к критической (2.4 переполнен, DFS не работает)
R&D - Increase The Drama Ситуация в бизнес центрах близка к критической:
Уровень сигнала идеальныйНо потери пакетов составляют15%
Universal WiFi Controller & SDN NetworksЧто сделано :
• осознана порочность подхода «сделаем AP, которая поддерживает openFlow»
• проверена возможность создания решения на недорогих точках доступа (xx-wrt)
• проверены opensource коды для реализации capwap контроллера и софта для АР
• определена архитектура решения
• определен принцип взаимодействия с SDN контроллером
• определен набор алгоритмов для анализа Радиочастотного ресурса (FP, Heuristic, Exhaustive&Prune, наш ,ручной,…)
• создан работающий пред-прототип осуществляющий:• Централизованное управление пользователями• Распределение частотно-мощностного ресурса (свой алгоритм)• Реализацию рабочей схемы CAPWAP-LocalMAC
Universal WiFi Controller & SDN NetworksЧто сделано :
• осознана порочность подхода «сделаем AP, которая поддерживает openFlow»
Эксперименты показали, что недорогие точки доступа располагают небольшимобъемом памяти/флеша, слабым процессором. Хоть сколь-нибудь значительноеколичество правил openflow просто не помещается. «SDN actions» должны выполнять коммутаторы. Тем более, что точка доступа часто имеет только одинUplink и один Downlink..
Так же у SDN точки доступа НЕТ механизма, который мог бы предупредить контроллер о возможном перемещении клиента на другую точку доступа (роуминг)
Такой механизм есть у capwap контроллера!
Universal WiFi Controller & SDN NetworksЧто сделано :
• проверена возможность создания решения на недорогих точках доступа (xx-wrt)
Если точка доступа поддерживает OpenWRT или DD-WRT прошивку и имеет >=8МFlash, мы можем ее использовать прямо сегодня.
Если точка доступа поддерживает OpenWRT или DD-WRT прошивку и имеет 4МFlash, мы сможем ее использовать к лету 2014. (если это будет нужно)
http://wiki.openwrt.org/toh/starthttp://dd-wrt.com/site/support/router-database
Речь идет о большом количестве моделей точек доступа,в том числе новых.
Universal WiFi Controller & SDN NetworksЧто сделано :
• проверены opensource коды для реализации capwap контроллера и софта для АР
Для исследований и прототипов opensource библиотеки вполне подходят.
Для промышленного программирования – НЕТ. Требуется создание своих библиотек.
Universal WiFi Controller & SDN NetworksЧто R&D за 09/13 :• определена архитектура решения• определен принцип взаимодействия с SDN контроллером
Universal Wireless Controller
Northbound API
Southbound API
SDN Controller
UWC to Access Points Interconnections via CAPWAP,TR-069 protocols
SDN Controller to Network devicesInterconnections viaOpenFlow protocol
Information
REST API
I-net
См. следуюшие 3 слайда:
Universal WiFi Controller & SDN NetworksЧто R&D за 09/13 :• определен принцип взаимодействия с SDN контроллером
Информация передаваемая контроллеру SDN о:- всех своих АР (МАС) для идентификации портов на switches. Т.о. контроллер SDN получает информацию о том, к каким портам коммутаторов подключены точки доступа и где будет возникать пользовательский трафик.- МАС пользователя и МАС точки доступа на которую он будет переключаться в
момент роуминга. Т.о. контроллер SDN будет информирован о том, что трафик поступающий пользователю нужно будет переместить на другой порт другого коммутатора.
В результате связка «CAPWAP контроллер+SDN сеть»готова к роумингу клиентов быстрее, чем обычная сеть и быстрее чем сеть, построенная на SDN АР !(у них нет возможности информировать контроллер SDN о роуминге клиентов см. «Why Nicira abandoned OpenFlow hardware control» http://searchnetworking.techtarget.com/news/2240174517/Why-Nicira-abandoned-OpenFlow-hardware-control )
Universal WiFi Controller & SDN NetworksЧто R&D за 09/13 :• определен принцип взаимодействия с SDN контроллером
Дополнительно: Если у клиента включен и проводный и беспроводный интерфейсы, это дает возможность балансировки трафика – SDN сеть к этому готова.
Дополнительно: Если проводная сеть управляется контроллером SDN, то это дает возможность не разделять ее на IP подсети по интерфейсам маршрутизаторов. Т.е. правила хождения трафика SDN контроллер пропишет в память коммутаторов. В этом случае отпадает необходимость сложного туннелирования трафика wifi клиента, который перешел на другую точку доступа L3 (как это происходит сейчас).
Дополнительно: Если CAPWAP контроллер определит, что поведение wifi клиента деструктивно, то он может снабдить этой информацией через API приложение «Firewall» для последующей блокировки клиента глобально – и в проводах (например по IP)
Дополнительно: Если обязать клиентов корпоративной сети всегда держать включенным wifi интерфейс, даже работая через провода, мы всегда будем знать его местоположение в офисе (3-5м.) Это позволит динамически формировать правила хождения трафика в сети, на основании географического положения! Например: платежные документы принимаются от бухгалтерского ноутбука только если он находится в бухгалтерии. И это настройка всей корпоративной сети. (Yandex.деньги?)
Universal WiFi Controller & SDN Networks
Пример: Клиент находится за пределами офиса : разрешен только Internet трафик.…даже если клиент работает по проводам.
Universal WiFi Controller & SDN NetworksЧто сделано :
• определен набор алгоритмов для анализа Радиочастотного ресурса (FP,Heuristic,Exhaustive search&pruning,наш,ручной,…)
Рассмотрены алгоритмы из работ M.Bernaschi, F.Cacace, A.Davoli..Istituto Aplicazioni del Calcolo-CNR, Rome, Italy
Планируется автоматический выбор алгоритма на основании количестваточек доступа, их плотности и загруженности
Реализован собственный алгоритм RRM(результаты чуть дальше..)
Universal WiFi Controller & SDN NetworksЧто сделано :
• создан работающий пред-прототип осуществляющий:• Распределение частотно-мощностного ресурса (свой алгоритм)• Централизованное управление пользователями• Реализацию рабочей схемы CAPWAP-LocalMAC (управление
через контроллер, трафик прямо в сеть)
Мы располагаем рабочим CAPWAP контроллером, софтом для точек доступа(как настоящих, так и в виде РС с wifi картой)Все это подходит для экспериментов и является основой для дальнейшихразработок.
R&D - Increase The Drama Ситуация в бизнес центрах близка к критической:
Уровень сигнала идеальныйНо потери пакетов составляют15%
Universal WiFi Controller & SDN NetworksДаже не «продвинутый» алгоритм выбора частот дает результат:
Universal WiFi Controller & SDN NetworksУправление WLAN/пользователями и RRM. Это GUI нашего контроллера:
Universal WiFi Controller & SDN NetworksУправление WLAN/пользователями и RRM. Это логи нашего контроллера:
[CAPWAP::Fri Nov 1 19:37:56 2013] ######### Status Event #########[CAPWAP::Fri Nov 1 19:37:56 2013] Change State Event Received 57, elemLen: 1506[CAPWAP::Fri Nov 1 19:37:58 2013] Parsing Vendor Specific Message...[CAPWAP::Fri Nov 1 19:37:58 2013] from CWParseVendorPayload:Parse wendor payload Scan [CAPWAP::Fri Nov 1 19:37:58 2013] from CWACsave_scan_results: Got 17 scan results from wtp 0[CAPWAP::Fri Nov 1 19:37:58 2013] from CWACsave_scan_results: Deleting WTPIndex 0[CAPWAP::Fri Nov 1 19:37:58 2013] from CWACsave_scan_results: video-hc b0:b2:dc:ff:a0:0a chan: 2, level: -75, noise: -95, [CAPWAP::Fri Nov 1 19:37:58 2013] from CWACsave_scan_results: Connect Plus 00:27:19:d5:53:22 chan: 6, level: -71, noise: -95, [CAPWAP::Fri Nov 1 19:37:58 2013] from CWACsave_scan_results: capwap_net 74:2f:68:e9:67:60 chan: 11, level: -35, noise: -95, [CAPWAP::Fri Nov 1 19:37:58 2013] from CWACsave_scan_results: ARCCN 08:60:6e:cb:9e:60 chan: 1, level: -32, noise: -95, [CAPWAP::Fri Nov 1 19:37:58 2013] from CWACsave_scan_results: homeconcept 00:26:5a:f5:9e:ea chan: 4, level: -74, noise: -95, [CAPWAP::Fri Nov 1 19:37:58 2013] from CWACsave_scan_results: vse_v_sad 00:15:6d:3e:d5:73 chan: 6, level: -68, noise: -95, [CAPWAP::Fri Nov 1 19:37:58 2013] from CWACsave_scan_results: TC-MENTOR 00:25:9c:8f:dc:f8 chan: 6, level: -66, noise: -95, [CAPWAP::Fri Nov 1 19:37:58 2013] from CWACsave_scan_results: <none> b8:a3:86:27:fa:d8 chan: 6, level: -71, noise: -95, [CAPWAP::Fri Nov 1 19:37:58 2013] from CWACsave_scan_results: sdn 08:60:6e:cb:9d:88 chan: 8, level: -64, noise: -95, [CAPWAP::Fri Nov 1 19:37:58 2013] from CWACsave_scan_results: bankov 30:85:a9:f5:16:c0 chan: 11, level: -81, noise: -95, [CAPWAP::Fri Nov 1 19:37:58 2013] from CWACsave_scan_results: AmatiHome a0:f3:c1:d8:01:e2 chan: 11, level: -72, noise: -95, [CAPWAP::Fri Nov 1 19:37:58 2013] from CWACsave_scan_results: arabella 14:da:e9:ba:3e:a0 chan: 11, level: -66, noise: -95, [CAPWAP::Fri Nov 1 19:37:58 2013] from CWACsave_scan_results: It 90:f6:52:35:d1:90 chan: 9, level: -77, noise: -95, [CAPWAP::Fri Nov 1 19:37:58 2013] from CWACsave_scan_results: Man_Work bc:f6:85:fe:b6:0e chan: 7, level: -81, noise: -95, [CAPWAP::Fri Nov 1 19:37:58 2013] from CWACsave_scan_results: Lasertrack 00:14:d1:9f:31:80 chan: 11, level: -88, noise: -95, [CAPWAP::Fri Nov 1 19:37:58 2013] from CWACsave_scan_results: MT1_ROYBOSH fc:f5:28:61:67:3e chan: 1, level: -81, noise: -95, [CAPWAP::Fri Nov 1 19:37:58 2013] from CWACsave_scan_results: Sprint bc:ae:c5:c3:78:6e chan: 7, level: -87, noise: -95, [CAPWAP::Fri Nov 1 19:37:58 2013] from CWACsave_scan_results: Choose 1 channel for wtp 0
Universal WiFi Controller & SDN NetworksУправление WLAN/пользователями и RRM. Это логи нашего контроллера:
[CAPWAP::Fri Nov 1 19:36:10 2013] ######### Discovery State #########[CAPWAP::Fri Nov 1 19:36:13 2013] Interface Address: 10.30.40.202[CAPWAP::Fri Nov 1 19:36:13 2013] WTP Receives Discovery Response[CAPWAP::Fri Nov 1 19:36:13 2013] Discovery Response from:10.30.40.200:5246[CAPWAP::Fri Nov 1 19:36:13 2013] Hostapd WTP in WAIT "ADD WLAN" Command
[CAPWAP::Fri Nov 1 19:36:15 2013] from CWWTPThread_read_data_from_hostapd: Got scanning results: 8 ssids[CAPWAP::Fri Nov 1 19:36:16 2013] WTP Picks an AC[CAPWAP::Fri Nov 1 19:36:16 2013] Preferred AC: " My AC", at address: 10.30.40.200:5246
[CAPWAP::Fri Nov 1 19:36:16 2013] ######### Join State #########[CAPWAP::Fri Nov 1 19:36:16 2013] Using client socket with addr 10.30.40.200:5246[CAPWAP::Fri Nov 1 19:36:16 2013] Binding Client socket with UDP data port:5247[CAPWAP::Fri Nov 1 19:36:16 2013] Using data socket with addr 10.30.40.200:5247[CAPWAP::Fri Nov 1 19:36:16 2013] Initiate Data Channel[CAPWAP::Fri Nov 1 19:36:16 2013] from CWCreateThread: Create Thread[CAPWAP::Fri Nov 1 19:36:16 2013] Sending Join Request...[CAPWAP::Fri Nov 1 19:36:16 2013] Join Completed[CAPWAP::Fri Nov 1 19:36:16 2013] #________ Change State Event (Data Check) ________#[CAPWAP::Fri Nov 1 19:36:16 2013] Assembling Change State Event Request...[CAPWAP::Fri Nov 1 19:36:16 2013] Change State Event Request Assembled[CAPWAP::Fri Nov 1 19:36:16 2013] Parsing Change State Event Response...[CAPWAP::Fri Nov 1 19:36:16 2013] Change State Event Response Parsed[CAPWAP::Fri Nov 1 19:36:16 2013]
[CAPWAP::Fri Nov 1 19:36:16 2013] ######### WTP enters in RUN State #########