Seamless roaming megvalósítása Mikrotik környezetben

A fenti kérdéskör elég régóta foglalkoztat. Az albérletemben Ubiquity UniFi AP-k vannak, ott már évek óta megoldott a seamless roaming/load balance, szóval el vagyok kényelmesedve. Itthon viszont Mikrotik AP-k vannak, történelmi okok miatt, tehát ebből kell kihoznom a maximumot. Körüljártam a lehetőségeket:

  • WDS Mesh
  • Mesh interface
  • CAPsMAN

A WDS Mesh kizárva, egyrészt mert sávszélességcsökkenéssel jár, másrészt pedig mert – működési elvéből adódóan – össze kell kapcsolódnia a két AP-nek, ami nálam elég nehezen megvalósítható a lakás zegzugossága miatt.

A Mesh interface elvileg erre van kitalálva, gyakorlatilag viszont nem sikerült működésre bírnom, elég körülményes a dokumentáció, nincs rendesen dokumentált used-case, nálam pedig kissé bonyolult a hálózat (a két AP között egy harmadik mikrotik van, bridge módban, filterekkel, vlanokkal, multicasttal, meg mindenféle finomsággal).

Itt egy kép a jelenlegi struktúráról, amin majd magyarázni fogok.

Képernyőfotó 2015-04-04 - 23.49.22

Az egyik AP-kártya (R52) a Core Routerben van, ami egy RB433, 2.4GHz, B/G módban. A másik AP pedig az AP2 jelű RB433AH, amiben egy R52h foglal helyet. A Switch 750GL és a 433AH közötti powerline szakaszon közlekedik még egy IPTV is, mert abba a szobába jelenleg nem lehet kábelezni, ez is bonyodalmakat jelent. Többek között ezért kellett 750GL-t betenni a köztes szakaszra, mert az előző butaswitch nem tudott mit kezdeni a .1q tag forgalommal.

Térjünk a lényegre; miért is íródott ez a bejegyzés.

CAPsMAN.

Aki nem tudja miről van szó, azt felvilágosítom. A CAPsMAN a Mikrotik válasza az UniFi-re, illetve egészen pontosan az UniFi Managerre. A betűszó a Controlled AccessPoint MANager kifejezésből származik, és funkcionalitásban valami hasonlót tűztek ki igényként, mint a konkurencia. Hogy hogyan sikerült? Meglátjuk…

A CAPsMAN annyiban különbözik a riválistól, hogy itt a manager (controller) egy másik router, nem kell hozzá PC, szerver, meg semmi egyéb, csak bármilyen, 6.24 feletti ROS verziót futtató eszköz. Természetesen lehet ez akár X86 is, de simán elfut bármilyen routeren. A másik nagy különbség, hogy nincs szükség speciális hardverre. Az UniFi kontroller csak UniFi eszközöket támogat, más Ubiquity cuccot (pl. NanoStation, Rocket) nem, addig itt bármilyen RouterOS 6.24+-t futtató router bármelyik tetszőleges kártyáját be tudjuk vonni a managelt AP-k körébe.
A hasonlóságok száma sokkal nagyobb, tudunk wireless profilokat (ssid, csatorna, sávszélesség, wireless-mode), illetve security profilokat is definiálni, amiket kézzel rendelhetünk hozzá bármelyik AP-hez, de hozhatunk létre automatikus provisioning profilt is, ami bármilyen (megfelelően konfigurált) AP-t maga alá tud tekerni.

Mire van szükségünk?

  • 1db Routerre, ami kontrollerként fog működni, ez esetemben a Switch-750GL.
  • 1 (vagy több) AP-re, esetemben a Core, illetve az AP2 1-1 wireless kártyája lesz az áldozat
  • RouterOS 6.24+ (nálam 6.27), és engedélyezett wireless-fp csomag, minden eszközön (a kontrolleren is!).
  • Az AP-ken megfelelő (min LVL4) licensz
  • Feltételezem, hogy alapvető konfiggal mindenki rendelkezik, tehát az eszközök egy broadcast domainben vannak, van IP címük, etc…

