Представляю краткий список стандартных команд с помощью которых можно выяснить проблемы в сети.
ping – посылает запрос и ждёт ответа от хоста в сети
spray - проверяется надежность обмена пакетами различных размеров. Эта команда может подсказать, задерживает ли сеть пакеты или они убиваются.
snoop – происходит захват пакетов и наблюдается обмен пакетами между хостами
netstat – показывает статус сети, включающий статус интерфейсов использования ТСР/IP трафика, таблицу маршрутизации и статистику по протоколам UDP, TCP, ICMP и IGMP.
nfsstat – показывает полную статистику клиента и сервера, используется для выявления проблем с NFS
Далее приводятся примеры использования данных комманд
Если Вы подозреваете физическую проблему, Вы можете использовать стандартную утилиту ping ($ping host), чтобы получить ответ от других хостов в сети. Если ответ от одного хоста не то, что Вы ожидали, Вы можете исследовать тот хост. Физические проблемы могли быть вызваны следующим:
Отсутствие физической связи
Запрет протокола ICMP на хосте
Неправильная разводка проводов и т.д.
Для дополнительной информации смотрите $man -s 1M ping
Если ping получает корректный ответ, то команда печатает host is alive.
alexs@tmp:~$ ping bca
bca is alive
С опцией
-s , ping посылает одну датаграмму в секунду на хост. И печатает каждый ответ и время которое потребовалось для прохождения туда и обратно.
alexs@tmp:~$ ping -s bca
PING bca: 56 data bytes
64 bytes from bca (192.168.168.204): icmp_seq=0. time=1.00 ms
64 bytes from bca (192.168.168.204): icmp_seq=1. time=0.464 ms
64 bytes from bca (192.168.168.204): icmp_seq=2. time=0.473 ms
64 bytes from bca (192.168.168.204): icmp_seq=3. time=0.490 ms
64 bytes from bca (192.168.168.204): icmp_seq=4. time=0.498 ms
64 bytes from bca (192.168.168.204): icmp_seq=5. time=0.464 ms
^C
----bca PING Statistics----
6 packets transmitted, 6 packets received, 0% packet loss
round-trip (ms) min/avg/max/stddev = 0.464/0.565/1.00/0.21
Проверяем надежность прохождения пакетов различных размеров командой spray
$ spray [ -c count -d interval -l packet_size] hostname
-c count
количество посылаемых пакетов
-d interval
интервал между посылкой пакетов в микросекундах. Если не использовать задержку, можете бы исчерпать буфер.
-l packet_size
размер пакет.
hostname
система на которую посылают пакеты
За дополнительной информацией обращайтесь к man -s 1M spray
Пробуем:
alexs@tmp:~$ spray bca
spray: cannot clnt_create bca:netpath: RPC: Program not registered
По выводу видим что не работает демон sprayd, на проверяемом хосте. Ниже показано как его запустить в Solaris 10. Запускаем.
root@bca# svcadm enable svc:/network/rpc/spray:default
Проверяем запущен ли сервис
root@bca# rpcinfo -p |grep spra
100012 1 udp 42549 sprayd
Теперь проверяем обмен с данным хостом с других серверов
alexs@beeg:~$ spray -c 100 -d 20 -l 1024 bca
sending 100 packets of length 1026 to bca ...
no packets dropped by bca
162 packets/sec, 167083 bytes/sec
alexs@tmp:~$ spray -c 100 -d 20 -l 1024 bca
sending 100 packets of length 1026 to bca ...
38 packets (38.000%) dropped by bca
4 packets/sec, 4237 bytes/sec
Видим посылая пакеты с разных хостов, что существуют проблемы между серверами tmp и bca. И все пакеты проходят между beeg и bca
Описание других команд будет произведено во второй части статьи