ESXi Network tools

Spesso capita di dover fare troubleshooting su un host ESXi per problemi di rete.

Nel tempo ho creato una piccola guida che mi aiuta a ricordare i vari comandi, la condivido sperando possa essere utile a tutti 🙂

esxcli network (qui l’elenco completo)

Verifico lo stato del firewall

esxcli network firewall get
Default Action: DROP
Enabled: true
Loaded: true

Abilito e disabilito il firewall

esxcli network firewall set --enabled false  (firewall disabled)

esxcli network firewall set --enabled true (firewall enabled)

Stato delle connessioni TCP/UDP

esxcli network ip connection list
Proto Recv Q Send Q Local Address                   Foreign Address       State       World ID CC Algo World Name
----- ------ ------ ------------------------------- --------------------- ----------- -------- ------- ----------
tcp        0      0 127.0.0.1:80                    127.0.0.1:28796       ESTABLISHED  2099101 newreno envoy
tcp        0      0 127.0.0.1:28796                 127.0.0.1:80          ESTABLISHED 28065523 newreno python
tcp        0      0 127.0.0.1:26078                 127.0.0.1:80          TIME_WAIT          0
tcp        0      0 127.0.0.1:8089                  127.0.0.1:60840       ESTABLISHED  2099373 newreno vpxa-IO
<line drop>

Server DNS configurati e dominio di ricerca

esxcli network ip dns server list

DNSServers: 10.0.0.8, 10.0.0.4

esxcli network ip dns search list

DNSSearch Domains: scanda.local

Elenco delle interfacce vmkernel

esxcli network ip interface ipv4 get
Name IPv4 Address   IPv4 Netmask  IPv4 Broadcast Address Type Gateway      DHCP DNS
---- -------------- ------------- -------------- ------------ ------------ --------
vmk0 172.16.120.140 255.255.255.0 172.16.120.255 STATIC       172.16.120.1 false
vmk1 172.16.215.11  255.255.255.0 172.16.215.255 STATIC       172.16.215.1 false

Netstack configurati sull’host (utilizzati sulle interfacce vmkernel)

esxcli network ip netstack list
defaultTcpipStack
Key: defaultTcpipStack
Name: defaultTcpipStack
State: 4660

vmotion
Key: vmotion
Name: vmotion
State: 4660

Elenco delle schede di rete fisiche

esxcli network nic list
Name   PCI Device   Driver  Admin Status Link Status Speed Duplex MAC Address       MTU  Description
------ ------------ ------- ------------ ----------- ----- ------ ----------------- ---- -----------
vmnic0 0000:04:00.0 ntg3    Up           Down        0     Half   ec:2a:72:a6:bf:34 1500 Broadcom Corporation NetXtreme BCM5720 Gigabit Ethernet
vmnic1 0000:04:00.1 ntg3    Up           Down        0     Half   ec:2a:72:a6:bf:35 1500 Broadcom Corporation NetXtreme BCM5720 Gigabit Ethernet
vmnic2 0000:51:00.0 bnxtnet Up           Up          25000 Full   00:62:0b:a0:b2:c0 1500 Broadcom NetXtreme E-Series Quad-port 25Gb OCP 3.0 Ethernet Adapter
vmnic3 0000:51:00.1 bnxtnet Up           Up          25000 Full   00:62:0b:a0:b2:c1 1500 Broadcom NetXtreme E-Series Quad-port 25Gb OCP 3.0 Ethernet Adapter
vmnic4 0000:51:00.2 bnxtnet Up           Up          25000 Full   00:62:0b:a0:b2:c2 1500 Broadcom NetXtreme E-Series Quad-port 25Gb OCP 3.0 Ethernet Adapter
vmnic5 0000:51:00.3 bnxtnet Up           Up          25000 Full   00:62:0b:a0:b2:c3 1500 Broadcom NetXtreme E-Series Quad-port 25Gb OCP 3.0 Ethernet Adapter

vmkping (KB di riferimento)

comando per inviare pacchetti ICMP attraverso le interfacce vmkernel, utilissimo per verificare l’MTU 🙂

esempi di utilizzo

ping verso un host
vmkping -I vmk0 192.168.0.1

check MTU e fragmentation
vmkping -I vmk0 -d -s 8972 172.16.100.1

