本帖最后由 wsycqyz 于 2015-12-3 13:30 编辑

0.背景

最近升级换了上海电信50M套餐,送中兴B860A 4K IPTV机顶盒,光猫为中兴F420,电信施工完毕后,光猫的3、4口为IPTV接口,同时这两个接口也可以用来接普通的电脑上网。

做为一名具备CCIE证书的网络攻城狮,不能使用自己的路由器拨号是完全无法忍受的,所以自己动手,有了此文。

原理上,说白了,就是IPTV开机,拿到一个路由器分配的内网地址(通常是192.168.1.X),在DHCP交互过程中发现在特殊的DHCP Option,那么就往VLAN85请求一个电信内网的地址用于后续IPTV认证,认证完成后,使用VLAN85和51来进行点播和直播。我们要做的就是:

i).欺骗IPTV,让其得到想要的DHCP Option

ii).使接IPTV的网络设备支持VLAN85,51的传输(具体包内容分析见本文最后附录)

1.使用的网络设备

光猫F420,NETGEAR R6300v2(关闭WIFI,当网关做NAT),Linksys EA6500v2(AP模式,网口可以普通电脑,LAN4口专接IPTV),以上都刷同一版本的DDWRT。由于DDWRT默认只能支持小于16的VLAN号,所以重新编译的内核模块(switch-robo.ko),放入路由器/jffs/目录下,启动时重新加载这个模块,以使其支持VLAN85和VLAN51。

注:怎么为DDWRT编译内核模块不在本文讨论范围内。为什么?因为不同设备,不同固件对VLAN的支持度不一样,LZ无法全部覆盖。后续也许会有一篇文件专门讲怎么为DDWRT编译内核模块以支持VLAN85,51。本文提供已经编译好的switch-robo.ko,DDWRT版本27745(内核版本3.10.87)及以后适用,R6300v2和EA6500v2通用,不对其它设备使用情况负责。下载链接:http://pan.baidu.com/s/1o6ncN8I

网络结构如下图:

(222.47 KB, 下载次数: 10)

2015-11-16 15:37 上传

2.改造

2.1光猫配置

问电信师傅要了光猫的telecomadmin密码,进光猫把其改成桥接,其它什么都不用改。配置完后,光猫的部分截图应该是如下:

i).用于上网的连接,模式:桥模式,端口绑定到1、3、4,业务模式:INTERNET,VLAN模式UNTAG。这样1、3、4端口就可以接普通电脑上网。

1.png (31.79 KB, 下载次数: 9)

2015-11-16 20:44 上传

ii).用于看IPTV的连接,模式:桥模式,端口绑定不要选(有些同学有旧IPTV的话,应该是绑定到LAN2上的,无所谓,只要不绑定1、3、4就行了),业务模式OTHER,VLAN模式是TAG,VLAN ID:85。

2.png (33.64 KB, 下载次数: 5)

2015-11-16 20:44 上传

iii).绑定模式,LAN3和LAN4应该是已经被电信改好了的,VLAN绑定,映射规则:85/85。我自己又把LAN1改成和3、4一样的,这样我的1、3、4端口都可以既上网以上IPTV。

3.png (28.67 KB, 下载次数: 4)

2015-11-16 20:44 上传

iv).日常应用,IPTV,对_Other_B_VID_85那个的组播VLAN应该是51,电信应该是已经修改好了的。

4.png (24.22 KB, 下载次数: 5)

2015-11-16 20:44 上传

v).其它一些信息页面

5.png (26.31 KB, 下载次数: 5)

2015-11-16 20:44 上传

2.2 R6300v2配置

R6300v2接光猫的3口,因为这个口是可以又上网又看IPTV的。

R6300v2还要支持特殊的DHCP Option,在DDWRT里->Services->Services->DNSMasq->Additional DNSMasq Options里,加上:

dhcp-option-force=vi-encap:0,2,"HGW-CT"复制代码这个有些同学表示对他们的IPTV不生效,可试试下面这段完全遵守中国电信规范的格式:

dhcp-option-force=125,00:00:00:00:1a:02:06:48:47:57:2d:43:54:03:04:5a:58:48:4e:0a:02:20:00:0b:02:00:55:0d:02:00:2e复制代码对上面这行的解析为:

125(DHCP Option125)

00 00 00 00 (enterprise number)

1a (data-length,26bytes option-data)

02 06 48 47 57 2d 43 54 (subcode-2 0x4847572d4354=HGW-CT,认证关键内容)

H  G  W  -  C   T

03 04 5a 58 48 4e(subcode-3,0x5a58484e=ZXHN,路由器型号,其它还见过"HG221")

Z  X   H  N

0a 02 20 00  (subcode-10 0x2000 untag)

0b 02 00 55  (subcode-11 0x0055=85 iptv vlanid)

