В нашей сети есть два модема, каждый из которых скрыт за маршрутизатором. Основной маршрутизатор находится на 10.1.1.1, резервный маршрутизатор на 10.1.1.2, и оба настроены на подсеть 10.1.1.0/24. Оба маршрутизатора настроили свой шлюз на 192.168.0.1. Тем не менее, 192.168.0.1, который вы видите, если ваш шлюз 10.1.1.1, отличается от машины 192.168.0.1, которую вы видите, если ваш шлюз 10.1.1.2.
Мой 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
Я хотел бы как минимум, чтобы иметь возможность пинговать Modem2.
* Отредактировано для исправления моего отвратительного неправильного использования нотации CIDR и предоставления четких деталей. (Я не думаю, что это принадлежит суперпользователю.)
Ответы:
man ping
пинг [хоп ...] пункт назначения
Таким образом, вы можете указать в качестве параметра ping количество IP-адресов, разделенных пробелом. Последний адрес будет «проверен»; предыдущие параметры определяют маршрут, который должен пройти ping.
Итак, в вашем случае:
Если вы столкнулись с той же проблемой с Windows:
ping /?
-k
это вариант, который вы, вероятно, хотите.Кстати: приведенный выше пинг не требует никаких привилегий root. Информация о маршрутизации (в вашем случае: «список желаний») является частью протокола ICMP.
источник
ping -c4 10.1.1.2 192.168.0.1
дает 100% потерю пакета. Я прояснил ситуацию выше.tcpdump
, и он не делает то, что вы думаете, что он делает.Ни у меня,
ping -N
ниarping
у меня ничего не получилось, и я наконец решил решение из этого ответа :Вы можете использовать инструмент nping из пакета nmap :
# nping --icmp --dest-mac [gateway mac] [target ip]
Вы можете найти mac вашего маршрутизатора в вашем локальном ARP-кэше:
$ arp -v [gateway ip]
Инструмент также поддерживает различные типы пингов, например
--tcp
или--udp
.источник
Извините, у вас может быть только один шлюз по умолчанию . Вы можете иметь несколько шлюзов, но только один для каждой сети.
Проблема в том, что оба упомянутых IP-адреса находятся в одной сети. Также вы неправильно указали свои CIDR: вы имели в виду 10.1.1.0/24 как имеющую подсеть 255.255.255.0; или даже иметь большую подсеть, например, 10.0.0.0/8 как 255.0.0.0.
Поэтому вы можете пропинговать любой хост в вашей сети (10.0.0.0/8) или любой хост, доступный через (или) шлюз. Но иметь два шлюза для одной сети невозможно.
источник
Используйте арпинг :
Где:
В качестве альтернативы, если вы используете какую-либо форму Solaris, вы можете использовать:
источник
iproute2
«sarping
отличается. Если вы используете arping отiproute2
делать безвозмездный Арпс, я предложил бы использоватьsend_arp
изfake
вместо. Кроме того, шлюз должен быть чем-то, что будет пересылать IP-пакеты.