Hlavní navigace

OpenWRT: MetaROUTER v RouterOS

22. 7. 2009
Doba čtení: 5 minut

Sdílet

V diskusi pod minulým článkem jeden z čtenářů zmínil funkci RouterOS MetaROUTER, a jelikož je to dobrý způsob jak RouterOS doplnit o funkce OpenWRT nebo se s ním jen seznámit, tak jsem se rozhodl seriál trochu rozšířit. Ukážeme si, jak nainstalovat OpenWRT jako MetaROUTER v RouterOS a zkusíme si také přidávání aplikací přímo při kompilaci.

Kompilace vs. stáhnuté obrazy

Zatím jsme si ukázali jak zkompilovat OpenWRT do RB433. V článku sice byla zmíněna i možnost získání obrazů někde jinde, ale může se stát, že obrazy buď nebudou vyhovovat nebo budeme potřebovat něco více specializovaného. Když se rozhodnete vzít jednu krabičku, která vám doma leží a najdete si pro ni již přichystaný obraz, bude vše pravděpodobně bez problémů a můžete si dovolit risknout OpenWRT i bez přístupu přes sériovou linku. Na druhou stranu když potřebujete mít obraz přichystaný pro několik zařízení, už bude situace složitější. S OpenWRT se bude lépe pracovat, když bude výsledný obraz vybaven vším co je potřeba. Takže krom základního systému můžeme vyžadovat Collectd pro statistiky, jiný DHCP server, routovací balík Quagga nebo třeba i bash. V krajních případech si třeba vzpomeneme, že potřebujeme přidat do jádra nějakou vlastnost která tam není. Kompilace v tomto případě nesvazuje ruce, a když jsme schopni si vytvořit obraz, nebudeme pak muset dlouze instalovat chybějící balíčky a řešit rozdílné chování na různých routerech.

Když si stáhnete zdrojové kódy OpenWRT z SVN, je výchozí konfigurace nastavena spíše na klientskou stranu. OpenWRT dokáže zastat svou práci i na páteřních spojích, které mají jiné požadavky než u klienta a byla by škoda nevyužít možnosti rozšíření ještě před vytvořením obrazu.

Plné OpenWRT vs. virtualizované

Než se pustíme do praktické části článku, podíváme se, jaké možnosti má virtualizované OpenWRT v RouterOS. Od Mikrotiku byla virtualizace dobrým krokem. Možnost vytvořit virtuální router neboli MetaROUTER, na kterém se může nový administrátor učit má určitě své kouzlo. RouterOS umožňuje připojit k virtuálnímu systému i fyzické rozhraní, takže OpenWRT může plně nahradit RouterOS, pokud jde o síťové služby. Těžko říci, jak velká bude ztráta výkonu, ale určitě by to bylo jako drbání se pravou nohou za levým uchem. Jelikož je RouterOS v síťových věcech relativně schopný (problémy s IPv6), hodí se OpenWRT k jeho doplnění. Pokud potřebujete v RouterOS rozjet webový server, databázi nebo podobné služby, je virtualizovaný OpenWRT ideální volbou.

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ě bez problé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.

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. Pokusme se tedy OpenWRT zkompilovat.

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í.

wget http://www.mikrotik.com/download/openwrt-metarouter-1.1.patch 

Máme-li patch stažený, zbývá ho aplikovat.

patch -p0 < openwrt-metarouter-1.1.patch 

Když půjde vše dobře, spustíme si konfigurační menu.

make menuconfig 

A v něm nastavíme Target System na „Mikrotik MetaROUTER [2.6]“. Pak přejdeme do menu Target Image, kde zaškrtneme tgz.

OpenWRT - config - metarouter

Dále se konfigurační postup shoduje s postupem z minulého článku. Po zkompilování je systém připravený v souboru openwrt-metarouter-rootfs.tgz.

Instalace do RouterOS

Instalace skřípe méně. Začneme tím, že zkopírujeme obraz do RouterBoardu.

$ scp openwrt-metarouter-rootfs.tgz admin@10.0.0.1: 

Pak obraz naimportujeme.

[admin@MikroTik] > metarouter
[admin@MikroTik] /metarouter> import-image file-name=openwrt-metarouter-rootfs.tgz
  imported: 100% 

