用廉价的7620路由器做VLAN交换机,单线复用看IPTV

Padavan 星雨 1081℃ 0评论
{网络结构和目的:}
(结构见下面图1)
1、主路由7620的padavan系统,在弱电箱,光猫是桥模式,分别输出IPTV信号和互联网链路。
2、IPTV盒子接在客厅的AP上(7620@padavan的AP模式),AP与住路由之间只有一根4芯网线。
3、AP与主路由之间要单线复用,以VLAN方式传输iptv信号和互联网信号。
4、成本考虑,不购买新的VLAN交换机,只利用这两个7620设备。
 
{修改AP和路由器的方法:}
简单而言,就是这样3种共4、5行命令:
【弱电箱路由器端,路由模式的Padavan:】
         switch vlan set 0 1  00111011 0 0 –uuu-tt
         switch vlan set 1 2  10000011 0 0  u—–tt
         switch vlan set 2 10 01100000 0 0 -ut—–
         switch pvid 1 10
         switch reg w 0x2210 0x81000000
# 我的设备0号口WAN,1号口接光猫iTV,2号口为Trunk口。vlan2为WAN区域,vlan10为IPTV区域。请勿照搬,你的设备可能不同。
# 设置Lan1 为iptv输入口,属于vlan10,给其pvid赋值 10
# 改Trunk口(Lan2,对应0x2210)的属性,让它接受任意类型数据帧
 
【客厅端,AP模式的Padavan:】
         switch vlan set 0 1  11101011 0 0 uuu-u-tt
         switch vlan set 2 10 00011011 0 0 —ut-tt
         switch pvid 3 10
         switch reg w 0x2410 0x81000000
# AP端我用K2刷的Padavan固件。请勿完全照抄,请按你的设备实际情况划分vlan端口
# 第5口作Trunk口(外壳标注为WAN,端口对应0x2410)接路由端过来的复用线。
# 请按你设备的实际情况选择Trunk口的PVC寄存器地址。
——————————- 我是分割线,下面可以慢慢看整个的过程 ——————————-
 
{【本作品使用 CC 知识共享协议,转载或引用请遵守该协议 >】}
{署名非商业性使用相同方式共享 2.5 中国大陆 (CCBY-NC-SA 2.5 CN)
===================== 1节【起因】 =====================
新装的电信宽带,送了一个IPTV,奈何客厅电视到弱电箱只有一根网线,且年代久远,无法拉扯换成两根网线,而且在45线对上还有电话,无法拆分成12364578来当两条网线用,所以有了单线复用同时传输iptvLAN的需要。。。话说恩山上关于vlan单线复用的贴子很多,参见:
但大多是用K2p的荒野无灯版本实现的,或基于梅林固件、OpenwrtPandoraBox实现的。
鉴于7620路由器是大量使用的、价格便宜的(二手的OYE0001只要30元),且Padavan固件从软件易用性来说,是满足各种需要的。所以还是考虑要使用基于7620芯片的Padavan来实现这个需求。
上图是我的单线复用的网络结构,可以看见:
在弱电箱光猫GPON那里有一个7620Padavan系统,工作在Router模式,作为主路由PPPoE拨号上网,
7620WAN接光猫互联网口,Lan1接光猫iTV口,Lan2作为Trunk口单线复用,Lan34为内网。
(注:光猫iTV口输出unTag的数据流,你也可以根据自己的网络设计在光猫里设置它带上特定VLAN信息)
 
===================== 2节【VLAN问题】 =====================
7620划分vlan是非常容易的,几个命令switchvlan set 就实现了,(事先请确认端口顺序:你刷的什么版本的Padavan系统,WANLAN1-4是否与路由器外壳上的标志对应,这些,你都应该通过 switch dump 命令查看,搞清楚后,用纸笔记录下来。这是前置工作)而且,vlan间隔离得很好。但是,两个padavan相互联接的时候出现问题:
Trunk口上无法传递vlan不等于1的数据,也就是说,划分为Trunk的口无法作为单线复用口来使用。
就这个问题,使用K2p的大仙们有多样的解决方法,主要是用mtk_esw 命令。
虽然按照Andy.Padavan20159月在bitbucket上的解释
但其中关于移位、写入地址、为何是该参数等等,解释得非常薄弱,参照该方法书写后,,,在7620芯片上,仍旧无法实现Trunk端口的数据通过。
此事情折腾了我很久,几乎都要放弃padavan系统,改而使用openwrt了。
Openwrt/LEDE系统的交换机功能非常简洁,容易修改成功)
 
