gaze 发表于 2018-11-29 17:47

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

本帖最后由 gaze 于 2018-12-3 12:21 编辑

{网络结构和目的:} (结构见下面图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 100111011 0 0 --uuu-tt         switch vlan set 1 210000011 0 0u-----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 111101011 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)}{https://creativecommons.org/licenses/by-nc-sa/2.5/cn/}

===================== 第1节【起因】 =====================
新装的电信宽带,送了一个IPTV,奈何客厅电视到弱电箱只有一根网线,且年代久远,无法拉扯换成两根网线,而且在45线对上还有电话,无法拆分成1236和4578来当两条网线用,所以有了单线复用同时传输iptv和LAN的需要。。。话说恩山上关于vlan单线复用的贴子很多,参见:https://www.right.com.cn/forum/search.php?mod=forum&searchid=3095&orderby=lastpost&ascdesc=desc&searchsubmit=yes&kw=vlan但大多是用K2p的荒野无灯版本实现的,或基于梅林固件、Openwrt、PandoraBox实现的。鉴于7620路由器是大量使用的、价格便宜的(二手的OYE0001只要30元),且Padavan固件从软件易用性来说,是满足各种需要的。所以还是考虑要使用基于7620芯片的Padavan来实现这个需求。
上图是我的单线复用的网络结构,可以看见:在弱电箱光猫GPON那里有一个7620的Padavan系统,工作在Router模式,作为主路由PPPoE拨号上网,7620的WAN接光猫互联网口,Lan1接光猫iTV口,Lan2作为Trunk口单线复用,Lan3、4为内网。(注:光猫iTV口输出unTag的数据流,你也可以根据自己的网络设计在光猫里设置它带上特定VLAN信息)

===================== 第2节【VLAN问题】 =====================

7620划分vlan是非常容易的,几个命令switchvlan set 就实现了,(事先请确认端口顺序:你刷的什么版本的Padavan系统,WAN、LAN1-4是否与路由器外壳上的标志对应,这些,你都应该通过 switch dump 命令查看,搞清楚后,用纸笔记录下来。这是前置工作)而且,vlan间隔离得很好。但是,两个padavan相互联接的时候出现问题:
Trunk口上无法传递vlan不等于1的数据,也就是说,划分为Trunk的口无法作为单线复用口来使用。
就这个问题,使用K2p的大仙们有多样的解决方法,主要是用mtk_esw 命令。虽然按照Andy.Padavan于2015年9月在bitbucket上的解释(https://bitbucket.org/padavan/rt-n56u/issues/6/iptv-two-vlans-over-one-port-for-multiroom)但其中关于移位、写入地址、为何是该参数等等,解释得非常薄弱,参照该方法书写后,,,在7620芯片上,仍旧无法实现Trunk端口的数据通过。
此事情折腾了我很久,几乎都要放弃padavan系统,改而使用openwrt了。(Openwrt/LEDE系统的交换机功能非常简洁,容易修改成功)

===================== 第3节【VLAN问题的解决】 =====================
一筹莫展,我在恩山上查询的所有帖子,都没有详细说明mtk_esw命令的参数含义,大家基本上都是照别人的样子写的,虽然也都成功了,但是不知道为什么成功。
唯一一个例外是@springGcf ,,,他在恩山的第一篇文章,就是关于VLAN、switch、单线复用的详细的说明,(参考:https://www.right.com.cn/forum/thread-342332-1-1.html)该文章里详尽地叙说了他在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通了另一端Padavan的vlan10端口上的服务器的时候,我却毫无兴奋之情,研究这些耗费了太多的时间,前人们做vlan设置的时候并未仔细钻研,仅凭口耳相传。,,,后来我不断缩减改动的参数的地方,最后发现只需要改动一处即可,总结如下:

【将你Trunk端口的PVC寄存器的最低两bits,改为00,即可作为Trunk,传递所有vlan的数据,原系统设置为10了,只允许unTag数据通过,或者有优先级设定的数据通过,而一般人的Trunk口都是vlan1(LAN)设为unTag,并且不会给任何vlan数据设置优先级所以除了vlan1,其他数据都无法通过Trunk端口,导致两端的设备无法连接】
OK,长话短说,在我的这两台7620的网络构架下(一端Router另一端AP,之间vlan单线复用)你可以如此设置,4、5行语句即可,非常简单:【路由器端:】# 设备0号口WAN,vlan1为LAN,vlan2为WAN区域,vlan10为IPTV区域。你的设备可能不同         switch vlan set 0 100111011 0 0 --uuu-tt         switch vlan set 1 210000011 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 111101011 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.shsave”以保存到NVRAM重启路由器、AP之后即可生效{如下图:}

===================== 第4节【IPTV组播】 =====================
如上节所说,4、5行命令即可把一台30元的7620路由器模拟为一个标准vlan交换机,划分vlan端口,复用你珍贵的网线。但是,我在实际使用中发现,iptv机顶盒能播放点播、回看内容,却不能播放直播电视。非常不解,,,经查,电信的IPTV直播电视节目使用组播数据,而iptv盒子不能播放直播电视,说明这个模拟的vlan交换机还有欠缺。又探索了两天,发现直接在padvan的界面里就能修改,让组播数据变为单播从而穿越vlan传播给iptv盒子路径为“内部网络LAN”--“IPTV”--“启用IGMP..侦听”--“M2U-以太网交换机”--设置为“组播到单播”如下面两个图,两端的设备,不管AP模式,或者路由模式都是如此设置

到此,全部结束,iptv盒子完美观看所有节目,直播、点播、回看都可以,客厅的AP端提供无线和3个LAN接口,给手机、计算机、智能电视使用互联网。弱电箱的路由器提供第2个无线信号给周围房间,还剩2个LAN端口可以通往其他房间的有线网卡用。(ps:路由器使用的是OYE001,不到1瓦功率,以USB输入电源,直接从光猫的USB口上取电,省了个电源插头呢。)
===================== 第5节【关于成本的后记】 =====================
有朋友说,这么做意义何在? 100M的路由器端口还复用啥,,,多拥挤!要知道,很多用户不是都有100M、200Mbps的互联网宽带的,他们用不上K2p这样的千兆环境。出于成本的考虑,30元的7620路由器,用两台就完全解决了IPTV单线复用的问题,不是很实惠吗?也不需要在弱电箱里再放置一台专门的VLAN交换机,降低耗电和发热,,,不是更为安全吗?话说,一台GS108e也不便宜哦,330大洋呢{参看下图}

至于iptv带宽挤占LAN内带宽问题,如下图,分别是高清节目和标清节目的带宽。对于100Mbps的内网来说,iptv占用了约8Mbps的空间,8%,哦,还剩余92Mbps给互联网呢不是?所以,不用很担忧啦,起码我用起来,100Mbps的速度和90Mbps速度相差不大。。


===================== 第6节【致谢!!!】 =====================

【鸣谢4】@footlog (https://www.right.com.cn/forum/space-uid-439839.html)
他热心地提供了关于mtk7620的产品编程说明书的pdf,(https://www.right.com.cn/forum/forum.php?mod=viewthread&tid=258643&page=2#pid3277654)里面详尽地介绍了关于各个片上寄存器的设置参数。以使得我的探索成功于看到这个pdf后的第二天。真是天降贵人。

【鸣谢3】@springGcf (https://www.right.com.cn/forum/space-uid-395877.html)
他的贴子认真思考了用AP模式、路由器模式来做VLAN单线复用的问题并照他人的文章,解决了部分难点,而在Padavan的AP模式下并未解决vlan问题。我从他的贴子(https://www.right.com.cn/forum/thread-342332-1-1.html)中获得启发,认为在mtk7620的底层寄存器里有着vlan控制相关的信息,从而研读7620的产品编程手册,最终解决问题。

【鸣谢2】@hiboyhiboyhiboy (https://www.right.com.cn/forum/space-uid-252719.html)
毫无疑问,hiboy是本版最功勋显著的大神,从2015年起我就在使用他编译和增补的Padavan系统。(https://www.right.com.cn/forum/thread-161324-1-1.html)。 而在那之前,我一直是使用openwrtBB或者CC之类的,比较繁琐,尤其是dns分流等等,你懂的。在2015年末的时候,偶然发现上面这篇H大的关于编译Padavan的文章,有如进入了一个华美的宫殿,所需要的功能完全OK,简单填写参数就能顺畅使用。甘之如饴。

【鸣谢1】@hackpascal (https://www.right.com.cn/forum/space-uid-200302.html)
Hackpascal大神是一只老鸟,1990's的小伙。在2015年春天的时候搞出来Breed这么一个完全不同于uBoot的替代品!(嗯,Breed,多么的温香暖玉满怀抱的感觉 o(∩_∩)o 哈哈)想当年,我还在用TTL线在uboot启动的时候通过uBoot的tftp或Zmodem协议刷写路由器的固件。那是一种非常辛苦的操作,需要在启动的某个特定瞬间阻止uboot加载OS,然后选择更新操作,我常在深夜时分神情恍惚之下,选错1、2、3、4、、、导致死掉了好几个路由器。所以,当你发现一款简单操作就能更新固件、而且永远不死不需要拆机接TTL或者编程器的软件的时候,那种感激之心,简直无以言表。4年过去了,也不知道Hackpascal硕士毕业后去了哪家硬件公司,是否仍旧激情洋溢,还是被柴米油盐奶粉尿布磨灭了情怀。没有人见过他,他网站里,Breed还在更新着(https://breed.hackpascal.net/ ),万千台的路由器已经被刷入Breed启动,江湖上流传着他的传说。。。
===================== 第7节【欢迎转载】 ======================
1、转载或引用请遵循:{【< 本作品使用 CC 知识共享协议,转载或引用请遵守该协议 >】}{署名-非商业性使用-相同方式共享 2.5 中国大陆 (CCBY-NC-SA 2.5 CN)}{ https://creativecommons.org/licenses/by-nc-sa/2.5/cn/}
2、在恩山快速找到我:https://www.right.com.cn/forum/space-uid-11212.html         或者email我:gaze#163.com(#号请自行替换)
3、全文pdf可从该地址获得:                   http://www.zhouhaoli.com/zb_users/upload/2018/11/padvan7620-as-vlan-for-iptv.pdf
------------------------------- 我是分割线,下面就不用看了 -------------------------------(最后,这个图片不知道怎跑这里来滴,而且在编辑状态里赶不走,,,,^_^ )

gaze 发表于 2018-11-29 17:48

晕死,,,,图片怎么缺了好几个!!!

抓狂

kinkit 发表于 2018-11-29 17:53

感谢分享,马克下

巍巍青山 发表于 2018-11-29 18:00

这么复杂?不过楼主辛苦了

gaze 发表于 2018-11-29 18:07

巍巍青山 发表于 2018-11-29 18:00
这么复杂?不过楼主辛苦了

其实AP端和路由器端,每边就是4行指令+页面两个设置的事情,

比用K2p的兄弟们所实施的步骤简单很多。

只是探究问题根源的步骤很复杂而已,

记录下来,有备无患。 ;P

longone 发表于 2018-11-29 18:38

padavan还是复杂了一点,openwrt设置更简单。

xiaoling2han 发表于 2018-11-29 19:04

支持一下!

lucktu 发表于 2018-11-29 19:14

感谢楼主提供方法!辛苦了!!

我现在基本上定下来了,就用 padavan(我用的纯净版),所以这篇文章很有用!

建议楼主把首贴精简一下,开头放直接的过程方法,然后分界线后面放废话;P,也可以做纪念:lol,也可以做参考:victory:。

a4789275 发表于 2018-11-29 19:36

本帖最后由 a4789275 于 2018-11-29 19:40 编辑

最开始我也是用的路由器,但是跑不满带宽。别说内网了...宽带200M都跑不满(现在都是50M起步了,50M的老客户免费升100M)
后来换了千兆VLAN交换机,螃蟹8370M的,某宝110,稳定使用近两年了。扔那就没管过

footlog 发表于 2018-11-29 19:48

:lol
互相帮助,没有啥
我现在用双线接路由器,没兄弟这么复杂
兄弟打破砂锅纹到底的精神让人佩服:victory:

yylwhy 发表于 2018-11-29 21:06

已经收藏。以后备用

helloxv 发表于 2018-11-29 21:33

辛苦呀,我的好好学一下。多谢!但还想问iptv实现记能看iptv内容,也可以破解后看app直播等。看网络的内容是能去广告吗(AD已经开启)

gaze 发表于 2018-11-29 21:51

longone 发表于 2018-11-29 18:38
padavan还是复杂了一点,openwrt设置更简单。

确实如此,
Openwrt系列设置VLAN会非常简单明了。
不过看在Padavan系统在特殊领域的用处非常合意,还是不愿意放弃,
所以才有了这篇文章。 :)

gaze 发表于 2018-11-29 21:51

lucktu 发表于 2018-11-29 19:14
感谢楼主提供方法!辛苦了!!

我现在基本上定下来了,就用 padavan(我用的纯净版),所以这篇文章很有 ...

谢谢提醒,

已经更改。

gaze 发表于 2018-11-29 21:53

footlog 发表于 2018-11-29 19:48
互相帮助,没有啥
我现在用双线接路由器,没兄弟这么复杂
兄弟打破砂锅纹到底的精神让人佩服:victo ...

哈哈哈,大神驾到了。

多谢你找到的pdf 以及准确指出其中与我的困惑相关的应学习的章节。

非常感谢。
页: [1] 2 3 4 5 6 7 8 9
查看完整版本: 【用廉价的7620路由器做VLAN交换机,单线复用看IPTV】