0d 02 00 2e  (subcode-13 0x002e=46 voice vlanid)

R6300v2在启动时要载入重新编译的内核模块,并且让指定端口支持VLAN85,51,在DDWRT里->Administration->Commands,加上:

rmmod switch_robo

insmod /jffs/switch-robo.ko

echo "0t 4t 5" > /proc/switch/eth0/vlan/85/ports

echo "0t 4t 5" > /proc/switch/eth0/vlan/51/ports

第一行:从内核中移除当前内核模块(注:怎么为DDWRT编译内核模块不在本文讨论范围内。)

第二行:加载新编译的内核模块(注:怎么为DDWRT编译内核模块不在本文讨论范围内。)

第三、四行:把内部编号为0、4的两个接口放入VLAN85,51中。(注:每个路由器的内部编号与实际的接口对应不一样,请自行研究)

其中0代表R6300v2的LAN4口,这个口下接E6500v2;4代表R6300v2的WAN口,这个口接中兴F420

关于R6300v2机身背后的LAN口是这样的:

(190.05 KB, 下载次数: 6)

2015-11-30 11:05 上传

2.3 EA6500v2配置

同理,在启动时要载入重新编译的内核模块,并且让指定端口支持VLAN85,51,在DDWRT里->Administration->Commands,加上:

rmmod switch_robo

insmod /jffs/switch-robo.ko

echo "3t 4t 5" > /proc/switch/eth0/vlan/85/ports

echo "3t 4t 5" > /proc/switch/eth0/vlan/51/ports

第一行:从内核中移除当前内核模块(注:怎么为DDWRT编译内核模块不在本文讨论范围内。)

第二行:加载新编译的内核模块(注:怎么为DDWRT编译内核模块不在本文讨论范围内。)

第三、四行:把内部编号为3、4的两个接口放入VLAN85,51中。(注:每个路由器的内部编号与实际的接口对应不一样,请自行研究)

其中3代表EA6500v2的LAN4口,这个口下接IPTV;4代表EA6500v2的WAN口。

完工

3.常见Q&A

(等待提问)

4.参考文献https://www.chiphell.com/forum.ph ... 939443&pid=30156011

附录:IPTV从开机到上线全过程包分析

(I)IPTV开机,发送广播的DHCP Discover包,注意没有带VLAN,所以此包被R6300v2接收到。

1-dhcp_discover.png (223.38 KB, 下载次数: 11)

2015-11-16 16:40 上传

(II)R6300v2回复DHCP Offer包,注意红框,回复包带有DHCP Option125,内容是HGW-CT。R6300v2分配了一个192.168.1.145的地址给IPTV。

2-dhcp_offer.png (209.01 KB, 下载次数: 3)

2015-11-16 16:40 上传

(III)IPTV发包DHCP Request,无VLAN

3-dhcp_request.png (216.49 KB, 下载次数: 7)

2015-11-16 16:40 上传

(IV)R6300v2回复DHCP ACK,带DHCP Option125。

4-dhcp_ack.png (171.58 KB, 下载次数: 5)

2015-11-16 16:40 上传

(V)IPTV向VLAN85发送DHCP Discover,以得到电信内网地址。

5-vlan-dhcp-discover.png (87.94 KB, 下载次数: 7)

2015-11-16 16:40 上传

(VI)电信内部DHCP服务器从VLAN85回复的DHCP Offer。可见,IPTV又得到了一个20.155.255.16的地址。(其余流程略)

6-vlan-dhcp_offer.png (84.08 KB, 下载次数: 6)

2015-11-16 16:40 上传

(VII)IPTV得到内网IP地址后,还有登陆认证,下载一些基本信息,这些都略过,反正与我们无关。最后打开某个直播频道,IPTV发送IGMP加组,随后组播的数据包从VLAN85到达IPTV.

7-vlan-stream.png (144.23 KB, 下载次数: 11)

2015-11-16 16:40 上传