Kezdjünk is bele.

  • Első lépésként nyissuk meg mindhárom routert winboxszal, és ellenőrizzük, hogy a CAPsMAN menüpont megjelent-e.
  • Ha igen, akkor a kontrolleren nyissuk meg a CAPsMAN menüpontot, nyomjuk meg a Manager gombot, és töltsük ki a screenshotnak megfelelően:
  • Képernyőfotó 2015-04-05 - 0.14.18
  • Ha lenyomjuk az OK/Apply gombot, pár másodperc után megjelenik az alsó két mezőben a generált certificate neve, innen tudjuk hogy a kontrollerünk készen áll a használatra.
  • Most nyissuk meg az első AP-t, kattintsunk a Wireless menüpontra, majd a megnyíló ablak első fülén a CAP feliratú gombra.
  • Képernyőfotó 2015-04-05 - 0.21.00
  • Az enable mellé menjen a pipa, az interface a CAPsMAN segítségével managelni kívánt wifi-kártya, a certificate-nél ki kell választania a “request” pontot, így a managertől fog kérni, a discovery interface pedig annak az ethernet/bridge portnak a neve, amin kapcsolatunk van a kontrollerrel.
  • Ha mindent jól csináltunk, valami ilyesmit kellene látnunk:
  • Képernyőfotó 2015-04-05 - 0.23.42
  • Természetesen az SSID/csatorna ekkor még üres lesz, de a lényeg itt látható. Az interface a kezelőfelület felől disabled státuszban lesz, hiába eszközölünk rajta bármilyen változást, nem fog működni. Fontos, hogy a CAPsMAN működése miatt az interfésznek nem kell semmilyen bridge-ben lennie!
  • Ha ezzel megvagyunk, akkor ezeket a pontokat ismételjük meg minden olyan AP-n, amit együtt szeretnénk managelni.

Aki idáig eljutott, az egyrészt meghívhat egy kólára, másrészt elég kitartó. Igérem, nincs már sok hátra:

  • Következő lépéshez lépjünk vissza a managerbe, a CAPsMAN menüpont Security Cfg. fülére:
  • Képernyőfotó 2015-04-05 - 0.37.41
  • Adjunk hozzá egy security profilt, itt egy WPA-WPA2 PSK Mixed profil látható, nem akartam módosítani a jelenlegi beállításokat, hogy kompatibilis maradjak azzal a sok eszközzel, amin el vannak mentve.
  • Térjünk vissza a Configurations menüpontra, és ott is csináljunk egy profilt:
  • Képernyőfotó 2015-04-05 - 0.41.09 Képernyőfotó 2015-04-05 - 0.41.18 Képernyőfotó 2015-04-05 - 0.41.26
  • Amikor végeztünk, nincs más dolgunk, mint átkattintani az interfaces fülre, ahol valami ilyesmi fogad minket:
  • Képernyőfotó 2015-04-05 - 0.42.50
  • Itt látható a két felvett AP, a screenshoton már létező konfig-profillal. Duplaklikkeljük meg a cap1-et:
  • Képernyőfotó 2015-04-05 - 0.44.31
  • Válasszuk ki az előzőleg létrehozott konfigurációs profilt, applyzzunk, és készen is vagyunk. Ezt tegyük meg a második AP-n is, ezzel végeztünk is a konfigurációval.
  • Ha mindent jól csináltunk, akkor wifin már látnunk kell a megfelelő SSID-t, a beállított paraméterekkel.
  • Már csak annyi dolgunk van, hogy a manager eszközön a cap1-cap2 interfészeket tegyük be a megfelelő (nálam “home-bridge”) bridge alá, és örüljünk.

Rövidtávú tapasztalatok: egy elindított ping sétálgatva a lakáson belül sehol nem szakadt meg, átjelentkezés is teljesen észrevétlenül zajlott, az eszközök szépen elintéztek mindent. A konfiguráció kb 20-25 perc alatt megvolt, és elsőre működött minden, aminek működnie kellett.

Update: pontosítás; 6.24-től felfelé van CAPsMAN v2, a leírás ahhoz készült, úgyhogy frissítettem a verziószámokat.