Здравейте, Някой да е стинал до решение? Или задълбочени тестове за по-голяма насока?
Данчо. 2016-08-24 12:37 GMT+03:00 Svilen Ivanov <svilen.iva...@gmail.com>: > Съжалявам за спама, исках да отговоря директно на Петко > > > On Wednesday, 24 August 2016, Svilen Ivanov <svilen.iva...@gmail.com> > wrote: > >> Respec!!! >> >> On Tuesday, 23 August 2016, Petko Bordjukov <bordju...@gmail.com> wrote: >> >>> Утро, >>> >>> 1. Въведение >>> >>> 1.1. Ключови думи >>> >>> Терминологията, която ще използвам, е следната: >>> >>> * STA (станция) – клиент на дадена безжична мрежа. >>> * BSS (basic service set), базово множество услуги – точка за достъп и >>> всичките >>> ѝ клиенти. >>> * ESS (extended service set, разширено множество услуги) – няколко BSS-а, >>> свързани чрез система за дистрибуция. >>> * DS (distribution system, система за дистрибуция) – системата, чрез >>> която >>> множество BSS-и са свързани в един ESS. Ще подразбирам Ethernet >>> сегмент. >>> * Roaming (роуминг) – преминаване от един към друг BSS в един и същи ESS. >>> * Client steering (насочване на клиенти) – активно действие от страна на >>> точка >>> за достъп, което кара клиент да се асоциира с определен BSS. >>> * Band steering (насочване към честотна лента) – като client steering, >>> само че >>> насочва клиента към BSS в по-предпочитана честотна лента. >>> >>> 1.2. Стандартизация >>> >>> IEEE 802.11 стандартите изрично отбягват специфицирането на „настойчиви“ >>> действия и логика от страна на точките за достъп, що се отнася за >>> насочване на >>> клиентите. С други думи, когато се говори за избор на BSS, с който да се >>> асоциира, топката е ИЗЦЯЛО в ръцете на STA имплементациите. Отказ от >>> асоциация, >>> на базата на друго, освен липса на правомощия за асоциация, е в разрез >>> със >>> стандартите. >>> >>> Поправки на IEEE 802.11 с отношение към роуминг и насочване на клиенти – >>> IEEE >>> 802.11f (нестандартизиран), IEEE 802.11r, IEEE 802.11k, IEEE 802.11v, >>> IEEE >>> 802.11ad. >>> >>> 2. Съществуващи имплементации на насочване на клиенти >>> >>> 2.1. Решения със затворен код >>> >>> Въпреки 1.2, почти всеки сериозен производител на Wi-Fi хардуер, има >>> собствена >>> имплементация на client и band steering. Няма да навлизам в детайли за >>> Cisco, >>> Aruba, UBNT, защото имплементациите им са затворени и нямам наблюдения >>> над тях, >>> освен за съществуването им. >>> >>> 2.2. hostapd >>> >>> В де-факто стандартната имплементация на точка за достъп за Linux >>> съществуват >>> имплементирани както стандартизирани, така и нестандартизирани методи за >>> насочване на клиенти. >>> >>> 2.2.1. Нестандартизирани подходи за насочване към честотна лента в >>> официалните >>> версии на hostapd >>> >>> hostapd поддържа два подхода за насочване към честотна лента – отказ от >>> отговор >>> на probe request, ако даден клиент е бил забелязан на интерфейс в 5 ГХц >>> честотна >>> лента, или отказ от асоциация при същото условие[1]. И двата са доста >>> „непохватни“, защото не взимат предвид това дали клиентът не би имал >>> проблем при >>> свързването към BSS-а на другия банд. >>> >>> Важно е да се отбележи, че гореспоменатите два подхода могат да бъдат >>> използвани >>> само в случай, че една и съща инстанция на hostapd управлява всички >>> физически >>> интерфейси. Това е в разрез с текущата имплементация в OpenWrt и LEDE, >>> при която >>> за всеки физически интерфейс се стартира отделна инстанция на hostapd. >>> Въпросът >>> за изоставяне на сегашната имплементация беше отхвърлен от >>> разработчиците на >>> LEDE, защото би изискал сериозни промени в LEDE и ще направи системата >>> по-малко >>> отказоустойчива – при проблем с hostapd на един интерфейс, ще спре и >>> другия. >>> >>> Също така, не е имплементиран начин споменатите в [1] таблици от съседи >>> да бъдат >>> споделяни между отдалечени инстанции на hostapd. Това прави описаните в >>> [1] >>> подходи неприложими или поне непредвидими, при използване на повече от >>> едно >>> устройство в един ESS. >>> >>> 2.2.2. Нестандартизиран подход за насочване към честотна лента във форка >>> на >>> hostapd на Google >>> >>> В доста информативна лекция по темата[2], служител на Google представи >>> собствената >>> им интелигентна имплементация[3] на band steering. >>> >>> Плюсовете на тази имплементация пред вече съществуващата в hostapd са: >>> >>> * Взима предвид потенциални проблеми при свързване към BSS-а на 5 ГХц. >>> * Предвидена е да бъде използвана в сценарий, при който отделна >>> инстанция на >>> hostapd управлява всяки отделен физически интерфейс. >>> >>> За съжаление обаче е неизползваема в контекста на ESS с повече от една >>> точка за >>> достъп на отделни устройства. >>> >>> Бих бил много щастлив, ако някой се заеме и имплементира дистрибутиран >>> списък с >>> клиенти, с който да работи тази имплементация. Нужна ни е за Open Fest. >>> >>> 2.2.3. Насочване към честотна лента чрез специфицираните в IEEE 802.11ad >>> инструменти >>> >>> IEEE 802.11ad въвежда промени, чиято цел е да улеснят избора на >>> правилния банд >>> от клиенти. В повече детайли – въвежда се MB (като multi-band) >>> информационен >>> елемент в beacon фреймовете на BSS-ите и метод за бързо прехвърляне на >>> клиентска >>> сесия между отделни BSS-и. В hostapd и wpa_supplicant от относително >>> скоро >>> съществува имплементация и за двете, но е скрита за конфигурационен >>> флаг[4]. >>> >>> Положителното на тази имплементация е, че е стандартизирана от IEEE, но >>> носи и >>> редица отрицателни характеристики: >>> >>> * Изисква поддръжка от клиентска страна. >>> * Нужно е една инстанция на hostapd да управлява всички физически >>> интерфейси >>> (като при 2.2.1). >>> * Нова е, неистествана е и преди всичко – не е активирана по >>> подразбиране. >>> >>> 2.2.4. Насочване на клиентите чрез средствата на IEEE 802.11r, k и v. >>> >>> От Cisco са описали по същество що е то Assisted Roaming чрез >>> използването на >>> горните стандарти[5]. Препоръчвам да прочетете статията за детайли. >>> Обобщено >>> обаче, идеята зад методите за улесняване на решенията за роуминг зад тези >>> поправки, е следната: >>> >>> Точките за достъп събират информация за използването на радио ефира >>> както от >>> станциите в обхвата им, така и на база на собствените си наблюдения. >>> Тези данни >>> се предоставят на всяка станция и се очаква имплементацията на всяка >>> станция да >>> вземе решение към кой BSS да се асоциира. >>> >>> В hostapd и wpa_supplicant изглежда съществуват поне частични >>> имплементации[6]. Предстои да ги проуча и тествам преди Open Fest. >>> >>> Огромният недостатък е, че е нужно клиентите да имплементират дадената >>> логика за >>> избор на BSS. >>> >>> 2.2.5. Насочване на клиентите чрез ограничаване на мощността на >>> излъчване на >>> мрежовите карти на точките за достъп и избор на кодировки за >>> висока >>> производителност >>> >>> Най-изпитаният и най-широко съвместим метод за „поощряване“ на клиентите >>> да >>> преминат към друг BSS остава внимателното избиране на подходяща мощност >>> на >>> излъчване от страна на точките за достъп. Това, комбинирано с >>> ограничаването на >>> basic rate-овете до 54Mbps исторически винаги е работило доста добре на >>> Open >>> Fest[9]. >>> >>> 3. Особености при роуминг >>> >>> При преминаване от един BSS към друг в контекста на един и същи Ethernet >>> сегмент съществуват няколко особености, за които трябва да бъдат взети >>> мерки. >>> >>> 3.1. Обновяване на кеша на L2 устройствата в Ethernet сегмента >>> >>> Две точки за достъп могат да бъдат свързани чрез два различни порта на >>> суич или >>> дори чрез отделни суичове. Докато мигриралият от един към друг BSS >>> клиент не >>> изпрати фрейм, която да обнови кешовете на L2 устройствата в мрежата, >>> трафикът, >>> адресиран до него, ще продължи да бъде изпращан до предходната му точка >>> за >>> достъп. >>> >>> В hostapd съществува частична имплементация на невлязлата в сила >>> поправка IEEE >>> 802.11f, която се грижи при свързване на нова станция да изпрати от >>> нейно име >>> LLC фрейм до целия Ethernet сегмент[7]. >>> >>> С наскоро приет пач, IAPP имплементацията в hostapd вече работи и при >>> двубандови >>> точки за достъп[10][11]. >>> >>> 3.2. Ускоряване на свързването с новия BSS >>> >>> IEEE 802.11r дефинира два подхода за ускоряване на свързването с BSS-а, >>> към >>> който даден клиент преминава. Това е нужно, защото началното >>> ръкостискане при >>> WPA и ОСОБЕНО при WPA Enterprise е доста времеемко. >>> >>> Двата подхода са preauthentication по въздуха и preauthentication по >>> системата >>> за дистрибуция. hostapd поддържа поне ft-over-ds[8] за WPA И за WPA >>> Enterprise. >>> >>> 4. Бъдещи имплементации >>> >>> На базата на проучването ми на имплементацията на 802.11r, k и v, може >>> да се укаже, че от нова имплементация на client steering няма нужда, но >>> това ще >>> стане ясно по всяка вероятност чак след OF, ако изобщо. >>> >>> Междувременно, Марияне, ако имаш голяма нужда от дадената >>> функционалност, бих ти >>> препоръчал да надградиш форка на Google с дистрибутирано изграждане на >>> съответните списъци от станции и да добавиш допълнителна информация за >>> качеството на връзката с тях. >>> >>> [1] Секция „Neighbor table“ на >>> http://w1.fi/gitweb/gitweb.cgi?p=hostap.git;a=blob_plain;f=h >>> ostapd/hostapd.conf >>> [2] https://www.youtube.com/watch?v=yZcHbD84j5Y >>> [3] https://gfiber.googlesource.com/vendor/opensource/hostap/+/7 >>> 24e9301587faf2d6b13aaa1b09c9914355cc202 >>> [4] Секция „Fast Session Transfer (FST) support“ на >>> http://w1.fi/gitweb/gitweb.cgi?p=hostap.git;a=blob_plain;f=h >>> ostapd/hostapd.conf >>> [5] http://www.cisco.com/c/en/us/td/docs/wireless/controller/8-1 >>> /Enterprise-Mobility-8-1-Design-Guide/Enterprise_Mobility_8- >>> 1_Deployment_Guide/Chapter-11.html >>> [6] Секция „Radio measurements / location“ на >>> http://w1.fi/gitweb/gitweb.cgi?p=hostap.git;a=blob_plain;f=h >>> ostapd/hostapd.conf >>> [7] Секция „IEEE 802.11f“ на >>> http://w1.fi/gitweb/gitweb.cgi?p=hostap.git;a=blob_plain;f=h >>> ostapd/hostapd.conf >>> [8] Секция „IEEE 802.11r“ на >>> http://w1.fi/gitweb/gitweb.cgi?p=hostap.git;a=blob_plain;f=h >>> ostapd/hostapd.conf >>> [9] https://petko.me/openfest/wifi/2014/11/09/openfest-wifi.html >>> [10] https://patchwork.ozlabs.org/patch/656818/ >>> [11] https://github.com/lede-project/source/pull/242 >> >> > _______________________________________________ > Lug-bg mailing list > Lug-bg@linux-bulgaria.org > http://linux-bulgaria.org/mailman/listinfo/lug-bg > >
_______________________________________________ Lug-bg mailing list Lug-bg@linux-bulgaria.org http://linux-bulgaria.org/mailman/listinfo/lug-bg