this ガイドに従って、virtualboxの仮想マシンの上にOpenWRTルーターをインストールして構成しました。しかし、ゲストマシンに対して2つではなく3つのインターフェイスを構成しました。
eth1は、インターネットアクセス用のブリッジアダプタとして設定されています。
eth0とeth2は内部ネットワークインターフェースとして設定されています。
仮想化に慣れていない人にとっては、これは3つのNICを備えた物理マシンとまったく同じですが、1つは外部LANに接続され、他の2つは他の何か(コンピューター、テレビボックスなど)に接続されます。
問題は、eth0とeth2を適切にブリッジできないことです。両方のインターフェイスでDHCPを取得しますが、一方(eth0)ではインターネットのみです。また、インターネットがないものはゲートウェイ(192.168.1.1)や他のホストにpingできないので、ルーティングの問題か何かだと思います。
ルーターの構成は次のとおりです。
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 showの出力:
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
通常のルーターLANインターフェースと同じように、インターネット/ LANアクセス用にeth0とeth2を適切にブリッジするにはどうすればよいですか?何かが足りないようです。
更新:OpenWRTのarpテーブルを調べたところ、DFGW192.168.1.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
これを自分で解決しました。私は解決策全体を考えすぎていたことがわかりました。必要なインターフェースは1つだけです。ホストの物理インターフェイスもVMに割り当てました。そのため、VMの内部ネットワーク用に1つのブリッジを作成する代わりに、すべてに同じインターフェイスを使用しました。すべての仮想マシンと物理マシンは、OpenWRTに接続された同じLANを共有して、IPを割り当て、DNSフォワーダーとして機能するようになりました。以前にこのソリューションをどのように考えていなかったのかわかりません。