如何通过备用网关 ping 通?

Luk*_*her 20 linux routing gateway ping

我们的网络有两个调制解调器,每个都隐藏在路由器后面。主路由器在 10.1.1.1 上,备用路由器在 10.1.1.2 上,并且都配置到 10.1.1.0/24 子网。两个路由器的网关都配置为 192.168.0.1。但是,如果您的网关是 10.1.1.1,您看到的 192.168.0.1 与您在网关是 10.1.1.2 时看到的 192.168.0.1 是不同的机器。

我的 Nagios 服务器已相应设置:

auto eth0
iface eth0 inet static
address 10.1.1.10
netmask 255.255.255.0
gateway 10.1.1.1
Run Code Online (Sandbox Code Playgroud)

所以要明确:这里有四个网关。Router1 (10.1.1.1) Router2 (10.1.1.2) Modem1 (192.168.0.1) Modem2 (192.168.0.1)

这是我可以手动检查两个调制解调器状态的说明:

ping -c4 192.168.0.1 # Is Modem1 up? 
ip route add via 10.1.1.2
ip route change default via 10.1.1.2
ping -c4 192.168.0.1 # Is Modem2 up?
wget 192.168.0.1 # yields expected control webpage for Modem2
ip route change default via 10.1.1.1
ip route del default via 10.1.1.2
wget 192.168.0.1 # Connection refused; Modem1 has no web interface
ssh adminuser@192.168.0.1 # I can log in to Modem1 and check status
Run Code Online (Sandbox Code Playgroud)

我希望至少能够 ping Modem2。

*编辑以纠正我对 CIDR 符号的可恶滥用,并提供清晰的细节。

小智 12

man ping

ping [跳...] 目的地

所以你可以给 ping 一些由空格分隔的 IP 作为参数。最后一个地址将被“ping”;前面的参数定义了 ping 应该采用的路由。

所以在你的情况下:

  • “ping 10.1.1.2 modem”明确使用第一个网关,
  • “ping 10.1.1.1 modem”明确使用第二个网关。

如果您在使用 Windows 时遇到同样的问题: ping /? -k是您可能想要的选项。

顺便说一句:上述 ping 不需要任何 root 权限。路由信息(在您的情况下:“wishlist”)是 ICMP 协议的一部分。

  • 这实际上根本不起作用,即使是 root 也是如此。我在观看 `tcpdump` 时对此进行了测试,但它并没有像你想象的那样做。 (4认同)

小智 12

既不为我工作,ping -N也不arping为我工作,我终于解决了这个答案的解决方案:

您可以使用该工具npingNMAP包:

# nping --icmp --dest-mac [gateway mac] [target ip]

您可以在本地 ARP 缓存中找到路由器的 mac:

$ arp -v [gateway ip]

该工具还支持不同的 ping 类型,例如--tcp--udp


小智 2

抱歉,您只能有一个默认网关。您可以拥有多个网关,但每个网络只能有一个。

问题是,两个提到的 IP 都在同一网络中。此外,您还错误地指定了 CIDR:您的意思是 10.1.1.0/24 的子网为 255.255.255.0;或者甚至有一个更大的子网,例如 10.0.0.0/8 为 255.0.0.0。

因此,您可以 ping 网络 (10.0.0.0/8) 内的任何主机或通过网关可访问的任何主机。但同一网络有两个网关是不可能的。