PREFIX与NETMASK

我在Centos 6中设置了一个虚拟networking接口,将ifcfg-eth0复制到ifcfg-eth0:1并更改相应的variables。 但是连接不稳定。 尽pipe其中一个预先存在的variables是PREFIX=24我必须将NETMASK=255.255.255.0添加到虚拟接口脚本,以使连接稳定。 没有这些variables有相同的效果?

编辑:

这是ifcfg-eth0:1 unstable:

 DEVICE="eth0:1" NM_CONTROLLED="yes" ONBOOT=yes HWADDR=00:26:18:24:4D:xx TYPE=Ethernet BOOTPROTO=none IPADDR=69.64.93.x PREFIX=24 GATEWAY=64.150.183.1 DNS1=69.64.66.11 DNS2=69.64.66.10 DEFROUTE=yes IPV4_FAILURE_FATAL=yes IPV6INIT=no NAME="System eth0:1" 

在稳定的一个我刚刚添加了这一行:

 NETMASK=255.255.255.0 

ifconfig首先输出不稳定,之后稳定:

 eth0:1 Link encap:Ethernet HWaddr 00:26:18:24:4D:xx inet addr:69.64.93.x Bcast:69.255.255.255 Mask:255.0.0.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 Interrupt:28 Base address:0x6000 eth0:1 Link encap:Ethernet HWaddr 00:26:18:24:4D:xx inet addr:69.64.93.x Bcast:69.64.93.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 Interrupt:28 Base address:0x6000 

这个问题可能是你使用的IP地址混淆了ipcalc,当它试图神圣的NETMASK。 看networking脚本:

 /etc/sysconfig/network-scripts/network-functions: 133 expand_config () 134 { 135 if [ -z "${NETMASK}" ]; then 136 eval `/bin/ipcalc --netmask ${IPADDR}` 137 fi 138 139 if [ -z "${PREFIX}" ]; then 140 eval `/bin/ipcalc --prefix ${IPADDR} ${NETMASK}` 141 fi 142 143 if [ -z "${BROADCAST}" ]; then 144 eval `/bin/ipcalc --broadcast ${IPADDR} ${NETMASK}` 145 fi 146 147 if [ -z "${NETWORK}" ]; then 148 eval `/bin/ipcalc --network ${IPADDR} ${NETMASK}` 149 fi 150 } 

所以说你正在使用10.0.0.0的空间,技术上在/ 8,如果你把这个给ipcalc:

 # /bin/ipcalc --netmask 10.34.102.1 NETMASK=255.0.0.0 

您可以通过将您的地址放在那里来testing这是否是问题,并查看是否将您期望看到的值作为NETMASK返回。 就我个人而言,我认为这是CentOS中的一个bug,看起来如果NETMASK是空的,但是指定了PREFIX,它应该使用它来设置NETMASK。