Skip to main content

NSX-v Troubleshooting – Comandi Utili

Il contenuto di questa pagina è stato preso  direttamente dal blog: https://vcdx133.com/
Ho voluto raccogliere un po’ e tradurre quello che è già stato fatto da René van den Bedem nel suo blog.

Come da titolo la parte su cui mi voglio concentrare su questo articolo riguarda quello che è il troubleshooting di una tecnologia complessa come la network virtualization con NSX-v.

NSX-v Overview dei Componenti

NSX-v_Troubleshooting_Components

Distributed Firewall Componenti

NSX-v_Troubleshooting_DFW

  • VSIP: VMware Internetworking Service Insertion Platform
  • VSIPIOCTL: VSIP I/O Control
  • VPXA: vCenter Server agent
  • IOChains: kernel-level packet handling process
  • ESXi-Firewall: Distributed Virtual Filter (DVFilter)
  • sw-sec: Switch Security
  • VMware-sfw: Firewall rule storage and enforcement

DLR & ESG Componenti (2-Tier)

NSX-v_Troubleshooting_DLR_ESG

  • LIF: Logical Interface

VXLAN Components

NSX-v_Troubleshooting_VXLAN

  • VTEP: VXLAN Tunnel End Point encapsulated in VMkernel
  • VNI: Virtual Network Identifier

Prerequisiti

  • Avete accesso amminsitrativo a NSX-v e vSphere
  • Diagramma dell’infrastruttura –  cartaceo o su file sia della parte fisica che virtuale
  • Servizio SSH abilitato sui componenti vSphere e NSX
  • Usare Putty per connettersi in SSH verso NSX Manager, NSX Controllers, ESGs, DLR Controller VMs e ESXi hosts
  • NON USARE un ambiente di PRODUZIONE per fare teste ed esperimenti

Controlli

  • Usare il <TAB>  per auto-completare i commandi
  • Usare ? <ENTER> or -h <ENTER> per il menù di aiuto
  • Premere <ENTER> or <TAB> due volte alla fine o in un comando parziale per avere la lista di opzioni successive

