linux下抓包用如下命令:tcpdump -w /tmp/rad1.cap -s 0 udp port 1812



其中各种条件的使用可以参考wireshark的使用或下面的“表达式”。如上例中可以改为:

tcpdump -w /tmp/rad1.cap -s 0 udp port 1812 or 1813

tcpdump -w /tmp/rad3.cap -s 0 udp port \( 1812 or 1813 \) and src or dst 125.70.249.150


--抓ping包

tcpdump -i en1 icmp


--i表示按网卡设备名抓包

tcpdump -i bond0(或eth0) udp port 8528  


--抓某个主机

tcpdump -i en1 host 61.139.81.6



注意and的优先级比or高  需要使用括号(园括弧在Shell中有专用,所以必须用反斜杠(\)转义,在C-shell中应该是\\)


 1、成电坚持说他们收不到×××属性(对应RAD_DETAIL中的account_info字段),所以默认为default,ERX工程师也确认了此事。

2、在23.192上进行抓包:tcpdump -w /tmp/rad1.cap -s 0 udp port 1812,然后成电人员进行拨号,拨号还是失败,停止抓包。

3、用wireshark打开rad1.cap,使用过滤条件:ip.dst==218.88.96.1 or ip.src==218.88.96.1,发现Radius的确没有下发属性:ERX-Virtual-Router-Name: ***-scczysw

4、对bims中node_table检查,发现218.88.96.1对应的设备类型居然是cisco,应当为unisphere,故导致发生错误,原因是资源管理系统送错了,批量修改后重启Radius即恢复正常。



过滤条件举例

1、查找Radius报文的loginname:radius.User_Name == "332211" (过滤向导可以通过Filter旁边的Expression按钮选择Radius报文的相关属性)


解析可以使用wireshark



表达式

tcpdump利用它作为过滤报文的条件,如果一个报文满足表

达式的条件,则这个报文将会被捕获。如果没有给出任何条件,

则网络上所有的信息包将会被截获。


1. 类型关键字


  host: 指定主机

  net: 指定网络地址

  port: 指定端口号

  默认类型为host


2. 方向关键字


  src: 指定源  

  dst: 指定目的

  src or dst

  src and dst

  默认为src or dst


3. 协议关键字


  包括fddi,ip ,arp,rarp,tcp,udp等类型


4. 逻辑运算


  取非运算是 'not ' '!'

  与运算是'and','&&'

  或运算 是'or' ,'||';  



示例

1. 截获所有135.252.142.150 的主机收到的和发出的所有的数据包

  tcpdump host 135.252.142.150 -i eth0


2. 获取主机135.252.33.186除了和主机135.252.142.150之外所有

  主机通信的ip包,使用命令

  tcpdump ip host 210.27.48.1 and ! 210.27.48.2


3. 获取主机135.252.33.186接收或发出的telnet包

  tcpdump tcp port 23 host 135.252.142.150


4. 获取主机135.252.142.121端口5060上的所有数据报

  tcpdump port 5060 and host 135.252.142.121


5. 获取主机135.252.142.150所有udp数据报

  tcpdump udp and host 135.252.142.150

  or:

  tcpdump ip proto \\udp and host 135.252.142.150


6. 获取主机和135.252.142.150的源端口为5060, 目的端口为

  45413的数据报

  tcpdump src port 5060 and dst port 45413 and host 135.252.142.150


7. 打印所有包含数据的数据报, 就是说除了SYN, ACk和Fin的数据报

  tcpdump 'tcp port 80 and

  (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'


8. 打印所有经过网关135.252.33.1长度大于576的数据报

  tcpdump 'gateway snup and ip[2:2] > 576'


  ip[2:2]: 从第二个byte开始的两个byte.