ping verso un host utilizzando il netstack vmotion
vmkping -I vmk2 -S vmotion 172.16.115.12

iperf ( ottimo articolo qui)

tool utilissimo per verificare l’effettiva banda utilizzabile tra 2 host, un host utilizza la modalitĂ  server e uno quella client

il tool si trova a questo path

/usr/lib/vmware/vsan/bin/iperf3

NOTA: nella versione di vSphere 8 si può avere l’errore ” Operation not permitted” all’esecuzione, è possibile abilitarne l’esecuzione con il comando

esxcli system secpolicy domain set -n appDom -l disabled

successivamente riattivare con

esxcli system secpolicy domain set -n appDom -l enforcing

è inoltre necessario disabilitare temporaneamente il firewall per effettuare i test

esxcli network firewall set --enabled false

esempio di utilizzo:

host modalitĂ  server, l’opzione -B permette di utilizzare uno specifico indirizzo e interfaccia per i test

 /usr/lib/vmware/vsan/bin/iperf3 -s -B 172.16.100.2

host modalitĂ  client, l’opzione -n specifica la quantitĂ  di dati da trasferire per i test

/usr/lib/vmware/vsan/bin/iperf3 -n 10G -c 172.16.100.2

risultato del test su interfacce 25G

[ ID] Interval        Transfer    Bitrate        Retr
[  5]   0.00-4.04 sec 10.0 GBytes 21.3 Gbits/sec 0    sender
[  5]   0.00-4.04 sec 10.0 GBytes 21.3 Gbits/sec      receiver

NOTA : a fine test ricordarsi di riabilitare il firewall e l’enforcing 🙂

nslookup e cache DNS (KB di riferimento)

A volte è necessario verificare il corretto funzionamento della risoluzione dei nomi DNS su un host.

utilizzare il comando nslookup seguito dal nome da risolvere

nslookup www.scanda.it

Può capitare che modifiche ai record DNS non vengano recepiti immediatamente dagli host esxi, questo è dovuto al meccanismo di caching delle query DNS.

Per pulire la cache DNS utilizzare il seguente comando (KB di riferimento)

/etc/init.d/nscd restart

Test di connettivitĂ  TCP/UDP

sugli host esxi è presente il tool netcat (nc) che permette di verificare la connettività TCP/UDP verso un altro host.

nc
usage: nc [-46DdhklnrStUuvzC] [-i interval] [-p source_port]
[-s source_ip_address] [-T ToS] [-w timeout] [-X proxy_version]
[-x proxy_address[:port]] [hostname] [port[s]]

Se si deve verificare l’accesso ad un servizio HTTPS e la validitĂ  del relativo certificato SSL si può utilizzare il comando

openssl s_client -connect www.dominio.it:443

pktcap-uw (KB di riferimento)

altro tool molto utile è pktcap-uw che permette di catturare traffico di rete in pieno stile tcpdump. il tool si differenzia da tcpdump-uw in quanto può catturare il traffico, oltre che dalle interfacce vmkernel, anche da interfacce fisiche, da switchport e virtual machine.

vediamo qualche esempio

cattura del traffico dal vmkernel vmk0

pktcap-uw --vmk vmk0

cattura del traffcio dall’uplink fisico vmnic3

pktcap-uw --uplink vmnic3

cattura del traffico da una porta di un virtual switch

pktcap-uw --switchport <switchportnumber>

NOTA: per avere la mappatura del port number e la virtual nic di una VM utilizzare il comando net-stats -l

E’ possibile recuperare informazioni dal protocollo LLDP anche da uplink utilizzati da un VSS (non supportano LLDP) con il seguente comando

pktcap-uw --uplink vmnic1 --ethtype 0x88cc -c 1 -o /tmp/lldp.pcap > /dev/null && hexdump -C /tmp/lldp.pcap

L’output sarĂ  in formato esadecimale e potrĂ  essere utile per eseguire la mappatura delle porte di un host anche su un Virtual Standard Switch.

Non mancherò di aggiornare la lista con altri comandi utili.

 

Questa voce è stata pubblicata in esxi, networking, troubleshooting, vmug, vsphere e contrassegnata con , , , , . Contrassegna il permalink.