Eu instalei e configurei um roteador OpenWRT em cima de uma máquina virtual no VirtualBox de acordo com este guia. Mas eu configurei três interfaces em vez de duas para a máquina convidada.
O eth1 é configurado como um adaptador em ponte para acesso à internet.
eth0 e eth2 são configurados como interfaces internas de rede.
Para aqueles que não estão familiarizados com a virtualização, isso seria exatamente o mesmo que uma máquina física com 3 NICs, enquanto que uma está conectada à rede externa e as outras duas a qualquer outra coisa (computador, caixa de TV, etc.).
O problema é que não consigo interligar eth0 e eth2 corretamente. Eu recebo DHCP em ambas as interfaces, mas apenas internet em um deles (eth0). Além disso, aquele sem internet não pode fazer ping no gateway (192.168.1.1) ou qualquer outro host, então eu suponho que seja um problema de roteamento ou algo assim.
Heres a configuração dos roteadores:
root@OpenWrt:~# cat /etc/config/network
config interface 'loopback'
option ifname 'lo'
option proto 'static'
option ipaddr '127.0.0.1'
option netmask '255.0.0.0'
config interface 'lan'
option gateway '192.168.1.1'
option type 'bridge'
option proto 'static'
option ipaddr '192.168.1.1'
option netmask '255.255.255.0'
option ip6assign '60'
option _orig_ifname 'eth0 eth2'
option _orig_bridge 'true'
option ifname 'eth0 eth2'
config interface 'wan'
option ifname 'eth1'
option proto 'dhcp'
config interface 'wan6'
option ifname 'eth1'
option proto 'dhcpv6'
config globals 'globals'
option ula_prefix 'fd43:be0a:1a40::/48'
root@OpenWrt:~# cat /etc/config/dhcp
config dnsmasq
option domainneeded '1'
option boguspriv '1'
option filterwin2k '0'
option localise_queries '1'
option rebind_protection '1'
option rebind_localhost '1'
option local '/lan/'
option domain 'lan'
option expandhosts '1'
option nonegcache '0'
option authoritative '1'
option readethers '1'
option leasefile '/tmp/dhcp.leases'
option resolvfile '/tmp/resolv.conf.auto'
option localservice '1'
config dhcp 'lan'
option interface 'lan'
option start '100'
option limit '150'
option leasetime '12h'
option dhcpv6 'server'
option ra 'server'
option ra_management '1'
config dhcp 'wan'
option interface 'wan'
option ignore '1'
config odhcpd 'odhcpd'
option maindhcp '0'
option leasefile '/tmp/hosts/odhcpd'
option leasetrigger '/usr/sbin/odhcpd-update'
Saída do show brctl:
root@OpenWrt:~# brctl show
bridge name bridge id STP enabled interfaces
br-lan 7fff.080027133027 no eth0
eth2
E ifconfig:
root@OpenWrt:~# ifconfig
br-lan Link encap:Ethernet HWaddr 08:00:27:13:30:27
inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fd43:be0a:1a40::1/60 Scope:Global
inet6 addr: fe80::a00:27ff:fe13:3027/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:6116 errors:0 dropped:0 overruns:0 frame:0
TX packets:6305 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:549793 (536.9 KiB) TX bytes:9147104 (8.7 MiB)
eth0 Link encap:Ethernet HWaddr 08:00:27:13:30:27
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:6211 errors:0 dropped:0 overruns:0 frame:0
TX packets:9142 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:642539 (627.4 KiB) TX bytes:13486722 (12.8 MiB)
eth1 Link encap:Ethernet HWaddr 08:00:27:84:95:30
inet addr:192.168.0.44 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fe84:9530/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:8215 errors:0 dropped:12 overruns:0 frame:0
TX packets:4269 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:8732792 (8.3 MiB) TX bytes:455021 (444.3 KiB)
eth2 Link encap:Ethernet HWaddr 08:00:27:FA:D4:2F
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:6 errors:0 dropped:0 overruns:0 frame:0
TX packets:45 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:516 (516.0 B) TX bytes:2752 (2.6 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:66 errors:0 dropped:0 overruns:0 frame:0
TX packets:66 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:5701 (5.5 KiB) TX bytes:5701 (5.5 KiB)
Saída da rota:
root@OpenWrt:~# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.0.1 0.0.0.0 UG 0 0 0 eth1
192.168.0.0 * 255.255.255.0 U 0 0 0 eth1
192.168.0.1 * 255.255.255.255 UH 0 0 0 eth1
192.168.1.0 * 255.255.255.0 U 0 0 0 br-lan
Como posso interligar propriamente eth0 e eth2 para acesso à internet / LAN como faria uma interface normal de roteador? Parece que estou perdendo alguma coisa.
Atualização:
Acabei de dar uma olhada na tabela arp no OpenWRT e notei que o DFGW 192.168.1.1 não possui uma entrada. Este poderia ser um dos problemas?
root@OpenWrt:~# arp
IP address HW type Flags HW address Mask Device
192.168.1.147 0x1 0x2 08:00:27:cc:b8:55 * br-lan
192.168.0.44 0x1 0x0 00:00:00:00:00:00 * br-lan
192.168.0.40 0x1 0x2 78:24:af:41:89:b9 * eth1
192.168.1.215 0x1 0x2 08:00:27:df:61:b1 * br-lan
192.168.0.1 0x1 0x2 10:da:43:c3:6e:66 * eth1
192.168.0.1 0x1 0x0 00:00:00:00:00:00 * br-lan
192.168.1.2 0x1 0x2 08:00:27:c3:58:80 * br-lan