加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

在具有多个接口的服务器上接收多播(linux)

发布时间:2020-12-14 02:21:45 所属栏目:Linux 来源:网络整理
导读:要在我的非默认NIC(dvb)上接收多播,请执行以下操作: 打开一个套接字(AF_INET,SOCK_DGRAM) 在dvb接口上使用IP_ADD_MEMBERSHIP加入多播地址 绑定多播地址(请注意,常见错误是绑定“0.0.0.0”,然后在该套接字上接收甚至您不感兴趣的多播)和端口 此时,接收所需多
要在我的非默认NIC(dvb)上接收多播,请执行以下操作:

>打开一个套接字(AF_INET,SOCK_DGRAM)
>在dvb接口上使用IP_ADD_MEMBERSHIP加入多播地址
>绑定多播地址(请注意,常见错误是绑定“0.0.0.0”,然后在该套接字上接收甚至您不感兴趣的多播)和端口

此时,接收所需多播数据包的唯一方法是在路由表中添加一条规则,通过dvb到达发送者所在的网络(另一个网络),就像dvb需要回复多播发送者一样;让我们说一种源发送器组播模式.谁知道发生了什么事?这个问题让我烦恼,因为原则上我不知道发送者的ip.

解决方法

您似乎被rp_filter反向路径过滤蜇了.如果数据包到达没有源地址路由的接口,则会丢弃数据包.

您可以使用sysctl / proc / sys / net / ipv4 / conf /< if> / rp_filter在每个接口的基础上禁用它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读