X6000 ifdown与ifup无法复位网卡案例

发布时间:  2012-12-28 浏览次数:  670 下载次数:  0
问题描述
某局点维护人员通过执行命令“(bash -x /sbin/ifdown eth0 ;echo ---------; bash -x /sbin/ifup eth0) >>/tmp/log.txt 2>&1”来复位网卡eth0,并跟踪网卡启动过程,但是发现命令执行后使用ifconfig -a命令查看网卡eth0状态处于down的状态,如图1-1所示。
图1-1 eth0 down
告警信息
处理过程
网卡排查步骤如下:
1. 手动执行“ifconfig eth0 up”可以将eth0 UP起来,可以排除网卡无法UP的问题。
2. 再次执行“(bash -x /sbin/ifdown eth0 ;echo ---------; bash -x /sbin/ifup eth0) >>/tmp/log.txt 2>&1”,发现问题复现。
3. 从步骤2产生的log.txt分析,发现如下提示,即ifdown、ifup对网卡eth0进行操作时,会去读取网卡eth0的配置文件ifcfg-eth0,并根据配置文件对网卡状态进行设置。
图1-2 ifdown与ifup组合使用复位网卡

4. 而现场操作系统中未对eth0进行单独配置ifcfg-eth0,所以无法通过ifup激活网卡eth0。
5. 通过查看messages日志,也报同样的报错“No configuration found for eth0”。
图1-3 messages日志片段

----结束
根因
当网卡配置文件ifcfg-eth N(N表示网卡编号,如0,1,2…)不存在,无法通过ifup ethN命令激活网卡。通过执行ifconfig eth0 up可以激活网卡eth0,因为ifconfig命令对网卡操作时不会检查网卡配置文件,直接通过驱动对网卡硬件进行操作。
建议与总结
结论
当网卡配置文件ifcfg-eth0不存在,无法通过ifup ethN(N表示网卡编号,如0,1,2…)命令激活网卡。
解决方案
有以下两种方式恢复,建议使用第一种方法:
第一种方法:重启网络服务(如service network restart)
第二种方法:使用ifconfig ethN up恢复(N表示网卡编号,如0,1,2…)
经验总结、预防措施和规范建议
ifdown和ifup是shell脚本,对网卡操作时会读取网卡配置文件ifcfg-eth N(N表示网卡编号,如0,1,2…)。ifconfig是二进制命令,对网卡操作时不会读取网卡配置文件,直接对硬件网卡进行操作。因此通过ifconfig eth0 up可以在不存在网卡配置文件ifcfg-eth0的情况下将eth0网口重新激活。
建议复位网卡的时候使用ifconfig ethN down/up,而不使用ifdown/ifup ethN。

END