A ten by měl naběhnout. Ve výchozím stavu je velikost paměti nastavena na 16 MB, ale lze přidělit paměti více i méně. Krom shellu je samozřejmě možné použít i Winbox. Kde se to bude řadě uživatelů dělat lépe.

winbox - metarouter

Než se pokusíme dostat do samotného virtuálního systému, dáme mu ještě přístup do sítě. Nejjednodušší je vytvořit bridge na některém z rozhraní nebo přidělit OpenWRT rozhraní staticky.

[admin@MikroTik] /metarouter> / interface bridge
[admin@MikroTik] /interface bridge> add
[admin@MikroTik] /interface bridge> port
[admin@MikroTik] /interface bridge port> add bridge=bridge1 interface=ether1 

Tím jsme vytvořili bridge na prvním ethernetovém portu. Teď do stejného bridge přidáme virtuální rozhraní.

[admin@MikroTik] /interface bridge port> / metarouter
[admin@MikroTik] /metarouter interface>
[admin@MikroTik] /metarouter interface> add virtual-machine=mr2 dynamic-bridge=bridge1 type=dynamic 

Přesvědčíme se, že se rozhraní přidalo.

[admin@MikroTik] /metarouter interface> / interface print
Flags: D - dynamic, X - disabled, R - running, S - slave
 #     NAME                                                                                                                                                                             TYPE             MTU
 0  R  wlan1                                     wlan             1500
 1  R  wlan2                                     wlan             1500
 2  R  ether1                                    ether            1500
 3     ether2                                    ether            1500
 4     ether3                                    ether            1500
 5  R  bridge1                                   bridge           1500
 6 DR  vif1                                      vif              1500 

Zbývá připojit se do OpenWRT a nastavit mu adresu. To provedeme pomocí příkazu console.

[admin@MikroTik] /metarouter> console mr2 

Objeví se nám příkazová řádka OpenWRT. Až provedeme, co potřebujeme, budeme se chtít určitě dostat zpět do RouterOS. Na to použijeme zkratku Ctrl+A a podle nápovědy zvolíme Q. Bohužel tato funkce nefunguje ve Screenu. Přístup k MetaROUTERům je ve Winboxu přeci jen příjemnější.

Přidáváme balíček do obrazu a upravujeme jádro

Abychom instalaci uzavřeli, ukážeme si ještě jak doplnit konfigurační proces o nové balíčky. Ty se pak objeví v konfiguračním menu a my si je můžeme přidat do obrazu. Také si ukážeme, jak upravit konfiguraci jádra a přidat některé vlastnosti, které se můžou hodit.

Nejdříve si musíme stáhnout repositář s balíčky. Jde o skripty, pomocí kterých se balíčky zkompilují.

$ cd ..
$ svn co svn://svn.openwrt.org/openwrt/packages 

Teď bychom měli mít dva adresáře. Jeden je naše vývojová verze OpenWRT a druhý obsahuje hromadu balíčků. Prohlédneme si seznam balíčků a pokud chceme nějaký v našem obrazu, překopírujeme ho z jeho místa do trunk/packages.

$ cp packages/net/nmap trunk/package/ -R
$ cp packages/libs/libdnet trunk/package/ -R
$ cp packages/libs/uclibc++/ trunk/package/ -R 

Teď když se podíváme do konfiguračního okna, uvidíme tam nmap. Nesmíme zapomenou nakopírovat i jeho závislosti. Ty najde v Makefilu každého z balíčků.

openwrt - config - nmap

Pak už ho stačí jen zařadit a po kompilaci a instalaci ho najdeme již v systému.

Když chceme zasáhnout i do jádra systému, uděláme to pomocí:

CS24_early

$ make kernel_menuconfig 

Objeví se nám klasický dialog pro konfiguraci jádra.

Závěr

V tomto díle jsme si dokončili téma instalace a zbývá nám už jen konfigurace. Ta je v mnohých případech velmi veselá, protože k některým věcem není dokumentace a nezbývá než hledat a domýšlet, ale o tom až příště.

Seriál: OpenWRT

Byl pro vás článek přínosný?

Autor článku

Adam Štrauch je redaktorem serveru Root.cz a svobodný software nasazuje jak na desktopech tak i na routerech a serverech. Ve svém volném čase se stará o komunitní síť, ve které je již přes 100 členů.