无法在非默认接口上ping多宿主Linux机器

无法在非默认接口上ping多宿主Linux机器,第1张

概述我有一个多宿主的Ubuntu服务器,其中包含一组接口,包括: eth2: 10.10.0.131/24eth3: 10.20.0.2/24 默认接口为eth2,网关为10.10.0.1.这是路由表的样子: root@c220-1:~# netstat -rnKernel IP routing tableDestination Gateway Genmask 我有一个多宿主的ubuntu服务器,其中包含一组接口,包括:
eth2: 10.10.0.131/24eth3: 10.20.0.2/24

默认接口为eth2,网关为10.10.0.1.这是路由表的样子:

root@c220-1:~# netstat -rnKernel IP routing tableDestination     Gateway         Genmask         Flags   MSS Window  irtt Iface0.0.0.0         10.10.0.1       0.0.0.0         UG        0 0          0 eth210.10.0.0       0.0.0.0         255.255.255.0   U         0 0          0 eth210.20.0.0       0.0.0.0         255.255.255.0   U         0 0          0 eth310.30.0.0       0.0.0.0         255.255.255.0   U         0 0          0 eth010.40.0.0       0.0.0.0         255.255.0.0     U         0 0          0 eth1

从单独的网络(192.168.3.5/24),我可以在eth2接口(具有默认网关的接口)上访问此计算机,但不能访问eth3接口.我可以从同一网络(10.20.0.1)上的路由器Ping eth3接口,没有问题.

如果我从192.168.3.5 Ping 10.10.0.131,数据包到达机器,但它不发送任何回复:

c4:c8:80:90:22:eb > 73:10:73:e4:10:06,IPv4,length 98: 192.168.3.5 > 10.20.0.2: ICMP echo request,ID 5451,seq 0,length 64c4:c8:80:90:22:eb > 73:10:73:e4:10:06,seq 1,seq 2,seq 3,seq 4,seq 5,seq 6,seq 7,length 64

如果我从同一网络上的路由器(10.20.0.1)执行Ping *** 作,则服务器会正​​确回复:

c4:c8:80:90:22:eb > 73:10:73:e4:10:06,length 114: 10.20.0.1 > 10.20.0.2: ICMP echo request,ID 28899,seq 2932,length 8073:10:73:e4:10:06 > c4:c8:80:90:22:eb,length 114: 10.20.0.2 > 10.20.0.1: ICMP echo reply,length 80c4:c8:80:90:22:eb > 73:10:73:e4:10:06,length 80

请注意,根据此similar question中的答案,我在所有接口上都关闭了rp_filter,但它无法解决问题:

$for i in eth0 eth1 eth2 eth3 all default> do> cat /proc/sys/net/ipv4/conf/$i/rp_filter> done000000
解决方法 问题是,由于默认路由是通过eth2,因此即使在eth3上收到请求,Ping响应也会通过eth2发送. (如果您使用tcpdump eth2,您应该会看到正在发送的响应.)然后可能会有一些设备丢弃数据包,因为它们的网络源IP无效.您需要一些 source policy routing才能将响应发送到他们收到的界面.

>创建一个新的路由表(只需要完成一次):

echo 13 eth3 >> /etc/iproute2/rt_tables

>添加一个默认路由到这个新表出去eth3:

ip route add default via 10.20.0.1 table eth3

>添加策略规则以将此新表用于源地址为eth3的IP的数据包:

ip rule add from 10.20.0.2 lookup eth3
总结

以上是内存溢出为你收集整理的无法在非默认接口上ping多宿主Linux机器全部内容,希望文章能够帮你解决无法在非默认接口上ping多宿主Linux机器所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/1044332.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存