未分類 2 9 月 2021 请教个 Udp 组播问题 请教个 Udp 组播问题 資深大佬 : silencil 8 我本机网线直连服务器可以组播接收到数据,通过交换机连接接收不到。该交换机其他服务器可通过它组播下发,所以交换机组播的配置应该是没有问题,请问还会有什么情况导致通过交换机组播下发不成功呢?现场网络较复杂,代码公司测试没有问题,在这个网络之前也没有问题,最近开始一直不行 大佬有話說 (13) 資深大佬 : raysonx 确定你本机和服务器在同一个 VLAN 内吗?如果不是就要涉及到组播路由了,那就是另一个故事了。通常来讲,如果交换机开启了 multicast snooping 資深大佬 : raysonx 交换机会识别 IGMP/MLD 包,并且会启用 IGMP/MLD Querier 来查询哪些端口属于某个组播地址。不排除有些低端交换机对 multicast 的实现有 bug 。 資深大佬 : abcysn 是不是 ttl 设置太小了? 資深大佬 : bin456789 我买过一个家用交换机,光猫 IPTV 口接交换机 1 口才能正常看 IPTV,其他口不行,就是这么神奇 資深大佬 : semglassiebaba 一般不带 vlan 的交换机会直接把组播变成广播的吧,带 vlan 的要自己设置 主 資深大佬 : silencil @raysonx h3c 的交换机应该不会有 bug,测试的时候和服务器是同一个 vlan 下的,也不行,今天去别的机房找个交换机测试下@semglassiebaba vlan 由网络专员设置过了 主 資深大佬 : silencil @abcysn 找到问题了,确实是 TTL 太小了,为 1 資深大佬 : raysonx link-local 范围内的组播流量本来就是 TTL 1,而且交换机在转发时也不会减小 TTL 值,明显不是这个原因。 主 資深大佬 : silencil @raysonx 确实,增大了 TTL 后同一个网段下的服务器能收到了,不同网段依然收不到。请问在您看来还能有什么情况吗? 資深大佬 : raysonx 都说了同网段和 TTL 为多少没有关系,因为交换机不会减小 TTL 值,只有通过路由器时 TTL 才会减一。不知道你用的组播地址是什么。要让 multicast 跨网段首先组播地址不能用 link-local 网段( 224.0.0.0/24 或者 ffx1::/16,ffx2::/16,ffx3::/16 ),然后需要配置路由器来支持组播路由。如果路由器是 Linux 软路由的话可以用 mrouted 或者 smcroute 来实现,硬件路由器的话要去看厂商说明书。 主 資深大佬 : silencil @raysonx 嗯,组播地址是 238.1.1.1,应该不在这个网段。网络专员告诉我配置过路由了,有一个别的服务可以推流成功。 資深大佬 : raysonx 238.1.1.1 是保留地址,不知道兼容性如何,另一个服务也是用这个组播段吗?可以用 socat 之类的工具测试一下你的组播地址能否正确路由,如果能说明是你应用程序的问题,如果不能说明是网络配置或者防火墙的问题。 主 資深大佬 : silencil @raysonx 好的 谢谢,才知道这个软件,待会测试下。另一个组播地址是 231.7.200.51 ,现在的情况是组播不下去的服务在 10.73.112 网段下都能收到,10.89.160 这些网段就收不到了