本节介绍了如何使用 CLI/UI 捕获虚拟服务流量。
使用 UI 捕获虚拟服务流量
导航到捕获配置部分会显示为当前捕获定义的参数。
。单击铅笔图标以启动新捕获。
在流量捕获弹出窗口中,根据需要选择以下项:
字段名称 |
操作 |
---|---|
选择虚拟服务 |
选择要为其捕获流量的虚拟服务。此捕获包括客户端到 SE 和 SE 到服务器端的连接。将在处理该虚拟服务流量的所有 SE 上捕获流量。 |
要捕获的筛选器 |
所有流量 - 捕获所有流量。 选择客户端 IP、IP 范围、子网掩码 - 仅捕获指定 IP 地址、IP 地址列表或范围,或者子网的流量。IP 地址可以是客户端地址或服务器地址。
注:
|
每个内核捕获的数据包数量 |
指定要在内核中捕获的最大数据包数。 |
持续时间 |
指定捕获运行的时间(以分钟为单位)。 |
数据包大小 |
指定要捕获的数据包大小(以字节为单位)。这类似于 TCPdump 中的 snaplen 选项。要捕获整个数据包,请输入 0。 |
在高级设置部分下,选择以下选项之一:
|
控制运行状况监控器流量的捕获。 |
捕获会话密钥 |
启用会话密钥捕获。 |
单击开始捕获以查看捕获进度。
有关启用会话密钥捕获的更多信息,请参阅调试虚拟服务时启用会话密钥捕获。
完成的捕获
完成捕获时,控制器会对来自多个 SE 的数据进行整理,并将数据格式化为 PCAP 文件。然后,这些捕获会显示在完成的捕获部分下。该部分将以表格形式呈现,其中包含日期、虚拟服务名称和捕获的数据包大小,这些信息可采用 pcap 格式下载来导出。捕获文件可使用任何标准的流量捕获实用程序进行查看。
使用 CLI 捕获虚拟服务流量
要使用 NSX Advanced Load Balancer CLI 捕获数据包,请登录到 Shell 提示符,然后进入所需虚拟服务的数据包捕获子模式。
debug virtualservice Test-virtual service Updating an existing object. Currently, the object is: +-------+-----------------------+ | Field | Value | +-------+-----------------------+ | uuid | virtualservice-0-1 | | name | Test-virtual service | +-------+-----------------------+
参数 |
定义 |
---|---|
capture_params duration |
时间,以分钟为单位。默认值为“无限制”。 |
capture_params num_pkts |
要收集的最大数据包数。默认情况下无限制。 |
capture_params pkt_size |
要捕获的数据包大小或截断长度。默认值为“无限制”。 |
debug_ip addrs |
IPv4 地址格式。 |
debug_ip prefixes |
IPv4 前缀格式 <x.x.x.x/x>。 |
debug_virtual service_hm_include |
在捕获中包括运行状况监控器数据包。 |
debug_virtual service_hm_none |
在捕获中忽略运行状况监控器数据包(默认)。 |
debug_virtual service_hm_only Capture |
仅运行状况监控器数据包。 |
debug_ip 命令会进入子模式。此命令允许输入多个 IP 地址或 IP 子网。对于后续条目,忽略 debug_ip 选项。保存以提交所需 IP 并返回到上一个菜单。
默认情况下,不会定义要捕获的最大数据包数或持续时间。建议包含数据包捕获上限。如果不设定限制,捕获将一直运行,直到 NSX Advanced Load Balancer SE 驱动器已满,这可能会导致服务中断。
指定参数,包括要捕获的最大数据包数。
debugvirtualservice> capture_params num_pkts 1000 debugvirtualservice> debug_ip addrs 10.10.10.10 debugvirtualservice:debug_ip> save
根据之前配置的参数开始捕获。
debugvirtualservice> capture debugvirtualservice> save +----------------+--------------------+ | Field | Value | +----------------+--------------------+ | uuid | virtualservice-0-1 | | name | Test-VS | | debug_ip | | | addrs[1] | 10.10.10.10 | | capture | True | | capture_params | | | duration | 0 mins | | num_pkts | 1000 | +----------------+--------------------+
重新进入数据包捕获子模式,并停止正在进行的数据包捕获。
debug virtualservice Test-virtual service debugvirtualservice> no capture debugvirtualservice> save
捕获 PCAPng 格式的虚拟服务数据包
可以采用 PCAPng 格式捕获虚拟服务数据包。每个数据包都包含传输方向、se-uuid 和处理该数据包的内核编号。提供的前端和后端流量带有唯一的流量 ID,通过该 ID,您可以将数据包捕获中的前端连接和后端连接相关联,而无需返回查看连接/应用程序日志。
并非流量中的所有数据包都存在流量 ID。
要禁用此功能并回退到 PCAP,您可以使用以下命令。
debug virtualservice <> capture_params no pcap_ng
以下是 Wireshark 上显示的输出示例。
导出虚拟服务和服务引擎 PCAP 的数据包捕获
将数据包捕获导出到可使用 TCPdump 或 Wireshark 等工具查看数据包捕获的远程系统。
show debug virtualservice Test-virtual service capture Please specify the destination directory: /tmp Downloaded the attachment to /tmp/virtual service_virtualservice.20141205_192033.pcap bash
scp /tmp/virtual service_virtualservice.192033.pcap [email protected]:/tmp