在对cisco路由器进行排错时,难免会遇上需要在接口抓包的操作,但有时由于可用接口数量有限,没有合适的交换机或者无法断开接口网线等情况,使得抓包这一操作很难实现。cisco路由器提供了嵌入式抓包(Embedded Packet Capture)的功能,当该功能启用后,路由器会捕捉指定接口收发的数据包,并存储在DRAM的buffer中(因此重启后数据会消失),捕捉到数据包后,有两种方式可以查看,第一种是直接在路由器上通过show命令查看,另一种是将抓包文件,通常是PCAP文件导出路由器通过抓包工具如wireshark等进行分析。嵌入式抓包为暂时性功能,无法存储到路由器配置中,因此重启后会消失。
嵌入式抓包功能支持版本
该配置适用于IOS系统中如C2900,C3900系列等。
1.首先定义一个缓存名称,这个缓存将会存储所有抓到的包,一旦生成,可以定义的参数有许多,包括缓存大小,最大包尺寸等,线性或者循环存储方式等。
monitor capture buffer BUF size 2048 max-size 1518 linear ## 定义buffer名称为BUF,大小2048字节,最大包1518,线性存储
2.可以通过ACL来过滤需要抓取的数据包。
ip access-list extended BUF-FILTER
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 ## 将BUF-FILTER与BUF绑定
3.定义第二个量,抓取点,表示在哪个接口抓取,同事可以定义抓取IPv4或IPv6的包和转发路径(进程转发或cef转发)。
monitor capture point ip cef POINT fastEthernet 0 both ##定义POINT在fastEthernet 0的收发方向同时抓取cef转发的数据包
4.将buffer与point绑定。
monitor capture point associate POINT BUF ##将抓取点POINT与BUF进行绑定
5.开始抓取
monitor capture point start POINT
6.稍等片刻,停止抓取
monitor capture point stop POINT
7.在路由器上观察采集到的数据包
show monitor capture buffer BUF dump
8.导出数据包文件
monitor capture buffer BUF export tftp://10.1.1.1/BUF.pcap
如果路由器没有FTP或者TFTP等功能,可以复制路由器上show出来的信息,拷贝到新建的文本文件然后利用hex-pcap转换分析。
9.删除抓包功能
no monitor capture point ip cef POINT fastEthernet 0 both
no monitor capture buffer BUF
该配置适用于IOS-XE系统,包括ISR4000,ASR1000等。相较于IOS,配置会简洁一些。
1.定义抓包点。
monitor capture CAP interface GigabitEthernet0/0/1 both
2.过滤抓包,可以配置命令行中或者绑定指定的ACL和class-map。
monitor capture CAP match ipv4 protocol tcp any any
3.开始抓包。
monitor capture CAP start
4.稍等片刻,停止抓包。
monitor capture CAP stop
5.查看抓取的数据包。
show monitor capture CAP buffer brief
show monitor capture CAP buffer detailed
6.导出路由器进行分析。
monitor capture CAP export ftp://10.0.0.1/CAP.pcap
7.删除抓包
no monitor capture CAP
Note
其实不关闭抓包。也可以通过show命令实时观察数据包
当功能不好用时,可以通过以下命令来进行排错
检查配置参数是否正确:
show monitor capture xxx parameter
对功能进行debug(会对设备性能产生影响,慎用):
debug epc provision
debug epc capture-point
Embedded Packet Capture for Cisco IOS and IOS-XE Configuration Example
https://www.cisco.com/c/en/us/support/docs/ios-nx-os-software/ios-embedded-packet-capture/116045-productconfig-epc-00.html?dtid=osscdc000283
Embedded Packet Capture - Cisco IOS-XE
https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/epc/configuration/xe-3s/epc-xe-3s-book.html