1
Předmět BROB – Základy robotiky
Jméno Pavel Bukovský
Ročník 3 Studijní skupina B-AMT
Vyuţití funkce MetaRouteru v MikroTik RouterOS
1 ZADÁNÍ:
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).
2
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
3
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í
RouterOS
OpenWRTPC připojen
pomocí ethernetu
případně wifi antény
Mikrotik RouterBoard
4
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
5
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
6
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
7
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.
8
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.
9
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í.
10
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
11
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
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
1
)
2
)
3
)
5
)
4
) 6
)
12
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 eth0
option proto dhcp
3. Uložíme pomocí příkazu „:wq“
13
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).
14
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.
15
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ů.
16
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 [email protected] (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 [email protected] (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
17
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.
18
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).
19
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)