多网卡系统中Ubuntu10.10不能正确响应路由器的IGMP Query的问题报告
发表于 : 2011-03-03 17:28
我们公司在做开发的时候使用了Ubuntu,但不幸地发现10.10在多播方面存在问题。我们在运行一个程序,要不停的接收224.2.2.2/1000,程序写的没有问题。
下面是实际运行结果:
(1) 单网卡
在单网卡的时候,多播表现正常,能够不停的接收。
用tcpdump查看IGMP的情况:
$ tcpdump -v -i eth0 igmp
能够看到每隔1分钟有一次来自路由器的IGMP v3的Query,然后主机响应一条Report。
(2) 多网卡
多网卡的时候,接收多播的程序运行5分钟之后,就不接收不到组播了。
用tcpdump定位结果显示,主机无视IGMP Query,不作响应。进一步定位的结果显示,另一个网卡eth1正常响应。
在有3个网卡的情形,也是只有一个网卡eth1响应,其他两块网卡不响应Report。
由于该网卡长期不响应IGMP Query,5分钟后该网卡上注册的多播被踢除,不能继续接收。
--------------------------------
按我的理解,IGMP属于系统内核服务,跟PING, ICMP, ARP一个性质,应该是不需要设置的吧。上述表现确实说明了这个系统存在bug。
另外,在Fedora 8上运行时没有问题。
下面是实际运行结果:
(1) 单网卡
在单网卡的时候,多播表现正常,能够不停的接收。
用tcpdump查看IGMP的情况:
$ tcpdump -v -i eth0 igmp
能够看到每隔1分钟有一次来自路由器的IGMP v3的Query,然后主机响应一条Report。
(2) 多网卡
多网卡的时候,接收多播的程序运行5分钟之后,就不接收不到组播了。
用tcpdump定位结果显示,主机无视IGMP Query,不作响应。进一步定位的结果显示,另一个网卡eth1正常响应。
在有3个网卡的情形,也是只有一个网卡eth1响应,其他两块网卡不响应Report。
由于该网卡长期不响应IGMP Query,5分钟后该网卡上注册的多播被踢除,不能继续接收。
--------------------------------
按我的理解,IGMP属于系统内核服务,跟PING, ICMP, ARP一个性质,应该是不需要设置的吧。上述表现确实说明了这个系统存在bug。
另外,在Fedora 8上运行时没有问题。