Uruchomienie OpenWrt jako wirtualnego obrazu w MikroTik na RouterOS
Ostatnia zmiana: 2013-11-26 18:43
Metarouter jest systemem wirtualizacji zastosowanym w systemie operacyjnym urządzeń MikroTik, czyli RouterOS. Można na nim uruchomić m.in. OpenWrt. Szczegóły proces uruchomienia i konfiguracji opisuje angielskojęzyczne wiki MikroTika:
http://wiki.mikrotik.com/wiki/Manual:Metarouter, dostępne jest także tłumaczenie na
polskim wiki. Poniżej przedstawiono szybki proces konfiguracji w RouterBOARD RB2011-UAS z RouterOS v5.22.
Pobieranie obrazu
MikroTik udostępnia specjalne łatki umożliwiające samodzielną budowę wymaganych obrazów. Jednakże można także posłużyć się udostępnionymi gotowymi obrazami. Dla wspomnianego urządzenia (platforma mipsbe) należy pobrać
ten plik. Jest to dość stary build (w chwili pisania - r20828, trunk/kamikaze), jednakże pozwala na zapoznanie się z działaniem systemu.
Pobrany plik należy przesłać do urządzenia wykorzystując WebFig (menu Files) lub po prostu skopiować do routera poleceniem
scp:
$ scp Pobrane/openwrt-mr-ppc-rootfs.tgz admin@192.168.88.1:
Tworzenie nowego systemu
Logujemy się do MT, tworzymy nową instancję systemu. Określono tu także ilość dostępnej ilości pamięci RAM dla wirtualki (32MB).
$ telnet 192.168.88.1
Login: admin
Password:
MMM MMM KKK TTTTTTTTTTT KKK
MMMM MMMM KKK TTTTTTTTTTT KKK
MMM MMMM MMM III KKK KKK RRRRRR OOOOOO TTT III KKK KKK
MMM MM MMM III KKKKK RRR RRR OOO OOO TTT III KKKKK
MMM MMM III KKK KKK RRRRRR OOO OOO TTT III KKK KKK
MMM MMM III KKK KKK RRR RRR OOOOOO TTT III KKK KKK
MikroTik RouterOS 5.22 (c) 1999-2012 http://www.mikrotik.com/
[admin@MikroTik] >
[admin@MikroTik] > metarouter
[admin@MikroTik] /metarouter>
[admin@MikroTik] /metarouter> import-image file-name=openwrt-mr-mips-rootfs.tgz memory-size=32
[admin@MikroTik] /metarouter> print
Flags: X - disabled
# NAME MEMORY-SIZE DISK-SIZE USED-DISK STATE
0 mr3 32MiB unlimited 5140kiB running
Konfiguracja interfejsu sieciowego
W tym przypadku przyjęto najprostsze rozwiązanie - należy utworzyć wirtualny interfejs i zrobić
bridge pomiędzy nim a istniejącym interfejsem fizycznym MT. Należy odczytać listę interfejsów MT:
[admin@MikroTik] > /interface print
Flags: D - dynamic, X - disabled, R - running, S - slave
# NAME TYPE MTU L2MTU MAX-L2MTU
0 sfp1-gateway ether 1500 1598 4074
1 ether1-gateway ether 1500 1598 4074
2 ether2 ether 1500 1598 4074
3 ether3 ether 1500 1598 4074
4 ether4 ether 1500 1598 4074
5 R ether5 ether 1500 1598 4074
6 ether6-master-local ether 1500 1598 2028
7 ether7-slave-local ether 1500 1598 2028
8 ether8-slave-local ether 1500 1598 2028
9 ether9-slave-local ether 1500 1598 2028
10 ether10-slave-local ether 1500 1598 2028
11 R bridge-local bridge 1500 1598
W tym przypadku był to
bridge-local. Tworzymy więc nowy interfejs wirtualny dla naszego OpenWrt
[admin@MikroTik] /metarouter> interface add virtual-machine=mr3 type=dynamic dynamic-bridge=bridge-local
Należy teraz podłączyć się do uruchomionego obrazu i zmienić adres interfejsu lan na np.
192.168.88.2
[admin@MikroTik] /metarouter> console 0
[Ctrl-A is the prefix key]
root@OpenWrt:/# uci set network.lan.ipaddr=192.168.88.2
root@OpenWrt:/# uci commit
root@OpenWrt:/# /etc/init.d/network restart
Poniżej bootlog działającej maszyny wirtualnej OpenWrt:
root@OpenWrt:/# dmesg
Linux version 2.6.31.10 (maris@bumba) (gcc version 4.3.3 (GCC) ) #1 Tue Apr 13 10:46:14 EEST 2010
CPU revision is: 0001800a (MIPS 4Kc)
Determined physical RAM map:
User-defined physical RAM map:
memory: 01000000 @ 00000000 (usable)
Initrd not found or empty - disabling initrd
Zone PFN ranges:
Normal 0x00000000 -> 0x00001000
Movable zone start PFN for each node
early_node_map[1] active PFN ranges
0: 0x00000000 -> 0x00001000
On node 0 totalpages: 4096
free_area_init_node: node 0, pgdat c031dba0, node_mem_map c035a000
Normal zone: 32 pages used for memmap
Normal zone: 0 pages reserved
Normal zone: 4064 pages, LIFO batch:0
Built 1 zonelists in Zone order, mobility grouping off. Total pages: 4064
Kernel command line: init=/etc/preinit console=hvc0 board=vm mem=16M
PID hash table entries: 64 (order: 6, 256 bytes)
Dentry cache hash table entries: 2048 (order: 1, 8192 bytes)
Inode-cache hash table entries: 1024 (order: 0, 4096 bytes)
Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes.
Primary data cache 32kB, 4-way, VIPT, cache aliases, linesize 32 bytes
Memory: 12808k/16384k available (1881k kernel code, 3576k reserved, 287k data, 120k init, 0k highmem)
NR_IRQS:128
console [hvc0] enabled
Calibrating delay loop... 262.14 BogoMIPS (lpj=524288)
Mount-cache hash table entries: 512
NET: Registered protocol family 16
bio: create slab <bio-0> at 0
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 512 (order: 0, 4096 bytes)
TCP bind hash table entries: 512 (order: -1, 2048 bytes)
TCP: Hash tables configured (established 512 bind 512)
TCP reno registered
NET: Registered protocol family 1
MFS init
squashfs: version 4.0 (2009/01/31) Phillip Lougher
Registering mini_fo version $Id$
msgmni has been set to 25
io scheduler noop registered
io scheduler deadline registered (default)
TCP westwood registered
NET: Registered protocol family 17
802.1Q VLAN Support v1.8 Ben Greear <greearb@candelatech.com>
All bugs added by David S. Miller <davem@redhat.com>
VFS: Mounted root (metafs filesystem) readonly on device 0:10.
Freeing unused kernel memory: 120k freed
Please be patient, while OpenWrt loads ...
device eth0 entered promiscuous mode
br-lan: port 1(eth0) entering forwarding state
PPP generic driver version 2.4.2
ip_tables: (C) 2000-2006 Netfilter Core Team
NET: Registered protocol family 24
nf_conntrack version 0.5.0 (256 buckets, 1024 max)
root@OpenWrt:/# cat /proc/cpuinfo
system type : Mikrotik MetaROUTER
processor : 0
cpu model : MIPS 4Kc V0.10
BogoMIPS : 262.14
wait instruction : yes
microsecond timers : yes
tlb_entries : 16
extra interrupt vector : yes
hardware watchpoint : yes, count: 1, address/irw mask: [0x0000]
ASEs implemented : mips16
shadow register sets : 1
core : 0
VCED exceptions : not available
VCEI exceptions : not available