PREFIX versus NETMASK

5

Eu configurei uma interface de rede virtual no Centos 6, copiando o ifcfg-eth0 para ifcfg-eth0: 1 e alterando as variáveis apropriadas. Mas a conexão era instável. Embora uma das variáveis pré-existentes tenha sido PREFIX=24 , tive que adicionar NETMASK=255.255.255.0 ao script de interface virtual para tornar a conexão estável. Essas variáveis não têm o mesmo efeito?

EDITAR:

Isso é ifcfg-eth0: 1 instável:

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"

No estábulo, acabei de adicionar esta linha:

NETMASK=255.255.255.0

ifconfig output com primeiro instável e estável após:

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 
    
por Clodoaldo 25.08.2011 / 17:51

1 resposta

4

O problema é provavelmente que o endereço IP que você está usando confunde ipcalc quando ele tenta adivinhar o NETMASK. Olhando para os scripts da rede:

/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 }

Digamos que você esteja usando o espaço 10.0.0.0, que é tecnicamente um / 8, se você der isso ao ipcalc:

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

Você pode testar se esse foi o problema colocando seu endereço lá e vendo se ele retorna o valor que você esperava ver como NETMASK. Pessoalmente, acho que isso é realmente um bug no CentOS, parece que se o NETMASK é nulo, mas o PREFIX é especificado, ele deve usar isso para configurar o NETMASK.

    
por 25.08.2011 / 19:51