arp who-has请求查看vlan隔离不同地址(单网卡)

arp who-has请求查看vlan隔离不同地址(单网卡)

我有几台 Debian 主机,它们通过 5 个不同 VLAN 上的 trunk 端口连接。但该主机响应所有不同 IP 的 arp“who-has”请求。我希望了解原因...

这里是网络/接口文件(eth0.1 句柄 172.16.1.145/16)

auto lo
iface lo inet loopback

allow-hotplug eth0
iface eth0 inet manual

auto eth0.1
iface eth0.1 inet dhcp

auto eth0.10
iface eth0.10 inet static
address 192.168.10.254
netmask 255.255.255.0

auto eth0.6
iface eth0.6 inet static
address 192.168.6.254
netmask 255.255.255.0

auto eth0.7
iface eth0.7 inet static
address 192.168.7.254
netmask 255.255.255.0

auto eth0.2
iface eth0.2 inet static
address 0.0.0.0
netmask 0.0.0.0

这是 ldc (172.16.1.50/16) 在 vlan1 广播域上发出的不同 arp who-has 请求的输出

ldc:~# arping 172.16.1.145
ARPING 172.16.1.145
60 bytes from ab:cd:ef:01:23:45 (172.16.1.145): index=0 time=193.119 usec
^C
--- 172.16.1.145 statistics ---
1 packets transmitted, 1 packets received,   0% unanswered (0 extra)

ldc:~# arping 192.168.10.254
ARPING 192.168.10.254
60 bytes from ab:cd:ef:01:23:45 (192.168.10.254): index=0 time=221.014 usec
^C
--- 192.168.10.254 statistics ---
1 packets transmitted, 1 packets received,   0% unanswered (0 extra)

ldc:~# arping 192.168.6.254
ARPING 192.168.6.254
60 bytes from ab:cd:ef:01:23:45 (192.168.6.254): index=0 time=256.062 usec
^C
--- 192.168.6.254 statistics ---
1 packets transmitted, 1 packets received,   0% unanswered (0 extra)

ldc:~# arping 192.168.7.254
ARPING 192.168.7.254
60 bytes from ab:cd:ef:01:23:45 (192.168.7.254): index=0 time=211.954 usec
^C
--- 192.168.7.254 statistics ---
1 packets transmitted, 1 packets received,   0% unanswered (0 extra)

当然,l3 没有被中继,但无论如何我都想解决这个问题...有人可以帮助我吗?

答案1

默认情况下,Linux 安装会实现一个叫做“弱端宿主”模型,在任何接口上接受发往其所有地址的数据包。如果只是 ARP 困扰您,您应该使用

net.ipv4.conf.<interface>.arp_filter

可调。对于其他类型的 IP 流量,请考虑设置适当的 netfilter 规则以进行入口过滤和/或启用net.ipv4.conf.<interface>.rp_filter(不知道 Debian 是否默认这样做)

进一步阅读:http://linux-ip.net/html/ether-arp.html#ether-arp-flux-arpfilter

答案2

没关系,我找到了解决方法:

这是 arp_ignore 的问题:( echo 1 > /proc/sys/net/ipv4/conf/eth0.1/arp_ignore 因为我收到了来自 vlan1 的 who-has 请求)

恕我直言,这应该是默认行为......

再次感谢。

答案3

您应该vlan-raw-device eth0在每个 vlan 接口条目中写入内容。请参阅man vlan-interfaces。如果您将接口命名为 eth0.1、eth0.2、... - 它只会向同一物理接口添加其他地址。请使用其他名称,例如 eth0_vlan1、...

试试这个:

auto eth0
iface eth0 inet manual

auto vlan6
iface vlan6 inet static
address 192.168.6.254
netmask 255.255.255.0

...

并写下是否有效

相关内容