===================== 3节【VLAN问题的解决】 =====================
一筹莫展,我在恩山上查询的所有帖子,都没有详细说明mtk_esw命令的参数含义,大家基本上都是照别人的样子写的,虽然也都成功了,但是不知道为什么成功。
唯一一个例外是@springGcf ,,,
他在恩山的第一篇文章,就是关于VLANswitch、单线复用的详细的说明,
该文章里详尽地叙说了他在Router模式下创建vlan的成功,和在AP模式下的失败。
虽然他没有完美实现单线复用,虽然他没有搞定AP模式下的Trunk口的数据分流,
但是给我提供了一个很好的思路,就是,Trunk口的控制,是由某些寄存器来完成的。
于是就有了和@footlog 大仙 的交流(参考:https://www.right.com.cn/forum/thread-258643-1-1.html
他非常nice地帮我找到了7620的芯片级编程手册,并直接指出了应该阅读第xxx页的第377小节,
关于“PVC:端口vlan控制寄存器”的定义和参数。。。Very Nice的一个人。
我断断续续用了两天的时间阅读该pdf文档,并使用各种参数去填写PVC寄存器做试验,
终于在一个机缘巧合的参数组合下,Trunk口通了!!!
看到接在vlan10的端口上的计算机屏幕上ping通了另一端Padavanvlan10端口上的服务器的时候,
我却毫无兴奋之情,研究这些耗费了太多的时间,前人们做vlan设置的时候并未仔细钻研,仅凭口耳相传。
,,,后来我不断缩减改动的参数的地方,最后发现只需要改动一处即可,总结如下:
【将你Trunk端口的PVC寄存器的最低两bits,改为00,即可作为Trunk,传递所有vlan的数据,
原系统设置为10了,只允许unTag数据通过,或者有优先级设定的数据通过,
而一般人的Trunk口都是vlan1LAN)设为unTag,并且不会给任何vlan数据设置优先级
所以除了vlan1,其他数据都无法通过Trunk端口,导致两端的设备无法连接】
OK,长话短说,在我的这两台7620的网络构架下(一端Router另一端AP,之间vlan单线复用)
你可以如此设置,45行语句即可,非常简单:
【路由器端:】
# 设备0号口WAN,vlan1为LAN,vlan2为WAN区域,vlan10为IPTV区域。你的设备可能不同
         switch vlan set 0 1  00111011 0 0 –uuu-tt
         switch vlan set 1 2  10000011 0 0 u—–tt
         switch vlan set 2 10 01100000 0 0 -ut—–
# 以下设置Lan1 为iptv输入口,属于vlan10,给pvid赋值 10
         switch pvid 1 10
# 以下修改Trunk口(Lan2),接受任意类型数据帧
         switch reg w 0x2210 0x81000000
【客厅端AP:】
#请勿完全照抄,请按你的设备实际情况划分vlan端口
         switch vlan set 0 1  11101011 0 0 uuu-u-tt
         switch vlan set 2 10 00011011 0 0 —ut-tt
         switch pvid 3 10
         switch reg w 0x2410 0x81000000
# AP端我用K2刷的Padavan固件,
# 第5口(外壳标注为WAN,端口对应0x2410寄存器)接路由端过来的复用线,
# 请勿完全照抄,请按你设备的实际情况选择Trunk口的PVC寄存器地址。
修改好后,页面点击保存,在控制台或web页面执行mtd_storage.sh  save”以保存到NVRAM
重启路由器、AP之后即可生效{如下图:}
===================== 4节【IPTV组播】 =====================
如上节所说,45行命令即可把一台30元的7620路由器模拟为一个标准vlan交换机,划分vlan端口,复用你珍贵的网线。但是,我在实际使用中发现,iptv机顶盒能播放点播、回看内容,却不能播放直播电视。
非常不解,,,经查,电信的IPTV直播电视节目使用组播数据,而iptv盒子不能播放直播电视,说明这个模拟的vlan交换机还有欠缺。
又探索了两天,发现直接在padvan的界面里就能修改,让组播数据变为单播从而穿越vlan传播给iptv盒子
路径为“内部网络LANIPTV“启用IGMP..侦听”M2U-以太网交换机”设置为“组播到单播”
如下面两个图,两端的设备,不管AP模式,或者路由模式都是如此设置
到此,全部结束,iptv盒子完美观看所有节目,直播、点播、回看都可以,
客厅的AP端提供无线和3LAN接口,给手机、计算机、智能电视使用互联网。
弱电箱的路由器提供第2个无线信号给周围房间,还剩2LAN端口可以通往其他房间的有线网卡用。
ps:路由器使用的是OYE001,不到1瓦功率,以USB输入电源,直接从光猫的USB口上取电,省了个电源插头呢。)
===================== 5节【关于成本的后记】 =====================
 
