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.