我正在将 OpenBSD 系统设置为路由器,我有一个接口作为上游,然后另一个配置了 VLAN:
上游(em0):
inet 10.0.2.20 255.255.255.0 NONE description upstream
下游(em1):
up
VLAN10:
inet 172.18.10.1 255.255.255.0 NONE vlan 10 vlandev em1
当我从静态 IP 为 172.18.10.10 的客户端 ping 172.18.10.1 并在我的 OpenBSD 机器上运行 tcpdump 时,我收到 ARP 查询:
Jun 20 16:40:16.170853 08:00:27:9c:0c:38 ff:ff:ff:ff:ff:ff 0806 60: arp who-has 172.18.10.1 tell 172.18.10.10
所以它显然正在接收arps,但没有响应。
有人有什么想法吗?
答案1
问题似乎是您设置了一个 VLAN 接口,该接口需要标记帧 (802.1Q --https://en.wikipedia.org/wiki/IEEE_802.1Q),但客户端主机的 IP 地址只是简单配置,没有 VLAN 标记或配置。带标记/VLAN 以太网数据包的显示方式与此类似:
May 01 15:06:43.890173 01:23:45:67:89:0a bc:de:f0:12:34:56 8100 161: 802.1Q vid 5 pri 3 172.16.0.2.53 > 172.16.1.2.56557: 5001 3/0/0 CNAME[|domain]
请注意“vid”和 802.1Q 信息,表明数据包位于 VLAN 5 上。由于客户端的数据包到达时没有 VLAN 10 标记,因此它们会被硬件接口 em0 上配置的 IP 地址(10.0.2.20)正确忽略。
根据您的设置和目标,有几种可能的方法可以使这些站进行通信。
- 配置客户端主机的网络接口以使用 VLAN 10 并标记帧;
- 如果客户端位于交换机定义的 VLAN 上,请检查并确保交换机在连接 OpenBSD 计算机的接口上标记 VLAN 10;
- 如果目的只是让客户端和 OpenBSD 计算机位于同一网络 VLAN/网段上,那么您根本不需要 VLAN —— 您可以将该
ifconfig em0 alias 172.18.10.1 255.255.255.0
IP 地址设置为同一接口上的第二个地址。