在 OpenWRT 上桥接 eth0 和 eth2 以实现局域网和互联网访问

在 OpenWRT 上桥接 eth0 和 eth2 以实现局域网和互联网访问

我已经在 virtualbox 中的虚拟机上安装并配置了 OpenWRT 路由器,具体如下:指南。但我为客户机配置了三个接口,而不是两个。

eth1 被设置为用于互联网访问的桥接适配器。

eth0和eth2设置为内部网络接口。

对于那些不熟悉虚拟化的人来说,这与具有 3 个 NIC 的物理机完全相同,其中一个连接到外部局域网,另外两个连接到其他任何东西(计算机、电视盒等)。

问题是我无法正确桥接 eth0 和 eth2。两个接口上都有 DHCP,但其中一个 (eth0) 上只有互联网。此外,没有互联网的那个无法 ping 网关 (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 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 接口一样正确桥接 eth0 和 eth2 以进行互联网/LAN 访问?似乎我遗漏了一些东西。

更新: 刚刚查看了 OpenWRT 中的 arp 表,发现 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

答案1

刚刚自己解决了这个问题。结果发现我对整个解决方案想得太多了。只需要一个接口。我还将主机的物理接口分配给了虚拟机。因此,我没有为虚拟机的内部网络创建一个桥接器,而是对所有东西都使用了相同的接口。现在,所有虚拟机和物理机都共享同一个 LAN,连接到 OpenWRT,分配 IP 并充当 DNS 转发器。不知道我之前怎么没有想到这个解决方案。

相关内容