OpenWrt系统下的IPTV抓包方法

IPTV抓包的实现方法有很多种,像网络抓包神器(Throwing Star LAN Tap)加Wireshark实现方法,像高档交换机的端口镜像设置再加上Wireshark实现方法等等。但这次我们主要还是讲在OpenWrt系统下的IPTV抓包方法,你只要有一台刷了OpenWrt系统的路由器,不需要再添加别的设备就可以轻松实现IPTV的抓包过程。

方法一、端口镜像设置加Wireshark

采用这种方法,你需要先有一台拥有端口镜像功能的路由器,一般有多个LAN口的路由器都能符合要求,我们这次讲解以TP-Link的TL-WDR4310为例展开:

1、先来看一下接线图:

OpenWrt系统下的IPTV抓包方法-1

图中,ITV源信号与LAN1口连接,IPTV机顶盒(目标信号)与LAN2口连接,LAN4口接PC。

2、路由器设置

在PC浏览器的路由器Luci界面,点“Network – Switch”进入交换机设置界面:

OpenWrt系统下的IPTV抓包方法-2

勾选“Enable mirroring of incoming packets”和“Enable mirroring of outgoing packets”,设置将进出镜像数据一起抓取:

OpenWrt系统下的IPTV抓包方法-3

然后根据自己实际的接线情况,来选择镜像源端口Mirror source port,我这里选LAN2,即IPTV机顶盒端;选择镜像监控端口Mirror monitor port,即PC端,我这里选LAN4,点“Save & Apply”按钮使设置生效。

3、在PC端使用Wireshark程序抓包

在PC端运行Wireshark程序:

OpenWrt系统下的IPTV抓包方法-4

双击“以太网”行,进入监控及数据包的抓取:

OpenWrt系统下的IPTV抓包方法-5

将IPTV机顶盒重新启动一下,机顶盒和ITV之间交互的数据包就完全被Wireshark抓取了出来,后续点红色停止按钮,再将相应数据文件保存即可。

方法二、应用Tcpdump软件

与Wireshark一样,Tcpdump也是一个非常有名的抓包软件,它被移植到了多种不同的平台上,这里面就包括OpenWrt系统,我们可以在opkg应用仓库中直接安装OpenWrt版的Tcpdump。继续以TP-Link的TL-WDR4310为例:

1、先安装tcpdump应用

opkg update
opkg install tcpdump

2、配置tcpdump的抓包环境

先按下图连接好相关接线:

OpenWrt系统下的IPTV抓包方法-6

因为tcpdump只能抓取wan(eth0.2)及br-lan(eth0.1)的数据包,所以我们无法像方法一那样,将ITV源信号及机顶盒目标信号都放在LAN口上,而是将ITV源信号与路由器的WAN口连接,机顶盒目标信号与LAN口相连。但这样连接以后,在路由器缺省配置模式下,IPTV组播信号是无法在WAN口与LAN口之间传递的。

最简单的解决方法就是建立wan和br-lan的桥接模式,这样既能保证IPTV组播信号的正常传递,又能用tcpdump对传输数据包进行抓取。

在PC浏览器的路由器Luci界面,点”Network – Interfaces”,点LAN接口所在行的“Edit”按钮进入编辑状态:

OpenWrt系统下的IPTV抓包方法-7

在”Physical Settings“界面下的Interface栏中增加eth0.2接口,点”Save”保存,然后再点“Save & Apply”使配置生效,桥接模式就设置好了,为安全起见建议将系统重启一下。

3、然后再回到路由器shell界面,运行tcpdump抓包程序:

tcpdump -i eth0.2 -s 0 -w /mnt/sda1/tcpdump/iptv.cap

回车运行,路由器就会进入wan(eth0.2)的监控及抓包进程,将IPTV机顶盒重启一下(注:抓取完成就在shell界面按ctrl+c停止相应进程),相应的数据包就会自动保存到我们指定的文件里。

OpenWrt系统下的IPTV抓包方法-8

4、接下来我们就可以对抓取下来的iptv.cap文件进行分析了。具体分析的过程在后面的文章中再详细展开。

总的来说,方法二比方法一的应用范围要更广一些,像一些没有端口镜像功能的路由器,例如WR720N这种只有两口的路由器、还有软路由等,就没有办法用方法一,但都可以用方法二来实现IPTV的抓包功能。不过从配置上来说,方法一要稍微简单一点,所以说两种方法是各有好处,在实际使用中大家可以灵活应用。