上海电信光猫设置虚拟服务器,你们想要的上海电信光猫桥接+4K IPTV配置流程...相关推荐

  1. 光纤 虚拟服务器,光纤猫设置虚拟服务器

    光纤猫设置虚拟服务器 内容精选 换一换 对于不同的硬件设备,通过在BIOS中设置一些高级选项,可以有效提升服务器性能.服务器上的SMMU一般用来完成设备的地址转换,并且可以实现设备隔离,在虚拟化中很实 ...

  2. 友华光猫设置虚拟服务器,中兴光猫sendcmd常用命令

    很多网友多问我修改中兴光猫F420.F460.F660等设备的一些设置的sendcmd命令.像管理员密码修改,用户数限制等等.所以下面简单讲一下一些常用的sendcmd命令,如果没有找到你要的send ...

  3. zte怎么开虚拟服务器,zte路由器设置虚拟服务器

    zte路由器设置虚拟服务器 内容精选 换一换 弹性网卡即虚拟网卡,您可以通过创建并配置弹性网卡,并将其附加到您的云服务器实例(包括弹性云服务器和裸金属服务器)上,实现灵活.高可用的网络方案配置.弹性网 ...

  4. 华为wifi设置虚拟服务器,家用路由器设置虚拟服务器

    家用路由器设置虚拟服务器 内容精选 换一换 弹性网卡即虚拟网卡,您可以通过创建并配置弹性网卡,并将其附加到您的云服务器实例(包括弹性云服务器和裸金属服务器)上,实现灵活.高可用的网络方案配置.弹性网卡 ...

  5. 886n虚拟服务器,教程:普联TL-WR886N V2-V3如何设置虚拟服务器

    普联TL-WR886N V2-V3设置虚拟服务器步骤一.实例列举: 软件版本: 软件大小: 软件授权: 适用平台: https://dl.pconline.com.cn/download/404108 ...

  6. h3c怎么创建虚拟服务器,h3c 设置虚拟服务器

    h3c 设置虚拟服务器 内容精选 换一换 通过云服务器或者外部镜像文件创建私有镜像时,如果云服务器或镜像文件所在虚拟机的网络配置是静态IP地址时,您需要修改网卡属性为DHCP,以使私有镜像发放的新云服 ...

  7. 华为路由器A1如何设置虚拟服务器,华为路由器A1如何设置虚拟服务器

    华为路由器A1如何设置虚拟服务器 内容精选 换一换 当您在使用VPC的路由表功能时,需要在弹性云服务器上部署SNAT,使得VPC内其他没有绑定EIP的弹性云服务器可以通过它访问Internet.该配置 ...

  8. 路由器设置虚拟服务器王者人生,路由器设置虚拟服务器王者人生

    路由器设置虚拟服务器王者人生 内容精选 换一换 Atlas 200 DK开发者板支持通过USB端口或者网线与Ubuntu服务器进行连接,连接示例图如图1所示.Atlas 200 DK连接Ubuntu服 ...

  9. mercury添加虚拟服务器,mercury怎么设置虚拟服务器

    mercury怎么设置虚拟服务器 内容精选 换一换 Windows场景中,当把源端服务器迁移到华为云后,目的端服务器C盘的已用空间比对应源端服务器C盘的已用空间大至少1GB,而不是与源端服务器C盘的已 ...

  10. win10 路由虚拟服务器,水星 MW300R V10~V15 设置虚拟服务器操作说明 路由器

    水星路由器是一个路由器品牌,具有强大的功能,是CPU处理器网络专用处理器,属于广域网络WAN端口2,处理效能是联机数Sessions5,000.集有线无线于一体,符合802.11n(Draft 2.0 ...

最新文章

  1. windows10用c++部署libtorch过程中遇到的一些问题
  2. jquery 常见选择器详解3
  3. 《移动应用开发》作业——HTML、CSS
  4. JButton 做图片框
  5. mysql创建的是拉丁_将MySQL数据库从拉丁转换为UTF-8
  6. spring boot创建一个应用
  7. Bootstrap-select使用说明
  8. 检查虚拟机是否使用virtio
  9. layer子窗口与父窗口传值
  10. char*转为LPCWSTR
  11. python selenium 弹出框定位_selenium弹框元素定位-冻结界面
  12. 情人节程序员用HTML网页表白【时光不老,我们不散love520】 HTML5七夕情人节表白网页源码 HTML+CSS+JavaScript
  13. QQ机器人闪照转发/撤回消息转发【最新beta2版本】
  14. endnote x7不在word中显示
  15. 有用的在线图片处理网站(证件照替换背景蓝色)
  16. 华为路由器:首次登陆配置Console、Telnet登录、Web登录
  17. Maven学习(九)Maven项目SpringCloud微服务工程构建(基于单一案例的逻辑)
  18. 什么是 GC,有什么作用?
  19. PDF转ePub选择人工转换的原因
  20. Ajax的简历技能如何写,web前端开发工程师简历专业技能怎么写

热门文章

  1. 天线工程手册_天线的原理是什么!?它到底是怎么接收信号的?
  2. java 跨平台的等宽字体_值得推荐的优秀编程字体/代码等宽字体收集(转)
  3. FGUI使用方法(四):List列表的详细使用方式,包括List嵌套List
  4. 计算机丢失msvcrt.dll,msvcrt.dll修复工具
  5. Google Chrome Top60 实用插件集合
  6. 泰拉瑞亚tModLoader 模组浏览器离线解决方法
  7. linux超级终端配置交换机路由器
  8. C# PDF转图片(JPG)
  9. C语言找出完数并输出
  10. 大学物理复盘 | 简明大学物理学第一章——质点运动学思维导图梳理(复习专用)