这是上一个问题的后续(交换机将 DHCP 数据包发送到错误的 VLAN),但问题原来并不出在交换机上,我相信问题更多的是出在 NIC 硬件上。
基本上,我看到带有 Intel 82574L NIC 的 HP N40L 上的跨 VLAN 广播流量泄漏。
首先,DHCPDISCOVER
出现在两个 VLAN 中(未标记的 1 和标记的 10)
Jul 23 06:51:50 gateway dhcpd: DHCPDISCOVER from 90:84:0d:9c:13:df via eth0.10
Jul 23 06:51:50 gateway dhcpd: DHCPDISCOVER from 90:84:0d:9c:13:df via eth0: network 192.168.100.0/25: no free leases
DHCPOFFER
仅被发送回 VLAN10,因为 VLAN1 没有免费租约
Jul 23 06:51:51 gateway dhcpd: DHCPOFFER on 192.168.100.207 to 90:84:0d:9c:13:df (iPhone) via eth0.10
DHCPREQUEST
对于同一地址再次出现在两个 VLAN 中的情况:
Jul 23 06:51:52 gateway dhcpd: DHCPREQUEST for 192.168.100.207 (192.168.100.200) from 90:84:0d:9c:13:df (iPhone) via eth0.10
Jul 23 06:51:52 gateway dhcpd: DHCPACK on 192.168.100.207 to 90:84:0d:9c:13:df (iPhone) via eth0.10
Jul 23 06:51:52 gateway dhcpd: DHCPREQUEST for 192.168.100.207 (192.168.100.200) from 90:84:0d:9c:13:df (iPhone) via eth0: wrong network.
Jul 23 06:51:52 gateway dhcpd: DHCPNAK on 192.168.100.207 to 90:84:0d:9c:13:df via eth0
自从我最初提出问题以来,交换机已被更换,我以为是交换机的问题。它是一台思科交换机,我把它换成了惠普交换机。我有几十台 HP 交换机需要配置和管理,我已经三次检查了配置,100% 确定它是正确的。相关配置(其中 25 是 N40L,26 是 WAP):
vlan 1
name "LAN"
untagged 1-25
ip address 192.168.100.99 255.255.255.128
no untagged 26
exit
vlan 10
name "WLS"
untagged 26
no ip address
tagged 25
exit
以及服务器上的配置(CentOS 6)
gateway ~ # ip a s eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
link/ether a0:b3:cc:e7:58:2e brd ff:ff:ff:ff:ff:ff
inet 192.168.100.100/25 brd 192.168.100.127 scope global eth0
gateway ~ # ip a s eth0.10
4: eth0.10@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
link/ether a0:b3:cc:e7:58:2e brd ff:ff:ff:ff:ff:ff
inet 192.168.100.200/25 brd 192.168.100.255 scope global eth0.10
我的问题是:1) 有其他人见过此硬件的类似行为吗?Google 没有返回任何信息。2) 我还能做什么来确认这是 NIC 问题?3) 有什么神奇的解决方案吗?;)
编辑:VLAN 10 在通向 N40L 的端口上被标记,并且仅在 1 个其他端口上未标记,该端口肯定通向 WAP(否则我们不会看到 iPhone 请求租约),因此 VLAN 不会意外地交叉修补:
hp-switch# sho vlan 10
Status and Counters - VLAN Information - Ports - VLAN 10
802.1Q VLAN ID : 10
Name : WLS
Status : Port-based
Port Information Mode Unknown VLAN Status
---------------- -------- ------------ ----------
25 Tagged Learn Up
26 Untagged Learn Up
这是交换机的完整运行配置;这是一个非常简单的配置:http://pastebin.com/5Zt76nAF
答案1
请注意,虽然 DHCP DISCOVER 被包装到 UDP 广播数据包中,但 DHCP REQUEST 是单播的 - 因此您不会只有广播流量“泄漏”。
根据您的描述,如果您没有无意地桥接 VLAN(例如,通过在 N40L 上错误配置软件桥接或通过将跳线从 VLAN 10 的未标记端口连接到 VLAN 1 的未标记端口),我将进行进一步调查。在另一台主机上运行 tcpdump,查看 VLAN 是否承载“外部”流量,以首先排除此情况。
虽然这也可能是一个错误,但与普遍的看法相反,VLAN 功能不是 NIC 功能,而是在 Linux 内核的软件层实现的。因此,如果它是一个错误,它将影响多个 NIC / 主机类型,并且肯定已经在某处记录过了。