V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
eccentric579
V2EX  ›  宽带症候群

光猫是如何处理 vlan 数据的

  •  
  •   eccentric579 · 32 天前 · 1593 次点击
    这是一个创建于 32 天前的主题,其中的信息可能已经有所发展或是发生改变。
    • 以成都电信为例,iptv vlan 是 43 ,internet 是 1206 , 组播 vlan 是 3990.

    • itv 口肯定是 vlan untagged 的,因为机顶盒无法处理 vlan 数据

    • 不考虑 igmpproxy 时,itv 口作为一个 vlan access 口,同时有 vlan 43 untagged, vlan 3990 untagged ?

    • 考虑 igmpproxy 时,igmpproxy 的下游是 itv 口,上游是 vlan 43 还是 vlan 3990 ? igmpproxy 能同时监听两个上游且能一个用于入组,一个用于接收?

    • 我做了如下一个单线复用,在 wan.43 抓包得到了 igmp join/leave, 在 wan 抓到了 vlan untagged 的组播 udp . 我认为这导致了 udpxy 在 openwrt 上不能正常工作。 2.png

    17 条回复    2025-01-16 23:07:45 +08:00
    2067
        1
    2067  
       32 天前 via Android
    直觉认为,untagged 只表示从这个端口转发出的时候去标签,并不表示从这个端口入的时候认为属于这个 vlan ,对应入端口的配置叫做 pvid 。虽然这两个配置一般是一样的,理论上也只推荐配置一个 untagged vlan ,但是实际上配置多个 untaggedvlan 加一个 pvid 也是“可能可行”的。

    至于 igmp 如何控制组播,这个不熟,问了一下 ai ,回答让我不十分满意,就不乱说了,蹲坑学习
    anncor
        2
    anncor  
       32 天前 via Android
    推荐先抓光猫到机顶盒的包看一下整体的 igmp 过程是不是最简单的 igmpv2 ,是的话只需要光猫桥接组播 vlan 出来,在路由器上建一个对应的 wan 口,随便配置个地址,再设置内核 igmp 版本与运营商一致就可以在路由器上转单播了,不是的话就会很复杂
    eccentric579
        3
    eccentric579  
    OP
       32 天前 via Android
    @2067 受教了,我想这应该就解释通了为什么 op 上的 wan 即使没有指定 vlan 1206 也能成功 pppoe 拨号
    msmmbl
        4
    msmmbl  
       32 天前
    @eccentric579 我这 iptv 是可以 adb 的,进去后运行 ifconfig 可以发现有 eth0 和 eth0.85 ,所以感觉和你那的光猫还不一样。我这里的机顶盒是可以处理 vlan 数据的。
    crazyzzm
        5
    crazyzzm  
       32 天前
    最近也在研究单线复用,理解还比较粗浅,op 描述的没完全懂。猫 itv 口绑定了 lan 口,流量是
    crazyzzm
        6
    crazyzzm  
       32 天前
    最近也在研究单线复用,理解还比较粗浅,op 描述的没看懂。
    说下我粗浅的理解:猫 itv 口绑定了 lan 口,流量是 untagged ,但猫本质是一个交换机,直接根据 lan 口区分流量,最终到光纤那边出口是 tagged 的。单线复用要解决的问题是如何在 openwrt 那将 itv 和其他流量区分开,网上很多解决方法是让猫建立用户侧的 vlan 规则,openwrt 到猫的流量 tagged ,猫区分后再重新封装出口。
    不确定对 op 是否有用,献丑了
    eccentric579
        7
    eccentric579  
    OP
       31 天前
    @msmmbl 这样啊,这倒是挺出乎我的意料的。我这边抓包机顶盒和光猫之间是不带 tag 的。
    anncor
        8
    anncor  
       31 天前 via Android
    光猫不是纯二层设备,所以可能的情况会有很多,从描述看,你的光猫使用的方案可能是对下行端口配置组播 VLAN ,端口模式 hybird ,default vlan(pvid) 1206 ,untag vlan 43 ,指定组播 VLAN 43 。

    这种配置的行为是:下行口收到 igmp 报文会打 VLAN tag 43 往上行口发送,然后上行口收到的组播报文在下行口处去掉 VLAN tag ,直接发送到设备。

    可以试下盒子能不能插光猫任意接口,可以的话尝试路由器上不建子接口,直接使用 wan 作为上行口。

    我用的猫棒,基本没有管理功能,所以逻辑很简单,猫棒只负责把 VLAN 原样发出来,然后在路由器上配置 wan 子接口就可以正常用了,流量不会有异常;然后又为了正常用原来的机顶盒,在交换机上配了组播 VLAN ,路由器上加了 itv 认证 wan 和认证网段的路由,盒子改 DHCP 接入才能正常用。
    blackeeper
        9
    blackeeper  
       31 天前
    你用 OP 拨号,modem 肯定是设置桥接模式了,光猫如何处理 vlan 的数据已经不重要了,都会转发的
    也就是说你的 op 配置了 wan.43 那么这个接口就能收到 vlan43 的流量
    op 配置了 wan.3390,那么这个接口就能收到 vlan3390 的流量
    op 上啥 vlan 也没配置,就是图上 wan 口,那么就是 vlan untagged 的流量
    eccentric579
        10
    eccentric579  
    OP
       31 天前
    @blackeeper op 上我是 wan 和 wan.43 同时存在的。一个拨宽带,一个拨 iptv. 相当于光猫把组播 untag 了发给了宽带接口 wan. udpxy 监守在 wan.43 iptv 口,收不到这部分数据的。
    eccentric579
        11
    eccentric579  
    OP
       31 天前
    @anncor 我之前看到一个帖子,说抓了 pon 的包,说 vlan 43 负责上行的 IGMP 入组,dhcp, 下行的点播,vlan 3990 负责下行的组播。vlan3990 是纯下行。然后你说的这个子接口是什么意思,直接在 wan 上做 iptv dhcp 么? wan 上能同时跑 pppoe internet 和 iptv dhcp 么?
    blackeeper
        12
    blackeeper  
       31 天前
    @eccentric579 #10 你要单线服用,每个功能应该弄一个子接口 wan.X,你不能直接用 wan 这个物理接口的
    blackeeper
        13
    blackeeper  
       31 天前
    @eccentric579 #10 wan 是你的物理线路,wan.x 和 wan.y 就是你的虚拟线路,wan 口你可以抓包,但是不能拨号,拨号就独占这个线路了,其他的虚拟也就出问题了。
    bronco
        14
    bronco  
       31 天前 via iPhone
    上海电信,我的体会是,光猫将组播从 vlan51 转发给 vlan85 ( B 平面),让盒子可以直播点播。同理,我在 ROS 上起个 igmpproxy ,就可以让盒子随便接入并正常工作(配合 DHCP Options )。udpxy 干的是组播转单播,跨 vlan 转发组播是光猫和 igmpproxy 干的事。
    eccentric579
        15
    eccentric579  
    OP
       31 天前
    @bronco 那 igmpproxy 的配置怎么写?
    bronco
        16
    bronco  
       31 天前 via iPhone
    @eccentric579 啊不就几个 interface 加进去指定个 upstream 就好了?我自己是加了 vlan85 和 bridge 作为 downstream ,这样 85 给盒子,自己的 updxy 跑在 bridge 里。
    anncor
        17
    anncor  
       31 天前 via Android
    @eccentric579 有些光猫的配置可以任意口接入,这种可以尝试直接从 wan 口发 igmp 报文,组播 VLAN 、IPTV VLAN 的处理光猫全包了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   6176 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 02:06 · PVG 10:06 · LAX 18:06 · JFK 21:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.