Předmět Jméno BROB Základy robotiky Pavel Bukovský 1 ZADÁNÍ: Ročník 3 Studijní skupina B-AMT Vyuţití funkce MetaRouteru v MikroTik RouterOS Prozkoumejte možnosti virtuálního stroje MetaRouter, který je implementován v operačním systému MikroTik RouterOS. Otestujte funkčnost operačních systémů (např. OpenWRT) ve virtuálním stroji na této platformě. Zaměřte se také na stabilitu operačního systému ve virtuálním stroji, ale i na stabilitu samotného MikroTik RouterOS při spuštěném virtuálním stroji. Zjistěte, které operační systémy lze v současnosti spustit ve virtuálním stroji MetaRouter. Realizovaná řešení ověřte na různých typech HW (např. RB411AH, RB493G a jiné). V operačním systému, který bude spuštěn ve virtuálním stroji, realizujte aplikaci, která bude zasílat pomocí UDP protokolu stav daného HW (např. identifikace zařízení, datové toky, atd). 1
OBSAH 1 Zadání:... 1 2 Použití RouterBoadu v robotice... 3 2.1 Schéma použití... 3 2.2 Technické parametry Mikrotiku RB411AH... 4 2.3 MikroTik RouterBOARD RB493G... 5 3 Router OS... 6 3.1 Forma distribuce... 6 3.2 Historie... 6 3.3 Praktické použití... 6 3.4 Update Router OS... 7 4 Operační systémy pro Router OS Metarouter... 9 4.1 OpenWRT systém... 9 4.1.1 Jak na OpenWRT jako MetaROUTER... 9 4.1.2 Kompilace... 9 4.1.3 Zkušenosti s kompilací... 10 4.2 DD-WRT systém... 11 5 Nastavení Mikrotiku a Metarouteru pro komunikaci... 11 5.1 Nastavení Metarouteru... 11 5.2 Nastavení sítě Mikrotiku v prostředí WINBOX... 13 6 Možnosti připojení... 16 7 Zkušenosti s Mikrotikem... 17 7.1 Hepldesk MikroTiku... 17 7.2 Fórum www.mikrotik.com... 17 7.3 Zkušenost se stabilitou OpenWRT v MetaRouteru... 18 8 Závěr... 19 2
2 POUŢITÍ ROUTERBOADU V ROBOTICE Důvod této práce v předmětu Základy robotiky je následující. Z robotů je potřeba přenášet informace, video, ovládat ho, komunikovat s ním. Existuje mnoho způsobů jak toho dosáhnout, například pomocí drátu. Tento způsob je ale omezen nejen délkou drátu ale také komplikovaným pohybem pohybem v prostředí. Další způsob je pomocí bezdrátové komunikace. Vzhledem k regulaci frekvenčního pásu v EU je pro komunikaci potřeba najít prostor v nelicencovaném pásu. V úvahu připadá použití technologie WiFi a frekvencí 2,4GHz a 5GHz. Z důvodu zarušeného frekvenčního pásma 2,4GHz s nízkým počtem nepřekrývajících se kanálu je téměř nutné používat 5GHz frekvenční pásmo. Proto je dobré použít desky RouterBoard od firmy MikroTik běžících na linuxovém operačním systému, díky němuž jsou stabilní a jsou hojně využívány pro zajištění komunikace mezi bezdrátovými spoji. Tyto desky jsou velmi robustní a také odolné vůči okolnímu prostředí (především teplotám), což je jeden z mnoha důvodů jeho použití. Ideou zkoumanou na Ústavu automatizace je použít tuto desku pro komunikaci s roboty. Operátor by se připojil pomocí WiFi na robota, přičemž DHCP server by běžel v RouterOS a systém OpenWRT by posílal informace (identifikace, datové toky, atd.). Příklad použití je vidět na následující straně na obrázku. 2.1 Schéma pouţití Mikrotik RouterBoard PC připojen pomocí ethernetu případně wifi antény RouterOS OpenWRT 3
2.2 Technické parametry Mikrotiku RB411AH Parametry a specifikace: LAN port: 1x 10/100 Mbit/s NAND: 64MB Napájení: Jack, PoE: 12-28V Jack: 9-28V, PoE: 12-28 V Procesor: Atheros AR7130 300 MHz Provozní teplota: -20 až 60 C RAM: 32MB DDR SDRAM Rozměry: 105 x 105 mm Sloty: 1x minipci I/O Control: 1x serial port DB9 RS-232C OS: Mikrotik - RouterOS Level 4 MiniPCI: 1x minipci 4
2.3 MikroTik RouterBOARD RB493G Popis produktu: Nový RouterBoard Mikrotik RB493G je variantou RB493AH s procesorem Atheros AR7161 pracujícím na frekvenci 680 MHz. Novinkou jsou Gigabitové Ethernet porty, 1x USB 2.0 port s podporou 3G modemů, microsd card slot a větší, 256 MB paměť. 3x minipci slot a 9x 10/100/1000 Mbps Ethernet porty Parametry a specifikace: Procesor: Atheros AR7161 680 MHz Paměť SDRAM: 256 MB Paměť NAND: 64 MB Software: MikroTik RouterOS Level 5 předinstalován, aktivován Porty: 9x LAN 10/100/100 Base-T Fast Ethernet port Auto MDI/X konektor RJ-45, podpora PoE na konektoru LAN1( proprietární) 1x Sériový port RS-232C, konektor DB9 1x USB 2.0 port Interface: 3x minipci slot, Type IIIA/IIIB 1x konektor pro větrák 1x microsd card slot Management: Local/Remote - Winbox, Telnet, SSH Web management SNMP Napájení: Jack: 10-28V DC PoE: 10-28 V DC Pracovní podmínky: Teplota: -20 až +65 C Rozměry: 16 x 10,5 x 2 cm Hmotnost: 189 g 5
3 ROUTER OS MikroTik RouterOS je routerový operační systém založen na bázi Linux OS, vhodný zejména pro bezdrátové spoje a jako bezpečný HW firewall popřípadě router se snadnou GUI konfigurací. Komunikace s tímto OS se v současnosti provádí zejména přes GUI Winbox, ssh, telnet, sériovou konzoli, Mac-telnet (specifický protokol komunikující po 2. síťové vrstvě na správu OS bez zavedení IP adres). Dnes je tento OS zejména uplatňován u kvalitních bezdrátových spojů 802.11a, 802.11b/g a 802.11n 3.1 Forma distribuce Tento routerový operační systém je koncipován pro platformy: i386, mips, powerpc a je distribuován v podobě instalačních balíčků NPK pro embeded řešení, v podobě předinstalovaného systému na RouterBoardu či v podobě klasického ISO souboru jako obrazu CD k vypálení. 3.2 Historie Vývoj MikroTik RouterOS sahá do roku 1995 kdy společnost MikroTik začala svou činnost vývojem a prodejem bezdrátových systémů zejména pro ISP. Původně byl tento OS vyvíjen v Lotyšsku pro dřívější Sovětský svaz. Následné zkušenosti s PC přivedly vývojáře k vybudování routovacího software MikroTik v2 PC, který přinesl výraznou stabilitu, ovladatelnost a flexibilitu pro všechny typy komunikačních periférií a kompatibilitu routovacích systémů založených na standardu PC. 3.3 Praktické pouţití Bezpečnostní Firewall Omezující Firewall (QoS) VPN (Tunel) Server/Klient s podporou protokolů PPP, PPTP, L2TP, OVPN, EoIP, IPsec WiFi zařízení v režimech AP, Klient, WDS, Nstreeme (Podpora protokolů 802.11abgn) Kompletní Hotspotové řešení pro hotely, letiště, kavárny včetně billingu Proxy server Bridge Router s podporou dynamických protokolů (RIP, OSPF, BGP, MME) Syslog TrafficMonitor Server 6
3.4 Update Router OS Vzhledem k nestabilní verzi MikroTik OS 5.4 jsem musel nainstalovat novou verzi. Postup instalace nove verze. Ze stránek www.mikrotik.com/download.html stáhneme pro příslušnou sérii RouterBoardu aktuální Stable verzi ve formatu ZIP file případně NPK Ten následně rozbalíme na lokálním počítači do složky. Poté se musíme připojit přes WinBox k RouterBoardu. Tam klikneme na položku Files. V lokální složce vybereme všechny soubory a přesuneme je nad okno Winboxu File List. Tím se nahrají do RouterBoardu soubory. 7
Po nahrání souborů v menu System zvolíme Reboot a tím restartujeme RouterBoard. Při restartu se automaticky nahraje nová verze RouterOS. Tento upgrade trvá přibližně 2 minuty. Potvrzení, že vše proběhlo v pořádku lze ověřit tím, že se připojíme k RouterBouardu přes ssh. 8
4 OPERAČNÍ SYSTÉMY PRO ROUTER OS METAROUTER 4.1 OpenWRT systém OpenWrt je linuxovou distribucí primárně určenou pro routování na embedded zařízeních. Pro tuto linuxovou distribuci je kolem 2000 balíků, a pro jejich správu se používá balíčkový nástroj opkg. Podporované platformy (50 různých CPU platform): AVR32, ARM, CRIS, m68k, MIPS, PowerPC, SPARC, SuperH, Ubicom32, x86, x86-64 MikroTik pro svou vizualizaci používá MIPS technologie. 4.1.1 Jak na OpenWRT jako MetaROUTER Než se o něco pokusíme, potřebujeme obraz systému, který nahrajeme do RouterOS. Máme dvě možnosti, jak ho získat. První možnost je si aktuální obraz se systémem stáhnout z fóra Mikrotiku nebo aplikovat patch a zkompilovat systém podobně jako jsme to dělali v minulém díle. Patch bohužel není úplně bezproblémový a prakticky se mi nepodařilo ho bez úprav aplikovat. Možná budete mít více štěstí. Krom těchto věcí, musíme mít na stole RB4 x nebo RB1000 a dostatečně novou verzi RouterOS. 4.1.2 Kompilace Dobrým zdrojem informací je Mikrotik wiki, kde je k nalezení jak patch, tak obraz. Aktuálnější jsou ale k nalezení na zmíněném fóru. Nejdříve si stáhneme vývojovou verzi OpenWRT z svn: mkdir openwrt cd openwrt svn co svn://svn.openwrt.org/openwrt/trunk cd trunk Pak zajdeme na wiki a stáhneme si aktuální patch. Je třeba zmínit, že OpenWRT se stále mění a tak patch nemusí fungovat na všech revizích. Pokud se vyskytne nějaký problém, tak stačí použít svn update -r [revize] a najít si nějakou starší a funkční. 9
wget http://www.mikrotik.com/download/metarouter/openwrt-metarouter- 1.2.patch Máme-li patch stažený, zbývá ho aplikovat. patch -p0 < openwrt-metarouter-1.2.patch Pokud chceme mít možnost přidání různých nástrojů, spusťte dva následující příkazy:./scripts/feeds update -a./scripts/feeds install -a Když půjde vše dobře, spustíme si konfigurační menu. make menuconfig V tomto menu nastavíme Target System na Mikrotik MetaROUTER. Pak přejdeme do menu Target Image, kde zaškrtneme tgz. Pro kompilaci je potřeba mít nainstalované tyto balíčky: make, getopt, fileutils, gcc, g++, ncurses, zlib,gawk, flex, unzip, bzip2, patch, perl, python, wget, git, gnutar, svn, gnu-find, getopt-extended. Poté do konsole napíšeme příkaz make j 6 Kde parametr -j 6 zvýší rychlost kompilace v závislosti na výkonu vašeho CPU a počtu jader. Bez použití tohoto parametru trvá kompilace téměř 40 minut. 4.1.3 Zkušenosti s kompilací Při kompilaci jsem narazil na komplikaci. Problém byl a stále je v tom, že se pracuje s aktuálním SVN trunkem. Před dvěma měsíci bylo svn ve stavu, kdy se dala 10
zkompilovat. Bohužel mnou vytvořená verze byla velmi nestabilní, a proto jsem po zbytek testování využíval už zkompilovanému imagu. A každý týden jsem se pokoušel zkompilovat vlastní verzi, bohužel neúspěšně. 4.2 DD-WRT systém DD-WRT je firmware založený na Linuxu určený pro bezdrátové routery. DD-WTR je projektem třetí strany určený k přehrání základních firmwaru na routerech. Přidává totiž podporu pro nové služby, které tovární firmwary neumí (Kai, IPv6, RADIUS server, QoS, NAS, VPN, podpora SD karet, atd.). V součastné době dle oficiálních stránek projektu není a ani nebude podporován v MetaRouteru. 5 NASTAVENÍ MIKROTIKU A METAROUTERU PRO KOMUNIKACI 5.1 Nastavení Metarouteru Nejprve vytvoříme nebo stáhneme image OpenWRT pro Metarouter 2 1 3 5 4 1) Ve Winboxu klikneme na funkci MetaROUTER 2) Vybereme Import Image 3) Zvolíme image uložený v paměti 4) Nastavíme velikost pamětí RAM pro OpenWRT 5) Spustíme 6) Počkáme, než se provede Import 6 11
Dále nastavíme interface pro MetaROUTER a) Zvolíme kartu Interfaces b) Pomocí + přidáme nové rozhraní c) Zvolíme pro virtuální stroj d) Spojení bude dynamické e) Zvolíme dynamický bridge f) Potvrdíme OK Nastavení síťové komunikace pro OpenWRT 1. V prostředí OpenWRT zadáme příkaz vi /etc/config/network 2. Změníme původní nastavení na následující text config interface loopback option ifname lo option proto static option ipaddr 127.0.0.1 option netmask 255.0.0.0 config interface ethernet option ifname option proto eth0 dhcp 3. Uložíme pomocí příkazu :wq 12
5.2 Nastavení sítě Mikrotiku v prostředí WINBOX Nejprve nastavíme interface a bridge Vždy pomocí tlačítka + přidáme rozhraní a necháme jeho původní nastavení. Pak přejdeme na záložku Ethernet Zde jen zkontrolujeme, že je ether1 aktivní (platí pro připojení přes sériovou linku). 13
V záložce Bridge pomocí + vytvoříme most a nastavení necháme původní. Následně se přepneme na záložku Ports a vytvoříme dva porty. Jeden port pro spojení ether1 bridge1 a druhý pro virtuální interface bridge1, zbylé parametry necháme na původních hodnotách. 14
5.2.1.1 Pro správné fungování je nutné nastavit rozsah v záloţce IP-Pool Nastavení DHCP serveru je potřeba provést podle následujících dvou obrázků. 15
Dokončení nastavení DHCP serveru. Nyní by měla být konfigurace Mikrotiku a OpenWRT hotová. 6 MOŢNOSTI PŘIPOJENÍ Mikrotik má přiřazenou adresu 172.31.0.1 a lze se na něj připojit pomocí: Ssh: ssh admin@172.31.0.1 (bez hesla) WinBOXu Telnetu: telnet://172.31.0.1 Webového prostředí: http:172.31.0.1 Pro připojení není nastaveno žádné heslo OpenWRT má IP adresu 172.31.0.13 a připojit se lze pomocí Ssh: ssh root@172.31.0.13 (heslo je nastaveno na toor ) Winbox položka Metarouter, vybereme Vaši image, klepneme pravým tlačítkem myši a zvolíme možnost console Telnet Scp 16
7 ZKUŠENOSTI S MIKROTIKEM V době, kdy jsem dostal RouterBoard, byla verze firmwaru na 2.29 a RouterOS byl ve verzi 5.11. V této sestavě byl chod velmi nestabilní i bez používání funkce MetaROUTER. S příchodem verze RouterOS 5.12 a verze firmwaru 2.39 se stabilita samotné desky zvýšila. Po zapnutí funkce MetaRouteru však byla dále nestabilní. Nyní je RouterOS ve verzi 5.15 a verze firmwaru stále 2.39. Samotný RouterBoard je již stabilní, dokonce i po zapnutí funkce MetaRouteru je stále stabilní. Bohužel jen do doby, než začneme s OpenWRT pracovat. Stačí se jen dotazovat na odezvu pomocí příkazu ping, či testovacího nástroje v RouterOS, a deska se sama restartuje (většinou během několika minut). Možnou příčinou jsou špatné napájecí obvody díky špatným napájecím obvodům na samotné desce. 7.1 Hepldesk MikroTiku Problémy se stabilitou jsem řešil s technickou podporou, od ní jsem se dozvěděl následující možnosti: Při použití high power minipci karet, je potřeba použít výkonnější zdroj. Aktuální verze OS a BIOSu jsou v pořádku. Nepomůže-li jiný zdroj, tak mám RouterBoard reklamovat. Helpdesk Mikrotiku mě naznačil, že je zřejmě problém v Metarouteru, a že v rámci placené podpory (600kč za hodinu) se mi na to v Praze podívají. 7.2 Fórum www.mikrotik.com Na stránkách mikrotiku jsem se dostal do vlákna, ve kterém již několik let řeší onu nestabilitu. Jednalo se sice o jiné desky, ale problémy jsou stejné. Tento problém se na stránkách řeší od roku 2009 a není vyřešen podle reakcí uživatelů dodnes. Mé postřehy jsou následující: Upgrade firmware a bootloaderu nic nevyřešil, Změna zdroje pomohla jen někomu, zvýšil se sice uptime, ale problém přetrval. Bylo jedno, jaký máte RouterBoard, problém byl stejný. Nezávisí na konfiguraci nastavené v RouterBoardu. 17
7.3 Zkušenost se stabilitou OpenWRT v MetaRouteru Při práci s RouterBoardem jsem vyzkoušel z předchozích rad vše, ale vždy byla situace stejná, stačila jakákoliv komunikace s OpenWRT v Metarouteru k tomu, aby se deska se restartovala. Pro napájení RouterBoardu jsem používal zdroj DVE s parametry 24V a 0,8A. Pokusil jsem se změnit napájecí zdroj za jiný, který měl parametry 12V a 1,25A, bohužel bez výsledků. Na fóru MikroTiku jeden z diskutujících napsal možný důvod této nestability. Problém je zřejmě v použitém CPU Atheros 7161 běžícím na 680 MHz. Momentálně poslední post na fóru Mikrotiku zabývající se stabilitou MetaRouteru je velmi výmluvný: As you can read from my previous posts, the MR aren't useful in any platform. If you want virtualization in ROS, go for x86 platform and run KVM (Qemu) guests.. Dále při testování jsem zjistil další zajímavost, pokud běží MetaRouter ale není na OpenWRT směrovaný žádný sítový provoz, OpenWRT čas od času přestane reagovat. Můžeme ho obnovit tak, že ve vlastnostech virtuální stanice zvolíme Reboot, nebo případně zvolíme Disable a následně Enable (zaručeně naskočí a není potřeba dlouho čekat). 18
8 ZÁVĚR Cílem této práce bylo zjistit jak je na tom stabilita operačních systémů ve vizualizačním stroji MetaRouter. Momentálně existuje jen jeden, a tím je linuxový operační systém určen pro routery s názvem OpenWRT. DD-WRT implementaci do MetaRouteru podle stránek v plánu nemá. Značnou dobu testování mi zabrala samotná konfiguce Mikrotiku, aby byl RouterOS použit pro routování a OpenWRT jako klient. Po vyřešení problému s nastavením jsem začal testovat stabilitu. Zprvu byl samotný RouterBoard nestabilní, po nahrání nového bootloaderu a RoouterOSu se tento problém vyřešil. Když na řadu přišlo testování mnou zkompilovaného OpenWRT, byla deska velmi nestabilní a neustále se v krátkých intervalech restartovala. Začal jsem používat image OpenWRT, který byl ke stažení na stránkách. Ten se choval velmi stabilně, pokud na něj nebyl směřován jakýkoliv síťový provoz (RouteBoard jde shodit pomocí příkazu ping). Po konzultaci s vyučujícím jsem se znovu pokusil zkompilovat další image OpenWRT, bohužel neúspěšně. Už 2 měsíce je svn trunk OpenWRT nekompilovatelný pro MikroTik MetaRouter MIPS. Účelem této práce mělo být také vytvoření aplikace, která by posílala přes UDP protokol stav daného hardwaru. Po domluvě s vyučujícím jsem od toho upustil, vzhledem k mým programátorským znalostem. Během testování jsem dospěl k názoru, který potvrdilo fórum MikroTiku, kde se problém se stabilitou řeší od roku 2009. RouterBoard s RouterOS je skvělý a stabilní nástroj pro routování počítačové sítě, nikoliv pro vizualizaci dalšího operačního systému. Možnost dalšího vývoje projektu: Nahradit v RouterBoardu RouterOS přímo OpenWRT je sice možné, ale momentálně pro RB493G se pracuje na první verzi, a pro RB411AH není podpora vůbec. Zvážit použití odlišné architektury např. ARM a použití standardní linuxové platformy (např Debian) 19