Embedded Packet Capture (EPC)是一个很好的抓包工具,在排障的时候,需要在线抓包的情况下,是一个非常好的选择。
EPC在IOS和IOS-XE都是支持,不过,不同平台下有版本的限制。
1、IOS:需要在12.4(20)T及之后的版本支持
2、IOS-XE:需要在15.2(4)S - 3.7.0 及之后的版本
如下配置示例,简单记录了IOS和IOS-XE的EPC不同配置:
关于IOS的EPC
配置步骤:
1、定义一个“capture buffer”,这是一个临时的buffer,给抓取的数据使用,当定义buffer的时候,有各种参数可以定义,例如:buffer大小(size),最大报文大小(max packet size),capture buffer的模式【这里分为2中,一种是linear(称为“线性模式”吧,当buffer满了,丢弃新的数据包),另一种是circular(称为“循环模式”吧,当buffer满了,丢弃旧的数据包)。】
2、可以定义一个ACL去匹配对应的流量。
3、定义一个“capture point”,定义哪个位置的流量会被抓取,抓取的方向是in,out,还是both,还可以定义是发生在IPv4还是IPv6,或者交换方式是process还是CEF。
4、为“capture point”关联buffer。
5、开启capture,开启之后,就可以抓取报文了。
6、待抓取结束,停止capture。
配置示例:
monitor capture buffer BUF size 2048 max-size 1518 linear <<<<<<定义一个名为BUG的buffer,buffer大小2MB,最大报文1518 Byte,当buffer满了,丢弃抓取的数据包。
ip access-list extended BUF-FILTER <<<<<<定义流量的src&dst地址
permit ip host 192.168.1.1 host 172.16.1.1
permit ip host 172.16.1.1 host 192.168.1.1
monitor capture buffer BUF filter access-list BUF-FILTER <<<<<<关联ACL到BUF
monitor capture point ip cef P fastethernet 0 both <<<<<<定义要抓取的接口,方向,交换方式
monitor capture point associate P BUF <<<<<<定义一个名为“P”的capture point并关联buffer参数
monitor capture point start P <<<<<<开启monitor capture
.... <<<<<<抓取过程
monitor capture point stop P <<<<<<停止抓取
直接在设备上查看抓取的信息:(但是看到的是16进制的方式)
show monitor capture buffer BUF dump
我们可以通过如下方式去查看:
1、导出为wireshark可读文件(通过FTP/TFTP)。
monitor capture buffer BUF export tftp://10.1.1.1/BUF.pcap
其他:当信息收集完毕之后,删除capture:
no monitor capture point ip cef P fastethernet 0 both
no monitor capture buffer BUF
注意:在IOS 15.0(1)M之前,buffer size被限制为512K,报文大小被限制为1024 Byte。抓取的信息存在DRAM中,不能存到NVRAM中,且重启后消失。另外,可以定义在某接口抓取或者全局抓取。
关于IOS-XE的EPC
配置步骤如下:
1、定义抓取的位置。
2、关联一个过滤信息,这里可以直接指定,也可以跟ACL或者route-map。
3、开启抓取。
...
4、停止抓取。
5、查看抓取的摘要信息或详细信息。
6、可以到处抓取的信息。
7、操作完毕,移除capture。
配置示例:
monitor capture C interface GigabitEthernet 0/0/1 both
monitor capture C match ipv4 protocol tcp any any
monitor capture C start
...
monitor capture C stop
查看抓取的信息:
show monitor capture C buffer brife
show monitor capture C buffer detailed
导出抓取的文件:
monitor capture C export tftp://10.0.0.1/C.pcap
移除capture:
no monitor capture C
注意:capture可以在物理接口,子接口和tunnel接口执行;目前不支持NBAR。
排查IOS-XE的EPC配置,如下debug可以确保正确的设置EPC:
debug epc provision
debug epc capture-point
相关链接1:Embedded Packet Capture Configuration Guide, Cisco IOS Release 15M&T
https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/epc/configuration/15-mt/epc-15-mt-book/nm-packet-capture.html?referring_site=RE&pos=3&page=https://www.cisco.com/c/en/us/support/docs/ios-nx-os-software/ios-embedded-packet-capture/116045-productconfig-epc-00.html
相关链接2:Embedded Packet Capture Configuration Guide, Cisco IOS XE Release 3S
https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/epc/configuration/xe-3s/epc-xe-3s-book.html?referring_site=RE&pos=2&page=https://www.cisco.com/c/en/us/support/docs/ios-nx-os-software/ios-embedded-packet-capture/116045-productconfig-epc-00.html