OpenWrt + 网管交换机实现IPTV单线复用
本文最后更新于 416 天前,其中的信息可能已经有所发展或是发生改变。

前言

原本家里面的无线路由器是放在入门处的弱电箱里面的,与卧室之间有了好几堵墙隔着,导致卧室里面的WIFI信号不是很好,所以就想着把无线路由器放在客厅的位置。但是这又带来了一个问题,客厅里面原本是放着IPTV的,并且弱电箱到客厅只有一个网络接口,如何才能保证IPTV能正常使用的情况下把路由器搬到客厅去?

这个问题有两个解决方案,第一是把一根千兆的网线拆成两根百兆的网线,分别连接IPTV和无线路由器;这个方法毫无疑问是最简单的,插上就能用了,但是如果家里面的宽带是超过100M的,那么这样做肯定就有点浪费网费了。那么第二种方法就是通过划分VLAN的方式实现单线复用

VLAN

VLAN全称Virtual Local Area Network(虚拟局域网),关于这个的具体实现原理可以查看这篇文章 VLAN基础知识,这里就按照我的理解简单说一下。

当用户设备发送的报文通过交换机上的设置了VLAN的端口时,这个报文会在开头打上标记,这个标记有很多的信息,但是对于我们来说需要关注的是VID这个标记,因为它指定了这个报文是属于哪个VLAN的,然后我们再把这个有了标记的报文发送给其他的交换机,其他的交换机就能通过VID来指定报文发送的对象。所以我们就可以通过设置不同的VID来隔离出不同的局域网VLAN,在同一条线路上传输多个VLAN的数据。

再简单解释一下后面会出现的几个名词

  • Tagged 已标记:即从该端口流入/传出的数据会被打上相应的VID标记
  • Untagged 未标记:即从该端口流入/传出的数据不会被打上相应的VID标记,或者会被去除标记
  • off 关:即该端口不接受指定VID的数据

需要注意的是,当数据被打上标记后只有特定的设备才能识别这些数据(在这篇文章的范围内是指网管交换机和OpenWrt路由器),我们的电脑手机啥的是不能识别有标记的数据的,所以有标记的数据只能是在路由器和交换机之间传输,而给手机电脑等设备的数据应该是被去除了标记的。

预期目标

因为OpenWrt的可玩性比网管交换机和光猫要高很多,所以我打算把所有设备的流量都汇聚到OpenWrt路由器上,通过路由器来统一管理和分配IP地址等。最终整个网络的拓扑结构如下图

硬件准备

理论上来说只要是支持VLAN的OpenWrt路由器和交换机都可以,这里是我用的设备

  • 红米AC2100(已刷OpenWrt)
  • 水星 SG108 Pro

由于设备的接口数量不同,所以接下来的教程请自行根据实际情况选择网线的接口。

交换机配置

把光猫上的千兆网口插到交换机的LAN1上,光猫的IPTV插到交换机的LAN8上,客厅的网线插到交换机的LAN7上,其他房间的网线则随意插入交换机剩余的接口就行。

然后进入交换机后台,配置VLAN如下图所示

(2023.2.7更新)在下面的图片中我设置的VLAN为1、2、100,请避免使用1、2作为VLAN,因为这可能会导致奇怪的错误。对于不能删除或更改VLAN的Default,只需要将1-7端口全部选择为Untagged端口即可。
VLAN设置
(2023.2.7更新)请将端口7也设置成PVID为2,以减少端口7的失败收包。
PVID设置

我这里划分了三个VLAN,首先是VID 1,它负责把其他房间的网络全部传输给路由器统一管理;然后是VID 2,它负责传输路由器和光猫千兆口之间的数据;最后是VID 100,它负责传输IPTV的数据。

然后关闭IGMP侦听(开启的话会导致IPTV无法观看直播),保存配置。

IGMP侦听

路由器配置

首先把IPTV机顶盒的网线插到路由器的LAN3口,把从弱电箱引过来的网线插到WAN口,如有其他的有线设备的话插到多余的接口即可。

OpenWrt 19及以下

进入后台,依次打开“网络‘,”交换机“,首先”启用VLAN“,然后照着下图的内容进行配置

之后再依次打开”网络“,”接口“,点击”LAN“接口上的”修改“按钮,把其中的”IPv4 地址“修改成与WAN接口的IPv4不在同一个网段的地址。

在接口中,WAN和LAN绑定的物理接口是要和交换机中的VLAN ID对应的,如eth0.1则对应了VID 1。如果你的设备中WAN和LAN绑定的不是eth0.1和eth0.2,那么路由器中相应的交换机配置也要改变。

保存,然后就可以去检查一下网络和IPTV能否正常使用。

OpenWrt 21 及以上

openwrt 21 在vlan设置上与19版本有很大的区别,能操作的颗粒度更小了,但是随之带来的也是更复杂的配置。

依次打开“网络”,“接口”,“设备”,点击“添加设备配置”,并选择如下图所示的配置

(2023.2.7更新)网桥设备只需要选择lan1、lan2、lan3及wan即可,eth0不需要选择;后面的“网桥VLAN过滤”中也不需要考虑eth0。

其中设备名可以随意填写,网桥端口需要选择除了连接IPTV外的所有的lan口,图片中没有出现的参数保持默认。

然后打开网桥VLAN过滤,按下图所示配置。(打*号的是选择了“主 VLAN ID”的)

然后同样的方法创建下面图片所示的接口

然后打开“接口”,将lan接口的设备更改为br-internet.1

同样的方法,将wan和wan6接口的设备更改为br-internet.2。然后创建一个新的接口,设备选择br-iptv.100

保存配置,即可。

总结

这种所有的流量都由OpenWrt管理的方式虽然很方便,但是也会导致路由器和交换机之间数据传输的压力比较大,整个局域网的速度都会受到它们两个的影响,希望之后能有更好的解决方案吧。

这件事情是很早之前就想完成的,但是之前的尝试都失败了,前几天看到了一篇博客才又让我去试试看,虽然过程还是不太平稳,但是结果还是挺让人满意的。

参考文档

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