此帖子最后由wsycqyz在2015-12-3 13:30中编辑
0 .背景
最近,上海电信50M套餐升级,送出中兴B860A 4K IPTV机顶盒。 光猫是中兴F420,电信工程结束后,光猫的三四口是IPTV接口,这两个接口也可以连接普通电脑上网。
作为持有CCIE证书的网络攻城狮子,我实在无法忍受不能使用自己的路由器拨号,所以我自己做,有这个句子。
原理上,简言之,接通IPTV,获取路由器分配的内部网地址(通常为192.168.1.X ),并且如果在DHCP交互期间发现特殊的DHCP选项,则在VLAN85上连接后续的IPTV
I )欺骗IPTV,获得想要的DHCP选项
ii ) )使连接到IPTV的网络设备支持VLAN85、51的传输) )有关具体分组内容的分析,请参考本文的最后附录) )。
1 .使用的网络设备
光猫F420、netgearr 6300 v2(关闭wifi,作为网关进行NAT )、Linksysea6500v2) AP模式、网络端口为普通电脑、LAN4端口为IPTV专用),以上均相同默认情况下,DDWRT仅支持小于16个VLAN编号,因此重新编译的内核模块(switch-robo.ko )将放入路由器/jffs/目录中,并在启动时重新加载
注:本文不讨论如何为DDWRT编译内核模块。 为什么? 所有axdcc都无法覆盖,因为不同的设备对VLAN的支持程度因固件而异。 然后,可能会有一个说明如何编译用于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光猫配置
向电信师傅要光猫的电信酰胺密码,进入光猫改为网桥,其他什么都不用更改。 配置后,光猫的部分截图应该如下:
I ) )用于互联网连接,模式:桥接模式,端口绑定到1、3、4,业务模式:互联网、VLAN模式UNTAG。 现在,1、3、4端口可以连接到普通电脑上并连接到互联网。
1.png(31.79kb,下载次数: 9) )。
2015-11-16上传20:44
ii ) .用于查看IPTV的连接。 模式:桥接模式,请勿选择端口绑定。 (有些同学有旧的IPTV,应该绑定到LAN2。 没关系。 只要不绑定到1、3、4就行了。 )、业务模式OTHER、VLAN模式为TAG、VLAN ID:85。
2.png(33.64kb,下载次数: 5) )。
2015-11-16上传20:44
iii ) .绑定模式,LAN3和LAN4应该是通过电信更改的。 VLAN绑定,映射规则: 85/85。 我还将LAN1更改为与3、4相同的,以便我的所有1、3、4端口都可以连接到网络上的IPTV。
3.png(28.67kb,下载次数: 4) )。
2015-11-16上传20:44
iv ) .日常应用、IPTV、_Other_B_VID_85对此的组播VLAN为51,电信应该已经修改。
4.png(24.22kb,下载次数: 5) )。
2015-11-16上传20:44
v ) .其他信息页面
5.png(26.31kb,下载次数: 5) )。
2015-11-16上传20:44
2.2 R6300v2配置
R6300v2连接了光猫的三个嘴巴,因为这个嘴巴可以看互联网和IPTV。
R6300v2还支持特殊的DHCP选项。 ddwrt-services-services-dnsmasq-additionaldnsmasqoptions添加了以下内容:
一些名为DHCP-option-force=VI-encap :0,2,' HGW-CT '复制码的学生表示IPTV没有效果。 请尝试以下完全符合中国电信标准的格式:
dhcp-option-force=125, 033600033600336003360003360033601 a :023600633600633604833604733605733602 d 3360433605:3 3600:003 :003 3:6 a 036048336036048336033603360 3600033600 b :02336000336003360033605 533600 d 3360023360033602 e复制代码按如下方式分析上面的行
: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 上传