双接口网络的路由问题

双接口网络的路由问题

所以我不完全确定这是否可行,我只是尝试了一些方法,希望能够得到一个可行的解决方案。

我已通过 dnsmasq 成功设置了设备的 eth0,用作 DHCP 服务器。效果很好。由于我怀疑我需要超过 254 个客户端,因此我选择创建一个 /20 网络。

现在,我还成功设置了设备的 wlan0,使其与同一个 dnsmasq 绑定,并给出连接到其 AP 的 IP。我也能做到这一点。

eth0      Link encap:Ethernet  HWaddr b8:27:eb:92:22:c6
          inet addr:1.0.0.1  Bcast:1.0.15.255  Mask:255.255.240.0
          inet6 addr: fe80::ba27:ebff:fe92:22c6/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2113 errors:0 dropped:0 overruns:0 frame:0
          TX packets:323 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:134909 (131.7 KiB)  TX bytes:21087 (20.5 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:3576 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3576 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1
          RX bytes:252704 (246.7 KiB)  TX bytes:252704 (246.7 KiB)

wlan0     Link encap:Ethernet  HWaddr b8:27:eb:c7:77:93
          inet addr:1.0.0.2  Bcast:1.0.15.255  Mask:255.255.240.0
          inet6 addr: fe80::ba27:ebff:fec7:7793/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:938 errors:0 dropped:1 overruns:0 frame:0
          TX packets:3552 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:150695 (147.1 KiB)  TX bytes:279694 (273.1 KiB)

我的 dnsmasq 是:

interface=eth0,wlan0
listen-address=1.0.0.1,1.0.0.2
bind-interfaces
local=/argos/
domain=argos
domain-needed
bogus-priv
dhcp-sequential-ip
dhcp-range=1.0.0.3,1.0.15.254,255.255.240.0,36h

这一切似乎都很顺利,只是我无法 ping 通客户端,客户端也无法 ping 通设备。

但是,如果我指定使用哪个接口进行 ping,它似乎能找到自己的方式:

ping -I eth0 1.0.0.3

所以我认为路由方面出现了问题。我该如何解决?考虑到无论您是通过 eth0 还是 wlan0 连接,设备都是相同的,我不知道为什么这不起作用。

答案1

一个子网应该属于接口,因为它基本上描述了哪些主机在同一个广播域(即可以通过以太网第 2 层直接互相访问)。

  • 如果同一子网内的主机尝试相互访问,它们将不会尝试使用路由器 - 而是尝试直接了解彼此的 MAC 地址(使用 ARP)。

  • 如果流量来自另一个网络(或来自路由器本身),您的路由器将不会尝试判断每个单独主机的数据包是否应该通过 eth0 或 wlan0 路由 - 它将对所有数据包使用相同的 /20 路由(通常通过 eth0)。

如果你想要一个子网,那么“链接”两个接口的正确方法是设置一个接口(其作用类似于交换机,根据 MA​​C 地址转发以太网帧)并将两个物理接口设置为桥接端口。

(IP 地址和 dnsmasq 也将在 br0 接口而不是 eth0 上设置。)

否则,有线和无线请使用不同的子网。

相关内容