如何通过非默认路由表进行 ping 测试?

如何通过非默认路由表进行 ping 测试?

我有一个 Linux 盒子作为我的家庭网络的路由器。它有3个路由表:

# ip route show default
default via 192.168.5.1 dev wlp2s0
172.18.231.140/30 dev wwx0c5b8f279a64  proto kernel  scope link  src 172.18.231.141
192.168.0.0/24 dev enp1s0  proto kernel  scope link  src 192.168.0.110
192.168.1.0/24 dev enp3s0  proto kernel  scope link  src 192.168.1.10
192.168.5.0/24 dev wlp2s0  proto kernel  scope link  src 192.168.5.100

#ip route show table ISP1
default via 192.168.0.1 dev enp1s0
192.168.0.0/24 dev enp1s0  proto kernel  scope link  src 192.168.0.110
192.168.1.0/24 dev enp3s0  proto kernel  scope link  src 192.168.1.10

# ip route show table ISP2
default via 172.18.231.142 dev wwx0c5b8f279a64
172.18.231.140/30 dev wwx0c5b8f279a64  proto kernel  scope link  src 172.18.231.141
192.168.0.0/24 dev enp1s0  proto kernel  scope link  src 192.168.0.110
192.168.1.0/24 dev enp3s0  proto kernel  scope link  src 192.168.1.10

通常发生的情况是所有连接到网络的客户端都会通过默认网关,如果我愿意,我会添加 ip 规则来匹配 ip 并将客户端更改为使用 ISP1 表或 ISP2 表

现在我想做一个ping检查以查看附加到 ISP2 表的移动网络“wwx0c5b8f279a64”是否已连接或断开连接,但从 linux 盒子我无法进行检查,ping因为ping检查通过默认路由,即通过“wlp2s0”界面。

有办法解决这个问题吗?我认为如果我可以将 Linux 盒子的本地流量路由到 ISP2 表,它就会起作用,但我不知道如何将盒子的本地流量路由到 ISP2 表。

答案1

也许nping(通常是 的一部分nmap)可以在这里提供帮助?从联机帮助页:

--dest-mac mac (Ethernet Destination MAC Address) This option sets the destination MAC address that should be set in outgoing Ethernet frames. This is useful in case Nping can't determine the next hop's MAC address or when you want to route probes through a router other than the configured default gateway. The MAC address should have the usual format of six colon-separated bytes, e.g. 0:50:56:d4:01:98. Alternatively, hyphens may be used instead of colons. Use the word random or rand to generate a random address, and broadcast or bcast to use ff:ff:ff:ff:ff:ff. If you set up a bogus destination MAC address your probes may not reach the intended targets.

答案2

最明显的方法是临时添加一条规则,该规则将激活您想要 ping 的地址或地址范围的表:

ip rule add to 8.8.8.8 table ISP2
ping 8.8.8.8
ip rule del to 8.8.8.8 table ISP2

请注意,只要该规则处于活动状态,所有到 8.8.8.8 的流量都将通过此接口进行,因此,如果您实际上在某处使用 8.8.8.8 作为名称服务器,则在此期间它可能无法工作。

相关内容