如何通过备用网关ping通?


19

我们的网络有两个调制解调器,每个调制解调器都隐藏在路由器后面。主路由器在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

因此要明确:这里有四个网关。路由器1(10.1.1.1)路由器2(10.1.1.2)调制解调器1(192.168.0.1)调制解调器2(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

我至少希望能够ping Modem2。

*编辑以更正我对CIDR标记的不当使用,并提供清晰的细节。(我不认为这属于超级用户。)


您要从中发起ping的IP配置是什么?

Answers:


12

man ping

ping [hop ...]目的地

因此,您可以给ping多个由空格分隔的IP作为参数。最后一个地址将被“ ping”;先前的参数定义了ping应该采取的路由。

因此,在您的情况下:

  • “ ping 10.1.1.2调制解调器”以明确使用第一个网关,
  • “ ping 10.1.1.1调制解调器”以明确使用第二个网关。

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

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


1
那不能让我到那里。ping -c4 10.1.1.2 192.168.0.1产生100%的数据包丢失。我已经澄清了上述情况。
路加·施拉瑟

4
即使使用root,这实际上也不起作用。我在观看的同时进行了测试,但tcpdump它并没有达到您的预期。
bahamat 2011年

如果完全删除默认网关会发生什么?我仍然不了解您的设置。为什么在两个调制解调器上都使用相同的“路由器”地址?
尼尔斯,

这两个调制解调器都由我的不同ISP控制。
路加·施拉瑟

好的-我现在了解路由器的相同IP。这是按需连接,您是否要进行故障转移?
尼尔斯,

11

不管ping -Narping对我还是对我都不起作用,我终于解决了这个答案的解决方案:

您可以使用该工具npingNMAP包:

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

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

$ arp -v [gateway ip]

该工具还支持其他ping类型,例如--tcp--udp


谢谢你 您建议使用nping是我发现的唯一方法(除了添加特定的路由和使用常规的ping二进制文件),它向按需拨号3G备用路由器发送ICMP回显请求(ping)(用于测试目的) ,以确保它已连接并在连接后具有真实的Internet连接),这可以通过在发送ICMP数据包时定位路由器的MAC地址来实现,使用nping可以做到这一点。非常有用的小工具!
parkamark 2016年

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)或通过(或)网关可访问的任何主机。但是,不可能为同一网络拥有两个网关。


1
我的意思是10.1.1.1/24是10.1.1.0/24子网中10.1.1.1的简写。抱歉,我不会再使用该速记,这显然是错误的。我仍然有监控问题-我在上面添加了更多详细信息。如果没有在10.1.1.2处安装更好的路由器,就无法解决此问题?
路加·施拉瑟

2

使用arping

# arping -c 1 -S [source_ip] -T [target_remote_ip] [gateway_mac_address]

哪里:

  • source_ip是在主机上本地分配的IP
  • target_remote_ip是您要ping的IP地址
  • gateway_mac_address是您要使用的备用网关的第2层以太地址

或者,如果您使用某种形式的Solaris,则可以使用:

ping -N [gateway_ip] [target_remote_ip]

这看起来很有希望,尽管我猜想iproute2的配置不会削减它……也许我只需要用我可以切入的东西替换路由器即可。
路加·施拉瑟

1
iproute2arping不同。如果您使用arping from iproute2做免费的arp,我建议您改用send_arpfrom fake。另外,网关必须是可以转发IP数据包的设备。
bahamat 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.