web-dev-qa-db-fra.com

Comment puis-je faire un ping via une autre passerelle?

Notre réseau dispose de deux modems, chacun caché derrière un routeur. Le routeur principal est sur 10.1.1.1, le routeur de secours sur 10.1.1.2 et sont tous deux configurés pour le sous-réseau 10.1.1.0/24. La passerelle des deux routeurs est configurée sur 192.168.0.1. Toutefois, le 192.168.0.1 que vous voyez si votre passerelle est 10.1.1.1 est un ordinateur différent du 192.168.0.1 que vous voyez si votre passerelle est 10.1.1.2.

Mon serveur Nagios est configuré en conséquence:

auto eth0
iface eth0 inet static
address 10.1.1.10
netmask 255.255.255.0
gateway 10.1.1.1

Donc, pour être clair: il y a quatre passerelles ici. Routeur1 (10.1.1.1) Routeur2 (10.1.1.2) Modem1 (192.168.0.1) Modem2 (192.168.0.1)

Voici une illustration de ce que je peux faire manuellement pour vérifier l’état des deux modems:

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 [email protected] # I can log in to Modem1 and check status

Je voudrais au moins pouvoir faire un ping de Modem2.

* Édité pour corriger mon abominable utilisation abusive de la notation CIDR et fournir des détails clairs. (Je ne pense pas que cela appartient au super-utilisateur.)

19
Luke Schlather

man ping

ping [hop ...] destination

Vous pouvez donc attribuer à ping un certain nombre d'adresses IP séparées par un espace. La dernière adresse sera "pingée"; les paramètres précédents définissent la route que devrait prendre le ping.

Donc dans votre cas:

  • "modem ping 10.1.1.2" pour utiliser explicitement la première passerelle,
  • "ping 10.1.1.1 modem" pour utiliser explicitement la deuxième passerelle.

Si vous rencontrez le même problème avec Windows: ping /?-k est l'option que vous souhaitez probablement.

BTW: Le ping ci-dessus ne nécessite aucun privilège root. Les informations de routage (dans votre cas: la "liste de souhaits") font partie du protocole ICMP.

12
Nils

Ni ping -N ni arping n'ont fonctionné pour moi, j'ai finalement réglé avec la solution de cette réponse :

Vous pouvez utiliser l'outil nping à partir du package nmap :

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

Vous pouvez trouver le mac de votre routeur dans votre cache ARP local:

$ arp -v [gateway ip]

L'outil prend également en charge différents types de ping, tels que --tcp ou --udp.

11
Tho85

Désolé, vous ne pouvez avoir qu’une passerelle par défaut. Vous pouvez avoir plusieurs passerelles, mais une seule pour chaque réseau.

Le problème est que les deux IP mentionnés sont dans le même réseau. De plus, vous avez mal spécifié vos CIDR: vous vouliez dire que 10.1.1.0/24 avait un sous-réseau de 255.255.255.0; ou même avoir un plus grand sous-réseau, par exemple 10.0.0.0/8 comme étant 255.0.0.0.

Vous pouvez donc envoyer une requête ping à n'importe quel hôte de votre réseau (10.0.0.0/8) ou à tout hôte accessible via une (ou) la passerelle. Mais avoir deux passerelles pour le même réseau n'est pas possible.

2
mailq

Utilisez arping :

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

Où:

  • source_ip est une adresse IP attribuée localement sur votre hôte.
  • target_remote_ip est l'adresse IP que vous voulez utiliser comme ping
  • gateway_mac_address est l'adresse de couche 2 de la passerelle alterne que vous voulez utiliser

Si vous utilisez une forme de Solaris, vous pouvez également utiliser:

ping -N [gateway_ip] [target_remote_ip]
2
bahamat