物理网卡移到其他命名空间(linux network namespace)为啥就不能接收数据了?
一个linux机器,有多个物理网卡。
想用来测试二层交换机的联通性。
将网卡1的 ip 地址设置为 110.0.0.11/24
用 ip netns 创建的命名空间 ns1
将网卡2 移到到命名空间 ns1,并设置ip 地址为 110.0.0.12/24
两个网卡都用网线连接到交换机。
两个网卡无法相互ping通。
经过 tcpdump 抓包,发现:
网卡2 在 ns1 发出的 arp 报文能够被 网卡1 接收并回应。
网卡1 发出的 arp 报文,在网卡2上则没有收到。(在网卡2上能够监听到自己发出的 arp 报文,监听不到回应)
这说明是网卡2没收到数据。
手动设置 arp 后,发现:
网卡2 在 ns1 发出的 ICMP 报文能够被 网卡1 接收并回应。
网卡1 发出的 ICMP 报文,在网卡2上则没有收到。
再次说明是网卡2没收到数据。
将连接网卡2和交换机端口的网线从网卡2拔下来,然后插入到另一个服务器的网卡3,并设置并设置网卡3 的 ip 地址为 110.0.0.13/24。
网卡1和网卡3能够正常ping通。
这说明交换机及相关端口没有问题,确实是网卡2没收到数据。
将网卡2移到主命名空间后,能够与另一个服务器的网卡3通信。
将网卡1移到命名空间ns1后,无法与另一个服务器的网卡3通信。
这说明网卡1、网卡2接收数据没问题,确实是命名空间造成的
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
检查 ns1 的防火墙设置,以及
/etc/resolv.conf
。