В инфраструктуре VMware vSphere для диагностики сетевых неполадок иногда приходится в сервисной консоли серверов VMware ESXi тестировать различные соединения. В этой заметке мы вкратце опишем, как это делается.
Прежде всего, обычный пинг через стандартный Management-интерфейс:
# ping <IP хоста>
Пинг через порт VMkernel (в ESXi это тот же самый интерфейс, а в ESX - другой):
# vmkping 192.168.48.133
PING 192.168.48.133 (192.168.48.133): 56 data bytes
64 bytes from 192.168.48.133: icmp_seq=0 ttl=64 time=0.978 ms
64 bytes from 192.168.48.133: icmp_seq=1 ttl=64 time=1.009 ms
Для проверки соединения сервера VMware ESXi с хостом по какому-нибудь порту используется утилита netcat (nc). Telnet есть только на ESX. Формат использования netcat:
# nc -z <IP хоста> <порт хоста>
Например:
# nc -z 192.168.48.133 80
Connection to 192.168.48.133 80 port [tcp/http] succeeded!
С помощью netcat можно проверять только TCP-соединения, для UDP (флаг -uz) всегда будет статус succeeded (даже если порт заблокирован или закрыт), так как соединения по UDP не устанавливается. Для того, чтобы тестировать UDP-соединения можно воспользоваться утилитой tcpdump-uw.
Команда nc может быть использована для сканирования диапазона портов (будьте осторожны со сканированием, чтобы не навлечь гнев безопасников):
# nc -w 1 -z 192.168.48.133 20-81
Connection to 192.168.48.133 22 port [tcp/ssh] succeeded!
...
Connection to 192.168.48.133 80 port [tcp/http] succeeded!
Опция -w определяет таймаут между соединениями.
Для траблшутинга SSL-соединений может быть использована следующая команда: