ImmortalWrt 路由器如何配置单线复用?

79 天前
harrisonwang  harrisonwang

电信光猫路由模式,折腾了几天了,还是没搞定,华为 AX6 简单设置下就可以了,但是 ImmortalWrt 死活不行。想请教下大佬们,是我 VLAN1 的设置有问题吗? ImmortalWrt 完整的 IPTV 和上网流量 VLAN 分流拓扑图如下: ImmortalWrt

一、华为 AX6 路由器配置

目前家里使用的是华为 AX6 路由器,IPTV 流量和普通上网流量共用一条物理线路,在路由器上配置了 VLAN 45 ,使用桥接模式,绑定在 LAN4 口,配置如下图,可以正常观看 IPTV 和上网。 AX6

二、ImmortalWrt 路由器( glinet mt6000 )配置

现在想替换为 ImmortalWrt 路由器,ImmortalWrt 版本为 23.05.4 ,也实现 IPTV 流量和普通上网流量共用一条物理线路。路由器默认设置是可以正常上网的,但是 IPTV 无法正常观看。

  1. 从 br-lan 中“移除”lan4:取消勾选 lan4 ,保留 lan1/lan2/lan3/lan5 等做普通内网。
  2. 新建一个专门给 IPTV 的桥 br-iptv:端口(ports) 里先添加 eth1 和 lan4 ,启用 VLAN 过滤。
  3. 在 br-iptv 上配置 VLAN 45 过滤:VLAN ID = 45eth1 = taggedlan4 = untagged
  4. 给 IPTV VLAN 45 建一个网络接口:名称 IPTV ,协议选择不配置协议,物理设备选择 br-iptv.45

上面配置好后,IPTV 能用,但上不了网。

  1. 从 br-lan 中添加 eth1:勾选 eth1 。
  2. br-lan 启用 VLAN 过滤,配置 VLAN 1:eth1 = untaggedlan1/2/3/5 = untagged

VLAN 1 配置后,路由器始终工作不正常。

1506 次点击
所在节点   OpenWrt  OpenWrt
12 条回复
byte10
byte10
79 天前
这个东西说不复杂不复杂,我为了搞懂它,花个把月时间,建议 40-50 远程搞定。
bjzhou1990
79 天前
应该是要建两个 wan, 一个 eth0 ,网关跃点 10 用于普通网络,一个 eth0.45 ,网关跃点 20 用于 IPTV ,然后把你的 lan4 和 eth0.45 桥接就好了
harrisonwang
79 天前
@byte10 感谢回复,主要是自己想玩一玩学习学习,想掌握具体配置的方法和原理。我实际的需求是通过路由器科学上网,免去电脑和手机等设备使用客户端,目前家里多接这台路由器,也是能实现我需求的。

@bjzhou1990 感谢回复,也就是说需要添加两条路由,一条跃点值为 10 的高优先级路由用于普通上网流量,通过 eth0 接口处理;另一条跃点值为 20 的低优先级路由用于 IPTV 流量,专门处理附加 VLAN 45 标签的数据包。对吧?下班后我再试试。
byte10
79 天前
嗯,这玩意太复杂了,我自己都讲不清楚😂 ,单纯是交换机那还好。一会儿又涉及到 br-lan 真的头大。方式有 2 种,原理都差不多。

可以简单的认为 br-lan 就是交换机,按交换机的方式来。
kita
78 天前
@bjzhou1990 这是正解。不过不需要 nexthop 或者 metric 。
它配置的有点奇怪。共用线路应该是华为 AX6 的一个 lan 口 tag vlan0 和 vlan45 的。
然后把 mt6000 的一个 lan 口脱离 br-lan 这个交换机组,直接和 eth0.45 组成一个交换机。
eccentric579
74 天前
@harrisonwang 成功了么,有后续么
harrisonwang
73 天前
@eccentric579 今天刚好有时间,借助 AI 协助我配置成功了😄,以湖南电信为例分享给大家,IPTV 的 VLAN ID 为 45 ,路由器第一个 WAN 口接入光猫,规划路由器 LAN5 口为 IPTV 机顶盒专用,配置具体步骤如下:

一、分别创建一个 VLAN 和网桥设备,通过 LuCI 图形界面 → 网络 → 接口 → 设备:
1 、创建一个 VLAN 设备,设备类型选择"VLAN (802.1q)",基础设备选择"eth1",VLAN ID 输入 45 ,保存。
2 、创建一个网桥设备,设备类型选择"网桥设备",设备名设置为"br-iptv",网桥端口选择"eth1.45"和"lan5",保存。

二、创一个接口,通过 LuCI 图形界面 → 网络 → 接口:
名称为 iptv ,协议选择"不配置协议",设备选择"br-iptv",保存。

三、通过 LuCI 图形界面 → 系统 → 重启,重启路由器后再次测试网络和 IPTV 正常。
eccentric579
73 天前
@harrisonwang 这个设置在我这里使用的结果是,上网正常,iptv 换台后的一小段时间能正常看,随后就会停下来。应该是 iptv 的单播通了,组播没通。
harrisonwang
73 天前
@eccentric579 我这里只是做了“二层桥”把 VLAN 45 直通给机顶盒,大多数地区可以直接收看组播,不需要路由器额外处理。
在部分运营商网络中,机顶盒要获取 IPTV 直播流需要依赖组播( Multicast ),需要路由器主动跑 IGMP Proxy (或 MCProxy )来“代理/转发”组播流量,否则机顶盒就看不到组播。你需要在 OpenWrt 上安装 igmpproxy 、正确配置上行(接收组播)和下行(机顶盒网段)、并放行防火墙中 IGMP 。
eccentric579
72 天前
@harrisonwang 我没成功,于是我又换了个方式。把 wan.45 做了 dhcp 直接模拟机顶盒。然后用 udpxy 把组播转成单播。现在发现 wan.45 出去的 igmp join 带来的 udp 组播流量却没有 vlan 45 的 tag ,走了 wan 口的 untagge 那一边。这下就还是没成。
harrisonwang
71 天前
@eccentric579 写了篇文章 [https://voxsay.com/posts/openwrt-single-line-multiplexing-vlan-iptv/]( https://voxsay.com/posts/openwrt-single-line-multiplexing-vlan-iptv/) 记录了下配置过程,供你参考下。

组播不通的可能原因如下:

1.你所在地区要求给 IPTV VLAN 带一个优先级( 802.1p (PCP)值,例如 0 或 4 ),如果不加就出现了组播不通的情况。在 LuCI “高级设备选项”或配置文件 /etc/config/network 里的 config device 'eth1.45' 里加一行 option pcp 'x'。

2.你所在地区要求路由器跑 IGMP Proxy (由路由器帮忙转发组播)。
eccentric579
71 天前
@harrisonwang 我抓包的结果显示是这样的
![ 2025-01-14 193358.png]( https://s2.loli.net/2025/01/14/wKcedobnt94gINW.png)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1103082

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX