语音和统一通信 : Cisco Unified Communications Manager (CallManager)

从CUCM linux平台服务器端抓包的方法

2013 年 1 月 29 日 - 原创文档
其他版本: PDFpdf | 反馈



硬件平台

在进行思科统一通信管理器(CUCM)相关的排错时,有时有必要抓取CUCM服务器网络接口收发的数据包。本文描述如何在CUCM服务器端进行抓包操作

软件版本

CUCM 6.x/7.x/8.x

操作步骤

  1. 登陆CUCM命令行界面
    要进行CUCM服务器端的抓包操作,需要通过SSH登陆进CUCM的命令行(CLI)界面。登陆口令为服务器安装时设定的Administrator用户名/密码。
  2. 运行抓包命令
    在命令行界面,抓包操作的命令为"utils network capture",该命令的相关选项如下:
admin:utils network capture ?
Syntax:
utils network capture [options]
options  optional    page,numeric,file fname,count num,size bytes,src addr,dest addr,port num,host protocol addr
options are:
page                  - pause output
numeric               - show hosts as dotted IP addresses
file fname            - output the information to a file
    Note: The file will be saved in platform/cli/fname.cap
          fname should not contain the "." character
count num             - a count of the number of packets to capture
    Note: The maximum count for the screen is 1000, for a file is 100000
size bytes            - the number of bytes of the packet to capture
    Note: The maximum number of bytes for the screen is 128
          For a file it can be any number or ALL
src addr              - the source address of the packet as a host name or IPV4 address
dest addr             - the destination address of the packet as a host name or IPV4 address
port num              - the port number of the packet (either src or dest)
host protocol addr    - the protocol should be one of the following: ip/arp/rarp/all. The host address of the packet as a host name or IPV4 address. This option  will display all packets to and fro that address.
    Note: If "host" is provided, do not provide "src" or "dest"
verbose             - The verbose out put

由此可见,通过不同参数的选择,"utils network capture"命令可以抓取目标地址、源地址、端口号、指定包数量等,并将抓取到的包存为.cap文件。

一般来说,我们可以不加限制的抓取服务器网口的全部流量。命令如下:

utils network capture eth0 file packets count 100000 size all

此命令抓取全部流量,最大10000个包,并将其存为packets.cap文件

image 1

  1. 重现需要排障的问题

    以上命令开始运行后,就可以重现需要排障的问题。问题重现的同时,CUCM将相关的流量都抓取下来,以供排错时查看。

    问题重现结束后,按”ctrl+C”可以停止抓包。CUCM会将刚刚抓取到的文件存至activelog platform/cli/ 路径下。如果该路径下已经存有文件名相同的抓包文件,CUCM会自动重命名已有旧文件。

  2. 从服务器端下载抓包文件
    • 4.1 通过SFTP方式下载
      由于我们已经知道抓包文件保存的路径,我们可以在本地建立SFTP server,将抓取好的文件由服务器端传输到本地。

      示例命令:
file get activelog platform/cli/packets.cap

image 2

    • 4.2 通过实时监控工具RTMT下载
      我们也可以通过Real Time Monitoring Tool (RTMT)来抓取刚刚抓好的抓包文件。
      RTMT可以在CUCM管理界面的Applications->Plugins 菜单里下载并安装到本地。
      登陆RTMT后,选择System->Trace & Log Central,双击collect files,会弹出一个文件获取列表,点击Next,在第二页可以发现” Packet Capture Logs”一项。

image 3

    • 选择这一项,点击Next,在最后一页选择抓包操作的时间段和本地保存位置。点击Finish就可以将其下载到本地了。

经验总结

从CUCM服务器端抓包常用于抓取以下信息:

  • IP 电话或其他终端在建立通话时和CUCM间进行的信令交互。
  • CUCM提供MTP或transcoder资源时,终端与CUCM间的RTP流交互。
  • CUCM集群服务器间以及CUCM和其他与其整合的服务器(Unity,UCCX等)间的信息交互。
  • CUCM与网络中其他设备间的信息交互

相关命令

  • utils network capture eth0 file packets count 100000 size all
  • file get activelog platform/cli/packets.cap