Jak mogę pingować za pomocą alternatywnej bramy?

19

Nasza sieć ma dwa modemy, każdy ukryty za routerem. Router podstawowy znajduje się w wersji 10.1.1.1, router zapasowy znajduje się w wersji 10.1.1.2 i oba są skonfigurowane w podsieci 10.1.1.0/24. Oba routery mają skonfigurowaną bramę na 192.168.0.1. Jednak 192.168.0.1, które widzisz, jeśli twoja brama to 10.1.1.1, to inna maszyna niż 192.168.0.1, które widzisz, czy twoja brama to 10.1.1.2.

Mój serwer Nagios jest odpowiednio skonfigurowany:

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

Żeby było jasne: są tutaj cztery bramy. Router1 (10.1.1.1) Router2 (10.1.1.2) Modem1 (192.168.0.1) Modem2 (192.168.0.1)

Oto ilustracja tego, co mogę zrobić ręcznie, aby sprawdzić status dwóch modemów:

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

Chciałbym przynajmniej móc pingować Modem2.

* Edytowane, aby poprawić moje ohydne niewłaściwe użycie notacji CIDR i podać wyraźne szczegóły. (Nie sądzę, że należy to do administratora).

Luke Schlather
źródło
Jaka jest konfiguracja adresu IP, z którego inicjujesz polecenie ping?

Odpowiedzi:

12

man ping

miejsce docelowe ping [hop ...]

Możesz więc podać pingowi kilka adresów IP oddzielonych spacją jako parametr. Ostatni adres będzie „pingowany”; poprzednie parametry określają trasę, którą ping powinien wybrać.

Więc w twoim przypadku:

  • „modem ping 10.1.1.2”, aby jawnie korzystać z pierwszej bramy,
  • „modem ping 10.1.1.1”, aby jawnie korzystać z drugiej bramy.

Jeśli napotkasz ten sam problem w systemie Windows: ping /? -kjest to prawdopodobnie opcja, którą chcesz.

BTW: Powyższy ping nie wymaga żadnych uprawnień roota. Informacje o routingu (w twoim przypadku: „whishlist”) są częścią protokołu ICMP.

Nils
źródło
1
To mnie tam nie prowadzi. ping -c4 10.1.1.2 192.168.0.1powoduje 100% utratę pakietów. Wyjaśniłem powyższą sytuację.
Luke Schlather
4
To nie działa wcale, nawet z rootem. Przetestowałem to podczas oglądania tcpdumpi nie robi tego, co myślisz.
bahamat
Co się stanie, jeśli całkowicie usuniesz bramę domyślną? Nadal nie rozumiem twojej konfiguracji. Dlaczego używasz identycznego adresu „routera” na obu modemach?
Nils
Oba modemy są kontrolowane przez moich różnych dostawców usług internetowych.
Luke Schlather
Ok - teraz rozumiem ten sam adres IP routerów. Czy jest to połączenie na żądanie i chcesz przejść w tryb failover?
Nils,
11

Ani dla mnie, ani ping -Nnie arpingdziałało, w końcu zdecydowałem się na rozwiązanie z tej odpowiedzi :

Możesz użyć narzędzia nping z pakietu nmap :

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

Mac routera można znaleźć w lokalnej pamięci podręcznej ARP:

$ arp -v [gateway ip]

Narzędzie obsługuje również różne typy pingów, takie jak --tcplub --udp.

Tho85
źródło
Dzięki za to. Twoja sugestia użycia nping to jedyna metoda, jaką znalazłem (oprócz dodawania określonej trasy i używania normalnego pliku binarnego ping) wysyłania żądań echa ICMP (pingów) do routera zapasowego 3G z wybieraniem numerów na żądanie (do celów testowych , aby upewnić się, że łączy się i ma rzeczywistą łączność z Internetem po podłączeniu), osiągnięte poprzez celowanie adresu MAC routera podczas wysyłania pakietów ICMP, co pozwala na to nping. Bardzo przydatna mała użyteczność!
parkamark 16.04.16
2

Przepraszamy, możesz mieć tylko jedną bramę domyślną . Możesz mieć wiele bram, ale tylko jedną dla każdej sieci.

Problem polega na tym, że oba wymienione adresy IP są w tej samej sieci. Niepoprawnie podałeś także swoje CIDR: Masz na myśli 10.1.1.0/24 jako podsieć 255.255.255.0; lub nawet mają większą podsieć, np. 10.0.0.0/8 jako 255.0.0.0.

Możesz więc pingować dowolny host w Twojej sieci (10.0.0.0/8) lub dowolny host osiągalny przez bramę (lub). Ale posiadanie dwóch bram dla tej samej sieci nie jest możliwe.

mailq
źródło
1
Miałem na myśli 10.1.1.1/24 jako skrót od 10.1.1.1 w podsieci 10.1.1.0/24. Przepraszam, nie użyję tego skrótu ponownie, jest to oczywiście błąd. Nadal mam problem z monitorowaniem - powyżej dodałem więcej szczegółów. Nie mogę rozwiązać tego problemu bez zainstalowania lepszego routera w wersji 10.1.1.2?
Luke Schlather
2

Użyj arping :

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

Gdzie:

  • source_ip to adres IP przypisany lokalnie na twoim hoście
  • target_remote_ip to adres IP, który chcesz pingować
  • gateway_mac_address to adres eterowy warstwy 2 alternatywnej bramy, której chcesz użyć

Alternatywnie, jeśli używasz jakiejś formy Solaris, możesz użyć:

ping -N [gateway_ip] [target_remote_ip]
bahamat
źródło
Wygląda to obiecująco, choć wydaje mi się, że arping iproute2 go nie przerwie ... może po prostu muszę wymienić router na coś, w co mogę ssh.
Luke Schlather,
1
iproute2jest arpingto inaczej. Jeśli korzystasz z arping iproute2zrobić nieodpłatnych Arps, chciałbym zaproponować korzystania send_arpze fakezamiast. Ponadto brama musi być czymś, co będzie przesyłać dalej pakiety IP.
bahamat