有朋友说,这么做意义何在? 100M的路由器端口还复用啥,,,多拥挤!
要知道,很多用户不是都有100M200Mbps的互联网宽带的,他们用不上K2p这样的千兆环境。
出于成本的考虑,30元的7620路由器,用两台就完全解决了IPTV单线复用的问题,不是很实惠吗?
也不需要在弱电箱里再放置一台专门的VLAN交换机,降低耗电和发热,,,不是更为安全吗?
话说,一台GS108e也不便宜哦,330大洋呢{参看下图}
至于iptv带宽挤占LAN内带宽问题,如下图,分别是高清节目和标清节目的带宽。
对于100Mbps的内网来说,iptv占用了约8Mbps的空间,8%,哦,还剩余92Mbps给互联网呢不是?
所以,不用很担忧啦,起码我用起来,100Mbps的速度和90Mbps速度相差不大。。
===================== 6节【致谢!!!】 =====================
【鸣谢4
他热心地提供了关于mtk7620的产品编程说明书的pdf
里面详尽地介绍了关于各个片上寄存器的设置参数。以使得我的探索成功于看到这个pdf后的第二天。
真是天降贵人。
 
【鸣谢3
他的贴子认真思考了用AP模式、路由器模式来做VLAN单线复用的问题
并照他人的文章,解决了部分难点,而在PadavanAP模式下并未解决vlan问题。
我从他的贴子(https://www.right.com.cn/forum/thread-342332-1-1.html)中获得启发,
认为在mtk7620的底层寄存器里有着vlan控制相关的信息,
从而研读7620的产品编程手册,最终解决问题。
 
【鸣谢2
毫无疑问,hiboy是本版最功勋显著的大神,从2015年起我就在使用他编译和增补的Padavan系统。
https://www.right.com.cn/forum/thread-161324-1-1.html)。 而在那之前,我一直是使用openwrtBB或者CC之类的,比较繁琐,尤其是dns分流等等,你懂的。
2015年末的时候,偶然发现上面这篇H大的关于编译Padavan的文章,有如进入了一个华美的宫殿,所需要的功能完全OK,简单填写参数就能顺畅使用。
甘之如饴。
 
【鸣谢1
Hackpascal大神是一只老鸟,1990’s的小伙。
2015年春天的时候搞出来Breed这么一个完全不同于uBoot的替代品!
(嗯,Breed,多么的温香暖玉满怀抱的感觉 o(_)o 哈哈)
想当年,我还在用TTL线uboot启动的时候通过uBoottftpZmodem协议刷写路由器的固件。
那是一种非常辛苦的操作,需要在启动的某个特定瞬间阻止uboot加载OS,然后选择更新操作,
我常在深夜时分神情恍惚之下,选错1234、、、导致死掉了好几个路由器。
所以,当你发现一款简单操作就能更新固件、而且永远不死不需要拆机接TTL或者编程器的软件的时候,
那种感激之心,简直无以言表。
4年过去了,也不知道Hackpascal硕士毕业后去了哪家硬件公司,
是否仍旧激情洋溢,还是被柴米油盐奶粉尿布磨灭了情怀。
没有人见过他,他网站里,Breed还在更新着(https://breed.hackpascal.net/ ),
万千台的路由器已经被刷入Breed启动,
江湖上流传着他的传说。。。
===================== 7节【欢迎转载】 ======================
1、转载或引用请遵循:
{【本作品使用 CC 知识共享协议,转载或引用请遵守该协议 >】}
{署名非商业性使用相同方式共享 2.5 中国大陆 (CCBY-NC-SA 2.5 CN)
 
         或者email我:gaze#163.com#号请自行替换)
3、全文pdf可从该地址获得:

转载请注明:星雨小站 » 用廉价的7620路由器做VLAN交换机,单线复用看IPTV

如果你觉得这篇文章对你有帮助,请支持我继续更新网站!捐赠本站
喜欢 (3)or分享 (0)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址