在你的系统上执行下面的命令,你觉得会得到什么样的结果
#!/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都有这个问题。