andlinux中运行IOL如何抓取路由器之间的通信数据

        andlinux是一种运行在windows之上的ubuntu版本,基础是coLinux,比在虚拟机中运行linux效率更高。该系统默认使用TAP虚拟网卡与宿主和Internet通信,方式不同于bridge,在windows上可以通过SSH 192.168.11.150访问linux shell。

         为了使IOL实例间的数据包能被我们捕获,可以使用程序changL2.py和py2net.py两个程序:

          changL2.py作用是把标准输入中的pcap文件输出流中的第21-24字节的linktype

          改为指定的协议如:ETH、HDLC、PPP、FR、或者你可以手动指定DLT(DataLinkType)类型,随后判断每个包的长度,然后重新输出到标准输出。

          这样可以被另一个包捕获程序从标准输入读取,还可以直接使用重定向符写入到文件中。

 

          py2net.py用于将实例通信绑定到指定的网络接口之上:loopback、tap、eth等。

          显然最简单的方法就是将实例流量绑定到andlinux中的eth1中,这样,我们在windows中就可以运行wireshark等工作直接抓取。

          但是缺点很明显,这种方式只能抓取eth类型封装。

         如果实例间运行的是串行协议,这样无法正确抓取。

         *注意:转发路由器实例串行接口封装时,重定向符只能为单向( 0 > tap0 ),否则将导致转发环回,出现大量重复的数据包,cpu使用上升。

         此时我们可以使用tshark或者tcpdump程序抓取虚拟网卡的流量,然后输出到标准输出,通过管道让changL2.py程序做一个封装格式转化,然后重定向写入到一个文件中。然后我们可以打开该cap文件进行分析。

         流程:(以抓取路由器间HDLC串行协议数据为例)

 1、使用py2net将IOL路由器实例接口间流量引入tap接口;

 2、运行

#tcpdump -i tap0 -w - | ./changL2.py hdlc >test.cap

,执行后,标准的串行pcap封装格式写入到了cap文件。

 如果实例间为eth显然没有必要运行changL2。

实验目录如下:

 NETMAP文件内容:
1:0/0 2:0/0 1023:0
1:0/1 2:0/1
1:0/2 3:0/2

 IFMAP 文件内容:
0>tap0

py2net.py读取NETMAP和IFMAP文件内容,创建socket,发送数据帧。

参考命令如下:

//新建一个虚拟网卡tap0

tunctl -t tap0

//开启并设置tap0为混杂模式,以便于接口不属于本网卡的数据包

ifconfig tap0 promisc up

//开启实验

./start.sh

//开启程序将上述实验中实例接口的流量发送到tap0

./py2net.py

//捕获并写入文件

tcpdump -i tap0 -w - | ./changL2.py hdlc > test.cap
 


可以通过本地在windows命令行上运行ssh 并将ssh登录由的标准输出通过管道重定向到wireshark程序,这样可以使用wireshark在windows下即可看到动态的路由器实例间的通信过程,参考命令如下:

ssh -l root 192.168.11.150 "cd iou/ospf-traffic-share;tcpdump -i tap0 -w - | ../changeL2.py hdlc" | "D:\Program Files\WiresharkPortable\App\Wireshark\wireshark.exe" -k -i -

以root用户登录andlinux,执行命令切换到实验目录,开始抓包,并重定向到转换程序changeL2使封装格式更改为hdlc,并输出到标准输出中,再次重定向到windows下的wireshark程序,这样即可动态的查看通信过程。

注意:使用了便携版的wireshark(portable)时,重定向应该使用\App\Wireshark目录下的wireshark.exe,不应该使用WiresharkPortable.exe。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值