linux系统强制更改组播igmp报文版本

最近遇到一个组播的问题,底层查看IGMP report 报文已经送出去了,但是没有组播流下来,抓包发现我们wan口送出去的report包都是v2的版本,怀疑是olt不支持v2的report包,所以导致report包被drop掉了。

于是查code,发现我们code中igmpproxy的封装的report包就是v3的,但抓到wan送出的包是v2的。

于是就怀疑这个v3的report包被协议栈给强制转换成v2的包送出去。网上找到强制改版本的命令,就用下面这些去查看当前igmp的version。

# cat /proc/sys/net/ipv4/conf/all/force_igmp_version
0
# cat /proc/sys/net/ipv4/conf/default/force_igmp_version
2
# cat /proc/sys/net/ipv4/conf/ppp1/force_igmp_version 
2

注意第3条命令中的ppp1需要根据自己环境中设备名进行修改。在网上还看到有第4条命令,我的环境中没有找到rausb0相应的接口。

cat /proc/sys/net/ipv4/conf/rausb0/force_igmp_version

于是将ppp1下的force_igmp_version改为3,就OK了。

# echo 3 > /proc/sys/net/ipv4/conf/ppp1/force_igmp_version 
# sync

你可能感兴趣的:(网络通信)