Pojďme se podívat na první z novinek NSX 6.4 , která je užitečná během problémů v NSX a pokud chci zjistit kde přesně je problém.
Packet Capture byl samozřejmě možný už v předešlých verzích NSX , ale jen z příkazové řádky. Od NSX 6.4 je tento tool dostupný v GUI.
A to jak přes vSphere Web Clienta
A nebo poprvé tu máme možnost pluginu pro HTML5 clienta , ale velice omezeně pouze Dashboard, Upgrade a právě Packet Capture.
Než se podíváme na GUI tool podívej me se jak můžeme to samé dělat pomocí příkazové řádky pktcap-uw dokumentace je zde
Také je dobré si před použitím uvědomit kde chceme traffic chytat a kde je to možné a samozřejmě odchozí a příchozí a před a po enkapsulaci.
The capture point auto selection options without –capture:
–dir <0|input|1|output> (for –switchport, –vmk, –uplink)
The direction of flow, with respect to the vswitch:
0- Input: to vswitch (Default), 1- Output: from vswitch
–stage <0|pre|1|post> (for –switchport, –vmk, –uplink, –dvfilter, –overlay)
The stage at which to capture: 0- Pre: before, 1- Post: after
–kernelside (for –uplink)
The capture point is in kernel instead of in driver
Ukázka VM Traffic VM App01 :
Musíme zjistit switchport daného VM to můžeme udělat dvěma způsoby přes příkaz net-stats -l a nebo esxtop ( n ).
[root@esxdell1:~] net-stats -l
PortNum Type SubType SwitchName MACAddress ClientName
33554434 4 0 vSwitch0 44:a8:42:22:a0:fe vmnic0
33554436 3 0 vSwitch0 44:a8:42:22:a0:fe vmk0
33554463 5 9 vSwitch0 00:0c:29:29:d2:f8 VC-NSX
33554464 5 7 vSwitch0 00:50:56:95:06:bf DNS_Win2008
33554465 5 9 vSwitch0 00:50:56:95:29:91 NSX_Manager
33554466 5 9 vSwitch0 00:50:56:95:c6:df KVM1
33554467 5 9 vSwitch0 00:50:56:95:c0:ef desktop-ubuntu
33554468 5 9 vSwitch0 00:50:56:95:47:f6 nsx-unified-appliance
33554469 5 9 vSwitch0 00:50:56:95:a9:16 NSX_Controller_c09ecfda-3bc7-401e-82f2-f38ecf56e531
33554470 5 7 vSwitch0 00:50:56:95:df:0c vrni-platform
33554471 5 9 vSwitch0 00:50:56:95:cf:d4 vrealize-automation
33554472 5 9 vSwitch0 00:50:56:95:34:4a LogInsight
33554473 5 9 vSwitch0 00:50:56:95:2f:d6 NSX_Controller_becb69b2-c3fe-4ef0-8f22-2f8ba842558e
33554474 5 9 vSwitch0 00:50:56:95:e6:ad KVM2
50331650 4 0 vSwitch1 44:a8:42:22:a0:ff vmnic1
50331652 3 0 vSwitch1 00:50:56:6e:57:64 vmk3
67108867 11 0 DvsPortset-0 00:00:00:00:00:00 lag10gb
67108868 4 0 DvsPortset-0 00:10:86:82:26:e8 vmnic4
67108870 4 0 DvsPortset-0 00:10:86:82:26:e9 vmnic5
67108872 3 0 DvsPortset-0 00:50:56:66:2a:ef vmk2
67108903 5 9 DvsPortset-0 00:50:56:95:8e:02 desktop-ubuntu.eth0
67108904 5 9 DvsPortset-0 00:50:56:95:93:59 App01.eth0
67108905 5 9 DvsPortset-0 00:50:56:95:da:32 DB01.eth0
67108906 5 9 DvsPortset-0 00:50:56:95:f8:af Web01.eth0
67108907 5 9 DvsPortset-0 00:50:56:95:a2:f6 App02.eth0
67108915 5 9 DvsPortset-0 00:50:56:95:20:c4 edge-3-jobdata-208014-0.eth1
67108916 5 9 DvsPortset-0 00:50:56:95:84:6a edge-3-jobdata-208014-0.eth0
67108917 5 0 DvsPortset-0 00:50:56:95:d7:4a edge-4-jobdata-208016-1.eth0
83886083 4 0 DvsPortset-1 44:a8:42:22:a1:00 vmnic2
83886115 5 9 DvsPortset-1 00:50:56:95:35:e6 JUN_LINUX_GW.eth1
83886116 5 9 DvsPortset-1 00:50:56:95:fe:6e JUN_LINUX_GW.eth0
83886117 5 9 DvsPortset-1 00:50:56:35:c1:b7 JUN-Win7.eth2
83886118 5 9 DvsPortset-1 00:50:56:95:bf:50 JUN-Win7.eth1
83886119 5 9 DvsPortset-1 00:50:56:95:56:36 JUN-Win7.eth0
83886120 5 7 DvsPortset-1 00:50:56:95:a7:82 JUN_AD_WIN2008.eth1
83886121 5 7 DvsPortset-1 00:50:56:95:60:3a JUN_AD_WIN2008.eth0
spustíte esxtop a stisknete n jeko network
6:51:21pm up 62 days 11:16, 1101 worlds, 23 VMs, 61 vCPUs; CPU load average: 0.29, 0.25, 0.25
PORT-ID USED-BY TEAM-PNIC DNAME PKTTX/s MbTX/s PSZTX PKTRX/s MbRX/s PSZRX %DRPTX %DRPRX
33554433 Management n/a vSwitch0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
33554434 vmnic0 – vSwitch0 151.63 0.20 170.00 204.28 1.23 789.00 0.00 0.00
33554435 Shadow of vmnic0 n/a vSwitch0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
33554436 vmk0 vmnic0 vSwitch0 37.77 0.09 314.00 9.35 0.01 90.00 0.00 0.00
33554463 41044367:VC-NSX vmnic0 vSwitch0 12.02 0.03 307.00 10.87 0.06 753.00 0.00 0.00
33554464 41044704:DNS_Win2008 vmnic0 vSwitch0 1.91 0.00 123.00 2.10 0.00 92.00 0.00 0.00
33554465 41045502:NSX_Manager vmnic0 vSwitch0 2.48 0.04 1917.00 0.76 0.00 427.00 0.00 0.00
33554466 41038046:KVM1 vmnic0 vSwitch0 0.38 0.00 54.00 0.95 0.00 60.00 0.00 0.00
33554467 41070817:desktop-ubuntu vmnic0 vSwitch0 0.57 0.00 99.00 0.95 0.00 78.00 0.00 0.00
33554468 41070857:nsx-unified-appliance vmnic0 vSwitch0 0.76 0.00 54.00 1.34 0.00 60.00 0.00 0.00
33554469 41070917:NSX_Controller_c09ecf vmnic0 vSwitch0 76.29 0.10 168.00 91.74 0.44 635.00 0.00 0.00
33554470 41070880:vrni-platform vmnic0 vSwitch0 0.19 0.00 98.00 0.76 0.00 73.00 0.00 0.00
33554471 41070886:vrealize-automation vmnic0 vSwitch0 0.76 0.00 101.00 1.34 0.00 120.00 0.00 0.00
33554472 41071127:LogInsight vmnic0 vSwitch0 0.19 0.00 495.00 49.97 0.10 253.00 0.00 0.00
33554473 41071287:NSX_Controller_becb69 vmnic0 vSwitch0 89.07 0.09 137.00 109.86 0.77 916.00 0.00 0.00
33554474 41071270:KVM2 vmnic0 vSwitch0 0.38 0.00 54.00 0.95 0.00 60.00 0.00 0.00
50331649 Management n/a vSwitch1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
50331650 vmnic1 – vSwitch1 99.75 5.27 6922.00 230.60 0.16 92.00 0.00 0.00
50331651 Shadow of vmnic1 n/a vSwitch1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
50331652 vmk3 vmnic1 vSwitch1 99.75 5.27 6922.00 230.22 0.16 92.00 0.00 0.00
67108865 Management n/a DvsPortset-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
67108866 LACP_MgmtPort n/a DvsPortset-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
67108867 lag10gb n/a DvsPortset-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
67108868 vmnic4 – DvsPortset-0 7.06 0.01 233.00 7.82 0.01 194.00 0.00 0.00
67108869 Shadow of vmnic4 n/a DvsPortset-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
67108870 vmnic5 – DvsPortset-0 7.82 0.01 216.00 4.77 0.01 258.00 0.00 0.00
67108871 Shadow of vmnic5 n/a DvsPortset-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
67108872 vmk2 lag10gb* DvsPortset-0 0.00 0.00 0.00 0.38 0.00 60.00 0.00 0.00
67108902 vdr-vdrPort lag10gb* DvsPortset-0 23.08 0.03 145.00 0.00 0.00 0.00 0.00 0.00
67108903 41070817:desktop-ubuntu.eth0 lag10gb* DvsPortset-0 0.38 0.00 42.00 0.00 0.00 0.00 0.00 0.00
67108904 41070876:App01.eth0 lag10gb* DvsPortset-0 6.68 0.01 146.00 7.06 0.01 116.00 0.00 0.00
67108905 41005360:DB01.eth0 lag10gb* DvsPortset-0 4.58 0.00 96.00 4.96 0.00 83.00 0.00 0.00
67108906 41071013:Web01.eth0 lag10gb* DvsPortset-0 5.53 0.01 199.00 5.34 0.01 209.00 0.00 0.00
67108907 41070883:App02.eth0 lag10gb* DvsPortset-0 4.96 0.01 145.00 4.77 0.00 131.00 0.00 0.00
67108915 41075821:edge-3-jobdata-208014 lag10gb* DvsPortset-0 0.00 0.00 0.00 0.38 0.00 90.00 0.00 0.00
67108916 41075821:edge-3-jobdata-208014 lag10gb* DvsPortset-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
67108917 41076624:edge-4-jobdata-208016 lag10gb* DvsPortset-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
83886082 Management n/a DvsPortset-1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
83886083 vmnic2 – DvsPortset-1 0.57 0.00 77.00 0.57 0.00 60.00 0.00 0.00
83886084 Shadow of vmnic2 n/a DvsPortset-1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
83886115 41070820:JUN_LINUX_GW.eth1 vmnic2 DvsPortset-1 0.38 0.00 77.00 0.00 0.00 0.00 0.00 0.00
83886116 41070820:JUN_LINUX_GW.eth0 vmnic2 DvsPortset-1 1.14 0.00 80.00 0.57 0.00 103.00 0.00 0.00
83886117 41070860:JUN-Win7.eth2 vmnic2 DvsPortset-1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
83886118 41070860:JUN-Win7.eth1 vmnic2 DvsPortset-1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
83886119 41070860:JUN-Win7.eth0 vmnic2 DvsPortset-1 0.38 0.00 60.00 0.19 0.00 60.00 0.00 0.00
83886120 41038166:JUN_AD_WIN2008.eth1 vmnic2 DvsPortset-1 0.57 0.00 103.00 1.14 0.00 84.00 0.00 0.00
83886121 41038166:JUN_AD_WIN2008.eth0 vmnic2 DvsPortset-1 0.38 0.00 69.00 0.38 0.00 73.00 0.00 0.00
Tak a známe swithport ID takže ho můžeme zadat do příkazu pktcap-uw. Vždy výstup ukládáme do souboru .pcap , který pak můžeme přečíst přes tcpdump-uw a nebo překopírujeme pomocí winscp a otevřeme s wireshark.
[root@esxdell1:~] pktcap-uw -o app01.pcap –switchport=67108904
The output file is app01.pcap
The switch port id is 0x04000028
No server port specifed, select 58577 as the port
Local CID 2
Listen on port 58577
Accept…Vsock connection from port 1030 cid 2
Dump: 137, broken : 0, drop: 0, file err: 0Join with dump thread failedDestroying session 2
Dumped 137 packet to file app01.pcap, dropped 0 packets.
Done.
[root@esxdell1:~]
Pomocí tcpdump-uw mohu hned přečíst
[root@esxdell1:~] tcpdump-uw -r app01.pcap
reading from file app01.pcap, link-type EN10MB (Ethernet)
16:21:52.252167 IP 192.168.10.11 > 192.168.20.11: ICMP echo request, id 2771, seq 93, length 64
16:21:52.927214 IP 192.168.10.11.http > 192.168.40.5.62010: Flags [S.], seq 2390501624, ack 1108708033, win 14600, options [mss 1460,nop,nop,sackOK,nop,wscale 3], length 0
16:21:52.927540 IP 192.168.10.11.http > 192.168.40.5.62010: Flags [.], ack 19, win 1825, length 0
16:21:52.944577 IP 192.168.10.11.56275 > 192.168.40.6.http: Flags [S], seq 1270410504, win 14600, options [mss 1460,sackOK,TS val 3968677 ecr 0,nop,wscale 3], length 0
16:21:52.945814 IP 192.168.10.11.http > 192.168.40.5.62010: Flags [P.], seq 1:269, ack 19, win 1825, length 268: HTTP: HTTP/1.1 200 OK
16:21:52.945854 IP 192.168.10.11.http > 192.168.40.5.62010: Flags [F.], seq 269, ack 19, win 1825, length 0
16:21:53.252133 IP 192.168.10.11 > 192.168.20.11: ICMP echo request, id 2771, seq 94, length 64
16:21:54.252149 IP 192.168.10.11 > 192.168.20.11: ICMP echo request, id 2771, seq 95, length 64
16:21:54.386898 IP 192.168.10.11.http > 192.168.40.5.62016: Flags [S.], seq 223679925, ack 222829258, win 14600, options [mss 1460,nop,nop,sackOK,nop,wscale 3], length 0
Tak to byla možnost pomocí příkazové řádky a teď to samé uděláme pomocí nového GUI v NSX 6.4
Creat Session
Jméno a vyberem hosta
výběr hosta v mém případě esxdell1 a OK
vybereme co chceme opět zachytávat physical tedy vmnic nebo VMkernel tedy vmk. My chceme opět vNIC tedy virtální kartu VM App01
Vybereme VM App01
Kterou kartu pokud jich má VM více a OK
Pokud máte nastavena firewall pravidla můžete specifikovat filter pro VM které zjistíte třeba z NSX Manageru a central CLI.
nsxmanager.sipovecs.local> show dfw cluster all
No. Cluster Name Cluster Id Datacenter Name Firewall Status Firewall Fabric Status
1 DELL domain-c45 SDN_PRAHA Enabled GREEN
nsxmanager.sipovecs.local> show dfw cluster domain-c45
Datacenter: SDN_PRAHA
Cluster: DELL
No. Host Name Host Id Installation Status Firewall Fabric Status
1 esxdell1.sipovecs.local host-27 Enabled GREEN
2 esxdell2.sipovecs.local host-34 Enabled GREEN
nsxmanager.sipovecs.local> show dfw host host-27
Datacenter: SDN_PRAHA
Cluster: DELL
Host: esxdell1.sipovecs.local
No. VM Name VM Id Power Status
1 VC-NSX vm-1362 on
2 LogInsight vm-1410 on
3 vrni-platform vm-1412 on
4 desktop-ubuntu vm-1414 on
5 vrealize-automation vm-1418 on
6 NSX_Controller_becb69b2-c3fe-4ef0-8f22-2f8ba842558e vm-1481 on
7 NSX_Controller_c09ecfda-3bc7-401e-82f2-f38ecf56e531 vm-1484 on
8 nsx-unified-appliance vm-1520 on
9 KVM1 vm-1525 on
10 KVM2 vm-1527 on
11 JUN_LINUX_GW vm-1555 on
12 JUN-Win7 vm-1556 on
13 JUN_AD_WIN2008 vm-1570 on
14 EDGE-B-0 vm-1571 on
15 EDGE-VIP-1 vm-1575 on
16 App02 vm-319 on
17 DB01 vm-320 on
18 Web01 vm-321 on
19 App01 vm-323 on
20 DNS_Win2008 vm-373 on
21 NSX_Manager vm-401 on
22 Web02 vm-522 on
23 Web03 vm-524 on
nsxmanager.sipovecs.local> show dfw vm vm-323
Datacenter: SDN_PRAHA
Cluster: DELL
Host: esxdell1.sipovecs.local
Host-ID: host-27
VM: App01
Virtual Nics List:
1.
Vnic Name App01 – Network adapter 1
Vnic Id 5015dec9-b8fa-4d1f-6c86-ec04aa8ca990.000
Filters
Filter Name nic-41070876-eth0-vmware-sfw.2
Filter Hash 36794
nsxmanager.sipovecs.local>
Ale nemusím vybrat žádný filtr to jen pokud bych řešil zda např. microsegmentace funguje jak má. Můžete určovat zda Pre nebo Post tedy před aplikací filteru nebo po aplikaci filteru.
Tak a hotovo jakmile se dokončí task je možne ho pustit znovu a nebo smazat atd… stáhnete do vašeho stroje a přes typicky wireshark otevřeme.
Samozřejmě sice používate GUI , ale pořád je využíván pktcap-uw. Takže doporučuju spíše se naučit pracovat přímo z pktcap-uw z příkazové řádky. Nebojte se jí. -)
/var/log/pktcap-agent.log
2018-02-04T16:44:09Z pktcap-agent: [INFO] pktCapCli.cpp:ProcessIncomingData():2029: Packet capture CLI receive incoming message, length: 113
2018-02-04T16:44:09Z pktcap-agent: [INFO] pktCapCli.cpp:ProcessRequest():1669: Process packet capture CLI request session 8fb49f12-74d8-4025-bc97-cf0dc57d5232
2018-02-04T16:44:09Z pktcap-agent: [INFO] pktCapCli.cpp:RunCmd():2170: Run cmd /bin/net-dvs
2018-02-04T16:44:09Z pktcap-agent: [INFO] pktCapCli.cpp:GetSwitchPort():1319: Switch port is 67108904 for DVS f3 37 15 50 4e ec 3a 6c-b9 4c 10 6e f3 d2 a5 9f DVPort 164
2018-02-04T16:44:09Z pktcap-agent: [INFO] pktCapCli.cpp:BuildCLICapCmd():246: packet capture command: /bin/pktcap-uw –switchport 67108904 –dir 0 -c 20000 -o –
2018-02-04T16:44:09Z pktcap-agent: [INFO] pktCapCli.cpp:ProcessRequest():1766: Send packet capture CLI start reply to vsm session 8fb49f12-74d8-4025-bc97-cf0dc57d5232
2018-02-04T16:44:09Z pktcap-agent: [INFO] pktCapCli.cpp:LaunchCapture():817: Insert packet capture req 8fb49f12-74d8-4025-bc97-cf0dc57d5232 pid 41052054
2018-02-04T16:44:09Z pktcap-agent: [INFO] pktCapCli.cpp:LaunchCapture():781: Packet capture command execute for capture request 8fb49f12-74d8-4025-bc97-cf0dc57d5232
Takže Enjoy Packet Capture -)
Neváhejte mě napsat pokud vás zajíma něco více.
Dobrá práce Karle !
Pingback: Packet Capture – NSX 6.4 - Tech Field Day