请教个 Udp 组播问题

2021-09-02 00:09:37 +08:00
 silencil
我本机网线直连服务器可以组播接收到数据,通过交换机连接接收不到。该交换机其他服务器可通过它组播下发,所以交换机组播的配置应该是没有问题,请问还会有什么情况导致通过交换机组播下发不成功呢?现场网络较复杂,代码公司测试没有问题,在这个网络之前也没有问题,最近开始一直不行
1974 次点击
所在节点    宽带症候群
13 条回复
raysonx
2021-09-02 00:21:08 +08:00
确定你本机和服务器在同一个 VLAN 内吗?如果不是就要涉及到组播路由了,那就是另一个故事了。
通常来讲,如果交换机开启了 multicast snooping
raysonx
2021-09-02 00:25:48 +08:00
交换机会识别 IGMP/MLD 包,并且会启用 IGMP/MLD Querier 来查询哪些端口属于某个组播地址。不排除有些低端交换机对 multicast 的实现有 bug 。
abcysn
2021-09-02 00:40:31 +08:00
是不是 ttl 设置太小了?
bin456789
2021-09-02 03:05:13 +08:00
我买过一个家用交换机,光猫 IPTV 口接交换机 1 口才能正常看 IPTV,其他口不行,就是这么神奇
semglassiebaba
2021-09-02 08:48:37 +08:00
一般不带 vlan 的交换机会直接把组播变成广播的吧,带 vlan 的要自己设置
silencil
2021-09-02 09:03:55 +08:00
@raysonx h3c 的交换机应该不会有 bug,测试的时候和服务器是同一个 vlan 下的,也不行,今天去别的机房找个交换机测试下
@semglassiebaba vlan 由网络专员设置过了
silencil
2021-09-02 12:10:55 +08:00
@abcysn 找到问题了,确实是 TTL 太小了,为 1
raysonx
2021-09-02 12:43:48 +08:00
link-local 范围内的组播流量本来就是 TTL 1,而且交换机在转发时也不会减小 TTL 值,明显不是这个原因。
silencil
2021-09-02 14:01:53 +08:00
@raysonx 确实,增大了 TTL 后同一个网段下的服务器能收到了,不同网段依然收不到。请问在您看来还能有什么情况吗?
raysonx
2021-09-02 14:46:51 +08:00
都说了同网段和 TTL 为多少没有关系,因为交换机不会减小 TTL 值,只有通过路由器时 TTL 才会减一。

不知道你用的组播地址是什么。要让 multicast 跨网段首先组播地址不能用 link-local 网段( 224.0.0.0/24 或者 ffx1::/16,ffx2::/16,ffx3::/16 ),然后需要配置路由器来支持组播路由。如果路由器是 Linux 软路由的话可以用 mrouted 或者 smcroute 来实现,硬件路由器的话要去看厂商说明书。
silencil
2021-09-02 15:13:05 +08:00
@raysonx 嗯,组播地址是 238.1.1.1,应该不在这个网段。网络专员告诉我配置过路由了,有一个别的服务可以推流成功。
raysonx
2021-09-02 17:22:49 +08:00
238.1.1.1 是保留地址,不知道兼容性如何,另一个服务也是用这个组播段吗?

可以用 socat 之类的工具测试一下你的组播地址能否正确路由,如果能说明是你应用程序的问题,如果不能说明是网络配置或者防火墙的问题。
silencil
2021-09-02 19:27:17 +08:00
@raysonx 好的 谢谢,才知道这个软件,待会测试下。另一个组播地址是 231.7.200.51 ,现在的情况是组播不下去的服务在 10.73.112 网段下都能收到,10.89.160 这些网段就收不到了

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

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

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

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

© 2021 V2EX