Bridge eth0 e eth2 para lan e acesso à internet no OpenWRT

1

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
    
por hrdy 21.02.2017 / 16:45

1 resposta

0

Apenas resolvi isso sozinho. Acontece que eu superei toda a solução. Apenas uma interface é necessária. Eu atribuí a interface física do host para a VM também. Então, ao invés de criar uma ponte para a rede interna da VM, eu usei a mesma interface para tudo. Todas as máquinas virtuais e físicas agora compartilham a mesma LAN conectada ao OpenWRT, atribuindo IPs e servindo como um DNS-forwarder. Não tenho certeza de como não pensei nessa solução antes.

    
por 21.02.2017 / 19:22