В соответствии с этим руководством я установил и настроил маршрутизатор OpenWRT поверх виртуальной машины в virtualbox. Но я настроил три интерфейса вместо двух к гостевой машине.
eth1 настроен как мостовой адаптер для доступа в интернет.
eth0 и eth2 настроены как внутренние сетевые интерфейсы.
Для тех, кто не знаком с виртуализацией, это будет точно так же, как физическая машина с 3 сетевыми картами, в то время как одна подключена к внешней локальной сети, а две другие - к чему-либо другому (компьютер, ТВ-бокс и т.д.).
Проблема в том, что я не могу правильно соединить eth0 и eth2. Я получаю DHCP на обоих интерфейсах, но только интернет на одном из них (eth0). Кроме того, тот, у кого нет интернета, не может пропинговать шлюз (192.168.1.1) или любой другой хост, поэтому я предполагаю, что это проблема маршрутизации или что-то в этом роде.
Вот конфиг роутеров:
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'
Выходные данные brctl шоу:
root@OpenWrt:~# brctl show
bridge name bridge id STP enabled interfaces
br-lan 7fff.080027133027 no eth0
eth2
И 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)
Вывод маршрута:
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
Как правильно соединить eth0 и eth2 для доступа к Интернету / локальной сети так же, как обычный интерфейс локальной сети маршрутизатора? Похоже, я что-то упустил.
Обновление: только что взглянул на таблицу arp в OpenWRT и заметил, что DFGW 192.168.1.1 не имеет записи. Может ли это быть одной из проблем?
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