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

家用路由 SSDP 发现的问题

  •  
  •   sorasyl · 2023-12-27 09:41:18 +08:00 · 1504 次点击
    这是一个创建于 367 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现有华硕路由 1 台 设备 3 台

    • 1.arch_linux 服务器
    • 2.三星手机
    • 3.苹果手机

    问题出在 ios 设备的 ssdp 的 discover 包能在 linux 上收到,但是三星的 ssdp 的 discover 包在 linux 上收不到,但是能在路由器上用 tcpdump 收到

    discover 投递的地址都是 udp 的 239.255.255.250:1900

    第 1 条附言  ·  2023-12-27 11:31:19 +08:00
    现有的广播组信息如下:
    19: br0
    link 01:00:5e:00:00:01
    link 01:00:5e:7f:ff:fa
    link 01:00:5e:00:00:fb
    link 33:33:00:00:00:02 users 2
    link 33:33:00:00:00:01
    link 33:33:ff:63:98:e0
    link 33:33:ff:00:00:00
    link 01:00:5e:00:00:16
    link 33:33:00:00:00:16
    link 33:33:00:01:00:02
    link 33:33:00:01:00:03
    inet 224.0.0.22
    inet 224.0.0.251 users 2
    inet 239.255.255.250 users 3
    inet 224.0.0.1 users 2
    inet6 ff05::1:3
    inet6 ff02::1:2
    inet6 ff02::16
    inet6 ff02::1:ff00:0 users 2
    inet6 ff02::1:ff63:98e0 users 2
    inet6 ff05::2
    inet6 ff01::2
    inet6 ff02::2 users 3
    inet6 ff02::1
    inet6 ff01::1
    7 条回复    2024-08-08 22:04:54 +08:00
    tool2d
        1
    tool2d  
       2023-12-27 10:48:45 +08:00
    我以前遇到过,是内核编译的问题,igmp 缺了一点东西

    https://web.archive.org/web/20200202071849/http://www.udpcast.linux.lu/pipermail/udpcast/2012-December/001200.html

    后来是手动拼接了 igmp v2 一个 ip 包,强制发送 RawSocket 解决的。
    pagxir
        2
    pagxir  
       2023-12-27 11:05:26 +08:00
    需要 igmp snooping 来完成组播报文的 L2 端口转发。估计 ios 设备发送的是 L2 的广播包,且跟 iOS 跟 linux 在同一个广播域。
    sorasyl
        3
    sorasyl  
    OP
       2023-12-27 11:50:46 +08:00
    @tool2d 大佬,我监听了路由器上 br0 的 igmp 报文,确实没有收到安卓设备的 igmp v3 的 report ,会是这个原因导致的吗
    sorasyl
        4
    sorasyl  
    OP
       2023-12-27 11:53:05 +08:00
    @pagxir 大佬,我监听了路由器上 br0 的 igmp 报文,确实没有收到安卓设备的 igmp v3 的 report ,会是这个原因导致的吗
    pagxir
        5
    pagxir  
       2023-12-27 12:26:10 +08:00
    正常的情况下,组播发送方加不加入组也不影响发送组播包。但是接收方需要加入组才能接收到组播报文。L3 的组播报文需要正确的映射到 L2 的组播组去。你可以 tcpdump 查查 L2 组播组跟 L3 组播组是否一致。路由器一般会运行 igmpd 跟 mld 来协助处理 igmp/igmpv6 协议,通过它们建立正确的 L2 转发表,如果没有 igmpd/mld 的话,要么全部禁用组播,要么就直接 flooding 。
    yyysuo
        6
    yyysuo  
       145 天前
    大佬解决了吗,我也遇到了奇怪的问题,用 igmpproxy ,连接同一 wifi 的 4 台设备,一台联通小新 PC 和 ip14p 播放 rtp 正常,一台 dell pc 和火棒用 tivimate 播放不了,其中 dell pc 最奇怪,只有播放其中 1 个台,都是用的同一份 m3u ,全是相同的 rtp 。
    sorasyl
        7
    sorasyl  
    OP
       141 天前
    @yyysuo 很遗憾,当时都已经放弃了,我都忘了为啥要折腾 ssdp 了#笑哭
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2546 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 11:17 · PVG 19:17 · LAX 03:17 · JFK 06:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.