微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Ubuntu Linux – 两个接口,相同的子网,不同的VLAN – MAC / ARP问题

我正在尝试设置一个服务器,该服务器需要在同一IP子网上具有接口,但不同的VLAN:
eth1.102  Link encap:Ethernet  HWaddr 00:50:56:b1:00:0f  
          inet addr:10.1.1.6   Bcast:10.1.1.255  Mask:255.255.255.0

eth1.103  Link encap:Ethernet  HWaddr 00:50:56:b1:00:0f  
          inet addr:10.1.1.12  Bcast:10.1.1.255  Mask:255.255.255.0

我看到的问题是,当ARP请求来自其中一个子网上的设备时,服务器只响应一个接口上的ARP,并且似乎忽略了另一个接口上的任何ARP:

第一界面:

# ping -I eth1.102 10.1.1.1
PING 10.1.1.1 (10.1.1.1) from 10.1.1.6 eth1.102: 56(84) bytes of data.
^C
--- 10.1.1.1 ping statistics ---
8 packets transmitted,0 received,100% packet loss,time 7008ms

第二界面:

# ping -I eth1.103 10.1.1.1
PING 10.1.1.1 (10.1.1.1) from 10.1.1.12 eth1.103: 56(84) bytes of data.
64 bytes from 10.1.1.1: icmp_seq=1 ttl=64 time=0.400 ms
64 bytes from 10.1.1.1: icmp_seq=2 ttl=64 time=0.332 ms
^C

(对于记录,两个VLAN中的两个子网上都存在10.1.1.1)

# arp -an
? (10.1.1.1) at 02:00:1a:f2:00:02 [ether] on eth1.103
? (10.1.1.1) at 02:00:72:a3:00:08 [ether] on eth1.102

即使我从客户端设备ping到服务器接口的特定IP,它仍然在一个上被忽略而在另一个上响应.

Ubuntu认有几个arp / spoofing过滤器,所以我关掉了我能找到的东西,即

net.ipv4.conf.default.rp_filter=0
net.ipv4.conf.all.rp_filter=0

我已经看到了类似问题的一些问题,但通常是ARP通量,因为它是相同的段(不是由VLAN分隔),并且两者都回复了ARP请求,这不是这里的情况.如果我tcpdump两个接口,在任何其他接口的任何地方都看不到那个没有得到回复的ARP(想一想它在不同的接口上响应) – 它似乎地忽略了请求.

有没有人遇到过这个?

编辑:

好吧觉得有点白痴,但可能会帮助别人……

我通过禁用rp_filter在正确的区域,但可能是因为它认启用了Ubuntu它已经将它应用于所有接口,所以虽然我为上面列出的两个条目设置了rp_filter = 0,但是每个接口的设置是还是1,因此……

# sysctl -w net.ipv4.conf.eth1/102.rp_filter=0
# sysctl -w net.ipv4.conf.eth1/103.rp_filter=0

……做了伎俩.

您需要为每个单独的接口禁用反向路径过滤器(rp_filter)
# sysctl -w net.ipv4.conf.eth1/102.rp_filter=0
# sysctl -w net.ipv4.conf.eth1/103.rp_filter=0

原文地址:https://www.jb51.cc/ubuntu/348459.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