Linux|系统管理|WEB开发

关注Linux,系统管理,WEB开发以及开源世界

网卡驱动的bug?

| Comments

在你的系统上执行下面的命令,你觉得会得到什么样的结果

#!/bin/bash -x 
/sbin/ifconfig eth0:1 1.1.1.1 
/sbin/ifconfig eth0:21.1.1.2 
/sbin/ifconfig eth0:3 1.1.1.3 
/sbin/ifconfig eth0:4 1.1.1.4
/sbin/ifconfig eth0:5 1.1.1.5 
/sbin/ifconfig eth0:6 1.1.1.6
/sbin/ifconfig eth0:7 1.1.1.7 
/sbin/ifconfig eth0:8 1.1.1.8
/sbin/ifconfig eth0:9 1.1.1.9 
/sbin/ifconfig eth0:10 1.1.1.10
#Deleting: 
/sbin/ifconfig eth0:5 down 
/sbin/ifconfig eth0:4 down
/sbin/ifconfig eth0:7 down 
/sbin/ifconfig eth0:1 down   
#Adding again:
#/sbin/ifconfig eth0:5 1.1.1.5   
#/sbin/ifconfig eth0:4 1.1.1.4
#/sbin/ifconfig eth0:7 1.1.1.7   
#/sbin/ifconfig eth0:1 1.1.1.1
#Deleting: 
/sbin/ifconfig eth0:10 down  

大家可能会说除了eth0:10不再以外,eth0:1到eth0:9都应该还在,但是事实上却并不是如此。
其实你在执行这个脚本的时候,就应该会报下面的错误
SIOCSIFFLAGS: 无法指定被请求的地址
再做一些测试,你就会得到这样的一个结果,那就是只要你down掉第一个别名,那么其他的别名都会down掉,否则一切都正常, 有人说是net/ipv4/devinet.c文件中处理IFA_F_SECONDARY有一些错误,深入到内核源代码就不太理解了。
不知道大家遇到过这样的情况没有。
从内核2.0到2.6都有这个问题。

Comments