Notre réseau possède deux modems, chacun caché derrière un routeur. Le routeur principal est sur 10.1.1.1, le routeur de sauvegarde est sur 10.1.1.2 et sont tous deux configurés pour le sous-réseau 10.1.1.0/24. Les deux routeurs ont leur passerelle configurée sur 192.168.0.1. Cependant, le 192.168.0.1 que vous voyez si votre passerelle est 10.1.1.1 est une machine différente 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
Pour être clair: il y a quatre passerelles ici. Router1 (10.1.1.1) Router2 (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
J'aimerais au moins pouvoir envoyer une requête ping à Modem2.
* Modifié pour corriger mon utilisation abominable de la notation CIDR et fournir des détails clairs. (Je ne pense pas que cela appartient au superutilisateur.)
Réponses:
man ping
destination ping [hop ...]
Ainsi, vous pouvez donner à ping un certain nombre d'adresses IP séparées par un espace blanc comme paramètre. La dernière adresse sera "pingée"; les paramètres précédents définissent l'itinéraire que le ping doit prendre.
Donc dans votre cas:
Si vous rencontrez le même problème avec Windows:
ping /?
-k
c'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.
la source
ping -c4 10.1.1.2 192.168.0.1
donne 100% de perte de paquets. J'ai clarifié la situation ci-dessus.tcpdump
, et il ne fait pas ce que vous pensez qu'il fait.Ni
ping -N
niarping
travaillé pour moi, je me suis finalement arrangé avec la solution de cette réponse :Vous pouvez utiliser l'outil nping 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, comme
--tcp
ou--udp
.la source
Désolé, vous ne pouvez avoir qu'une seule 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ées sont dans le même réseau. Vous avez également spécifié vos CIDR à tort: vous vouliez dire que 10.1.1.0/24 avait un sous-réseau de 255.255.255.0; ou même avoir un sous-réseau plus grand, par exemple 10.0.0.0/8 comme étant 255.0.0.0.
Vous pouvez donc envoyer une requête ping à tout hôte de votre réseau (10.0.0.0/8) ou à tout hôte accessible via une (ou la) passerelle. Mais il n'est pas possible d'avoir deux passerelles pour le même réseau.
la source
Utilisez l' arping :
Où:
Alternativement, si vous utilisez une forme de Solaris, vous pouvez utiliser:
la source
iproute2
« sarping
est différent. Si vous utilisez l'arpage deiproute2
pour faire des arcs gratuits, je suggère d'utilisersend_arp
à lafake
place. De plus, la passerelle doit être quelque chose qui transmettra les paquets IP.