Privileged Mode per NSX Manager e ESG/DLR Control VM

  • Per entrare nella privileged mode digitare: enable, enter password (prompt cambierà da > a #)
  • Uscire dalla privileged mode digitare: disable (il prompt cambierà da # a >)

NSX Manager

  • Mostra configurazione attuale: show running-config
  • Mostra lista controller e stato connessione: show controller list all
  • Entra Configuration Mode: configure terminal
  • Esce dalla Configuration Mode: press Control-Z
  • Salva la configurazione attuale: write memory or copy running-config startup-config
  • Mostra log dettagliati: show manager log reverse
  • Mostra la capacità del filesystem: show filesystems
  • Mostra i processi attivi: show process monitor
  • Enable Fail-Safe: https ://<NSX Manager IP FQDN>/api/2.1/failsafemode, REQUEST BODY: FAIL_OPEN (VM traffic is allowed if vShield Stateful Firewall is down) – UNVERIFIED

NSX Controller

  • Mostra lo stato del Control Cluster: show control-cluster status
  • Mostra i nodi del cluster: show control-cluster startup-nodes
  • Mostra i riuoli di ogni controller: show control-cluster roles
  • Mostra  le interfacce network: show network interface
  • Mostra il default gateway: show network default-gateway
  • Mostra i DNS servers: show network dns-servers
  • Mostra i NTP servers: show network ntp-servers
  • Mostra lo status degli NTP servers: show network ntp-status
  • Traceroute: traceroute <ip_address/name>
  • Ping: ping <ip> or ping interface adder <ip>
  • TCP Dump: watch network interface <int> traffic
  • Verifica switch manager and api-provider addresses: listen-ip
  • Mostra spazio disco Controller: show status
  • Mostra le system statistics: show system statistics <RRD data source>
  • Mostra le system statistics : show system statistics graph <RRD data source>
  • Compatibility check: request system compatibility-report
  • Mostra gli event history del Control Cluster: show control-cluster history
  • Mostra le connessioni attive del cluster: show control-cluster connections
  • Trova il majority leader del cluster: show control-cluster connections (search for “persistence_server server/2878 Y”)
  • Forza la re-sincronizzazione di un controller al majority leader: join control-cluster <majority IP> force
  • Mostra le control cluster core statistics: show control-cluster core stats
  • Mostra le connessioni attive  TCP: show network connections of-type tcp (can also specify udp unix)
  • Mostra i DLRs e ESGs: show control-cluster logical-routers instance all
  • Mostra informazioni dettagliate riguaro di uno specifico ESG/DLR: show control-cluster logical-routers interface-summary <LR-Id 0xA..n>
  • Mostra informazioni dettagliate di una specifica interfaccia di un ESG/DLR Interface: show control-cluster logical-routers interface <LR-Id 0xA..n> <Interface A..n>
  • Mostra le routes di un DLR: show control-cluster logical-routers routes <LR-Id 0xA..n>
  • Mostra i dettagli di un Logical Switch: show controller-cluster logical-switches vni <Segment ID aka VNI>
  • Mostra la connection table di un Logical Switch: show controller-cluster logical-switches connection-table <Segment ID aka VNI>
  • Mostra la VTEP table di un Logical Switch: show control-cluster logical-switches vtep-table <Segment ID aka VNI>
  • Mostra la MAC table di un Logical Switch: show control-cluster logical-swtiches mac-table <Segment ID aka VNI>

NSX Edge Services Gateway and DLR Control VM

  • Mostra la configurazione completa: show configuration
  • Mostra la IP Routing table: show ip route
  • Mostra le OSPF entries nella IP Routing table: show ip route ospf
  • Mostra le BGP entries nella IP Routing table: show ip route bgp
  • Mostra le ISIS entries nella IP Routing table: show ip route isis
  • Mostra il BGP summary: show ip bgp
  • Mostra i BGP neighbours: show ip bgp neighors
  • Mostra il OSPF summary: show ip ospf
  • Mostra i OSPF neighbours: show ip ospf neighbor
  • Mostra le interfacce OSPF interfaces listening for neighbours: show ip ospf interface
  • Mostra l’OSPF link state database: show ip ospf database
  • Mostra le OSPF link statistics: show ip ospf statistics
  • Mostra ISIS summary: show isis
  • Mostra i ISIS neighbours: show isis neighbors
  • Mostra le ISIS interfaces listening for neighbours: show isis interface
  • Mostra ISIS link state database: show isis database
  • Mostra i logs: show log reverse
  • Debug OSPF – must view from Console: debug ip ospf (no debug ip ospf to disable)
  • Debug BGP – must view from Console: debug ip bgp (no debug ip bgp to disable)
  • Debug ISIS – must view from Console: debug isis (no debug isis to disable)
  • Mostra le Interfacce: show interface
  • Mostra la ARP table: show arp
  • Mostra i top N firewall flows: show firewall flows topN <number>
  • Mostra tutti i firewall flows: show firewall flows
  • Mostra la configurazione dell’SSL-VPN: show configuration sslvpn-plus
  • Mostra se SSL-VPN è attivo: show service sslvpn-plus
  • Mostra le sessioni attive in SSL-VPN: show service sslvpn-plus sessions
  • Mostra i SSL-VPN active tunnels: show service sslvpn-plus tunnels
  • SSL VPN log messages: “STATE_MAIN_I1” “s1-c1” “NO_PROPOSAL_CHOSEN” – problem with Phase 1 or Phase 2 negotiations
  • SSL VPN log messages: “INVALID_ID_INFORMATION” – Pre-Shared Key Mismatch “Quick Mode” – UNVERIFIED
  • Mostra il LB summary: show service loadbalancer
  • Mostra il LB errors: show service loadbalancer error
  • Mostra il LB monitor: show service loadbalancer monitor
  • Mostra la configurazione del LB: show configuration loadbalancer
  • Mostra LB virtual server status: show service loadbalancer virtual <virtual server name>
  • Mostra LB server pool status: show service loadbalancer pool <pool name>
  • Mostra le sessionsi attive sul LB: show service loadbalancer session
  • Mostra la LB sticky mapping table: show service loadbalancer table
  • Mostra lo status del DHCP: show service dhcp
  • Mostra le informazioni di lease del DHCP: show service dhcp leaseinfo
  • Pulisce tutti i leases del DHCP: clear service dhcp lease (privileged mode)
  • Mostra lo stato del servizio DNS: show service dns
  • Mostra la cache del DNS: show service dns cache
  • Pulisce la cache del DNS: clear service dns cache (privileged mode)
  • Mostra il Network Address Translation: show nat

ESXi Host

  • Ping  interfaccia VTEP: ping ++netstack=vxlan –d –s 1572 –I vmk3 <VTEP IP>
  • Mostra VXLAN Inner/Outer MAC e Outer IP information per la VXLAN: esxcli network vswitch dvs vmware vxlan network mac –vds-name <VDS> –vxlan-id <Segment ID aka VNI>
  • Mostra lista VXLAN: esxcli network vswitch dvs vmware vxlan network list
  • Mostra VXLAN detailed information: esxcli network vswitch dvs vmware vxlan network list –vds-name <VDS> –vxlan-id <Segment ID aka VNI>
  • Mostra VXLAN MAC list: esxcli network vswitch dvs vmware vxlan network mac list –vds-name <VDS> –vxlan-id <Segment ID aka VNI>
  • Mostra VXLAN ARP list: esxcli network vswitch dvs vmware vxlan network arp list –vds-name <VDS> –vxlan-id <Segment ID aka VNI>
  • Mostra VXLAN VTEP list: esxcli network vswitch dvs vmware vxlan network vtep list –vds-name <VDS> –vxlan-id <Segment ID aka VNI>
  • Mostra VXLAN Port list: esxcli network vswitch dvs vmware vxlan network port list –vds-name <VDS> –vxlan-id <Segment ID aka VNI>
  • Mostra pNIC list: esxcli network nic list
  • Mostra pNIC details: esxcli network nic get -n <vmnicN>
  • Mostra TCP Segmentation Offload (TSO) status: esxcli network nic tso get -n <vmnicN>
  • Mostra Checksum Segmentation Offload (CSO) status: esxcli network nic cso get -n <vmnicN>
  • Shutdown pNIC: esxcli network nic down -n <vmnicN> (handy for isolating a LAG to one pNIC)
  • Enable pNIC: esxcli network nic up -n <vmnicN>
  • Mostra tutti i VMkernels: esxcfg-vmknic -l
  • Mostra tutte le VMs in un VDS relative a un DVPort ID: esxcfg-vswitch -l
  • Mostra tutti le VMkernel neighbour ARP table: esxcli network ip neighbor list
  • Mostra il controller status: net-vdl2 -l
  • Constrolla se il ESXi netcpa-worker è connesso a un Controller sulla porta 1234: esxcli network ip connection list | grep tcp | grep 1234 (look for ESTABLISHED, SYN_SENT indica un problema)
  • Mostra le Distributed Router instance: net-vdr –instance -l
  • Mostra le Distributed Router instance LIF information: net-vdr –lif –l <name>
  • Mostra Distributed Router instance route information: net-vdr –route –l <name>
  • Mostra Distributed Router instance bridge information: net-vdr –bridge –l <name>
  • Mostra Distributed Router instance MAC address table information: net-vdr –mac-address-table –b <name>
  • Mostra Distributed Router instance MAC address information: net-vdr –mac -b <name>
  • Mostra UUID di una specifica VM: summarize-dvfilter | grep <VM name>
  • Trova il filter name di uno specifico VM UUID: vsipioctl getfilters
  • Mostra le rules per il filter name: vsipioctl getrules –f <filter name>
  • Mostra address lists per quel filter name: vsipioctl getaddrsets –f <filter name>
  • Packet trace che può essere importata dentro Wireshark: pktcap-uw -A (option list)
  • Stato installazione degli NSX VIBs: esxcli software vib remove –vibname esx-vxlan or esx-vsip or esx-dvfilter-switch-security
  • Rimuove manualmente i NSX VIBs: esxcli software vib get –vibname esx-vxlan or esx-vsip or esx-dvfilter-switch-security
  • Verifica lo stato del NSX User World Agent (UWA): /etc/init.d/netcpad status
  • Verifica che il netcpa daemon sia attivo: esxtop (look for netcpa.nnnn process, press q to quit)
  • Verifica che il Message-bus service sia attivo: /etc/init.d/vShield-Stateful-Firewall status
  • Verifica che il vShield-Stateful-Firewall process sia attivo: ps | grep vsfwd
  • Verica gli active Message Bus TCP connections: esxcli network ip connection list | grep 5671
  • Verifica che le Rabbit MQ variables (total 16): esxcfg-advcfg –l | grep Rmq
  • Verifica che il Rabbit MQ address del NSX Manager: esxcfg-advcfg -g /UserVars/RmqIpAddress
  • Verifica che il modulo Kernel sia caricato in memoria: vmkload_mod –l | grep vsip

2 Comments

  • Mino ha detto:

    Ottimo post, grazie.
    Una domanda, in uno scenario del genere:

    Host1 con udlr1 + vm1
    Host2 con vm2
    Vm1 è connessa al logical switch 1
    Vm2 è connessa al logical switch 2
    Entrambi i logical switch sono connessi al udlr1

    Quando la vm1 comunica con la vm2 il traffico passa attraverso udlr1 per poi arrivare alla vm2.

    Ma il traffico che va dal logical switch 1 al udlr1 , passa sulla vtep?

    Grazie 😉

    • Giovanni Dominoni ha detto:

      Ciao Mino,

      ti ringrazio.

      Ma veniamo a noi:
      nello scenario da te descritto, quando la vm1 vuole comunicare con la vm2, il routing avviene (passami il termine) all’interno dell’host1. Il routing da logical switch 1 al logical switch 2 avviene proprio perché ci sono i moduli del DLR caricati su ogni host. Una volta fatto il routing da LS1 a LS2 il traffico da host a host viaggia attraverso le interfacce di VTEP.

      C’è un articolo molto interessante a questo proposito che ti consiglio di leggere:
      https://www.routetocloud.com/2014/06/nsx-distributed-logical-router/

      Fammi sapere se ho chiarito i tuoi dubbi ?
      Ciao

Leave a Reply

Giovanni Dominoni's Tech Blog