IGMP版本协商-VLC播放器和路由器
- 测试环境
- 测试目的
- 测试配置及总结
测试环境
拓扑环境:PC(VLC播放器)+路由器+组播源服务器
测试目的
PC(VLC播放器)播放IGMPv2和IGMPv3的report报文,从路由器的wan出去的report报文都必须强制转换成report v2报文,否则report v3报文会被组播源服务器丢弃,导致组播流不通,VLC无法正常播放。
测试配置及总结
不同系统有不同的处理步骤,下面介绍三种系统
7系统
有IGMP版本自适应功能,即PC会根据路由器的版本自动协商版本,如果路由器为IGMPv2版本,则PC会在协商之后发出IGMPv2报文,没协商(通过识别路由器的查询报文,VLC会自适应)版本之前发出IGMPv3报文,符合以上的测试目的,重新协商版本可以通过禁用再次启用网卡来操作,PC使用什么版本的IGMP报文,由路由器发送的查询报文(Query报文)决定;而路由器是否发送Query报文,由 IGMP SNOPING 是否开启来决定,如果把SNOPING关闭了,路由器就没有办法发送Query报文了,这样在PC与路由器使用不同的IGMP协议版本时,就会无法兼容路由器的IGMP版本了,这样就直接造成相关的点播业务不正常了,如果需要强制PC发出IGMPv2 report,可以修改注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters,在 编辑 菜单上指向 新建,然后单击 DWORD 值,键入 IGMPVersion,然后按 ENTER 键,在 编辑 菜单上单击 修改,键入 3,然后单击 确定,重启PC即可。
xp系统
没有IGMP版本自适应功能,即PC不会根据路由器的版本自动协商版本,新的VLC版本默认会发出IGMPv3 report报文,需要发出IGMPv2 report报文,需要修改注册表
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters,在 编辑 菜单上指向 新建,然后单击 DWORD 值,键入 IGMPVersion,然后按 ENTER 键,在 编辑 菜单上单击 修改,键入 3,然后单击 确定,重启PC即可。
系统
通过以下命令来查看IGMP版本
cat /proc/sys/net/ipv4/conf/all/force_igmp_version
cat /proc/sys/net/ipv4/conf/default/force_igmp_version
cat /proc/sys/net/ipv4/conf/eth0/force_igmp_version
通过以下命令来设置IGMP版本
echo 2 > /proc/sys/net/ipv4/conf/all/force_igmp_version
echo 2 > /proc/sys/net/ipv4/conf/default/force_igmp_version
echo 2 > /proc/sys/net/ipv4/conf/eth0/force_igmp_version
0代表自动协商,2代表强制为IGMPv2,3代表强制为IGMPv3
如果配置还没有生效,需要我们手动执行sync命令同步。
温馨提示:
以上文章描述如有不清晰之处,欢迎在评论区评论,如有时间,会第一时间回复,谢谢!