在日常工作中,由于经常要在Linux下收取组播数据,特将一些异常情况记下:
1.没有添加组播路由
Linux下没有添加对应组播路由的情况时,是无法用程序收到组播数据的,这是出现问题时要检查的第一条。
2.组播路由添加错误
添加组播路由的指令为:route add -net 239.10.0.0 netmask 255.255.0.0 dev eth0
这条指令可能会产生两种错误,一是组播地址和其掩码地址不匹配;二是dev指定的网口并不是用来收取组播信号的网口,也就是说其网口并没有连接在组播信号的交换机上。
今天遇到一个诡异的情况,centos下网卡、路由等各种设置都是正确的,但是用tcpdump就是收不到组播数据。奇怪的是重启后就可以收到了,1分钟后又收不到了。后来发现是重启后有一块网卡的地址会自动变化成第二块网卡的地址。也就是双网卡的ip地址eth0和eth1的ip地址都变成eth1的ip地址,两个网卡的ip地址变成了同一个,感到很奇怪,下面就分享一下我的解决办法。
1、重启网络服务后发现多了NetworkManage这个东东,原来是NetworkManage惹的麻烦
2、直接关闭NetworkManage服务,这个服务其实开不开启都无所谓,有的时候就会给使用这带来麻烦,于是乎关闭此服务,具体操作如下
a、在终端输入setup出现以下界面后选择系统服务并回车
b、取消NetworkManage服务,去掉括号中的*号,此服务为系统启动默认加载服务
c、完成后退出,并到终端关闭NetworkManage服务
/etc/init.d/NetworkManage stop
3、重启网络服务,此时ip地址正常使用,显示也正常
/etc/init.d/network restart