A interface de rede ligada não está disponível após uma reinicialização

6

Eu tenho alguns servidores com várias interfaces de rede, configuração com ligação e algumas VLANs. Sempre que eu reinicializo o servidor, uma das interfaces de rede conectadas não pode ser acessada de outros servidores, e nenhum tráfego pode sair dessa interface. O status do ifconfig nessa interface indica que o link está ativo, no entanto. Simplesmente reiniciar a rede neste ponto restaurará tudo ao normal.

O fato de que tudo funciona como esperado depois de eu reiniciar a rede me faz pensar que minha configuração está correta, mas é algo na ordem de inicialização que não está funcionando na reinicialização, mas é corrigido ao reiniciar a rede.

Eu tenho 7 servidores idênticos com a mesma configuração (diferente de endereços IP diferentes), e isso acontece em todos eles, toda vez que eles são reinicializados.

Um pouco mais detalhes sobre a configuração:

  • Servidores: HP ProLiant DL380
  • 6 interfaces de rede, configuradas como 3 interfaces vinculadas denominadas: bondm, bondr, bondt.
  • 4 interfaces estão incorporadas, as 2 restantes estão em uma placa PCI adicional
  • bondm está configurado com 2 VLANs
  • bondm é usado como a rota padrão
  • bondm é configurado para usar eth0 e eth2
  • bondm é a interface que falhou ao reinicializar

Atualização: Eu reparei isso com a mesma configuração e arquivos de kickstart, mas com SL 6.2 vs 6.3. Tudo está bem com 6.2, mas eu tenho esse comportamento com 6.3. É devido aos diferentes kernels?

Aqui estão alguns dos arquivos de configuração relevantes em / etc / sysconfig / network-scripts:

$ cat ifcfg-eth0 ifcfg-eth2 ifcfg-bondm ifcfg-bondm.132 ifcfg-bondm.832 
DEVICE=eth0
BOOTPROTO=none
NM_CONTROLLED=no
ONBOOT=yes
TYPE=Ethernet
HWADDR=44:1E:A1:03:71:C4
SLAVE=yes
MASTER=bondm
ETHTOOL_OPTS="-s eth0 speed 1000 duplex full"

DEVICE=eth2
HWADDR=44:1E:A1:03:71:C8
NM_CONTROLLED=no
ONBOOT=yes
SLAVE=yes
MASTER=bondm
ETHTOOL_OPTS="-s eth2 speed 1000 duplex full"

DEVICE=bondm
BOOTPROTO=none
NM_CONTROLLED=no
ONBOOT=yes
TYPE=Ethernet
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
BONDING_OPTS="mode=active-backup miimon=100"

DEVICE=bondm.132
BOOTPROTO=none
NM_CONTROLLED=no
ONBOOT=yes
TYPE=Ethernet
IPADDR=192.168.13.19
PREFIX=28
GATEWAY=192.168.13.17
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
BONDING_OPTS="mode=active-backup miimon=100"
VLAN=yes

DEVICE=bondm.832
BOOTPROTO=none
NM_CONTROLLED=no
ONBOOT=yes
TYPE=Ethernet
IPADDR=10.123.94.69
PREFIX=28
DEFROUTE=no
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
BONDING_OPTS="mode=active-backup miimon=100"
VLAN=yes
    
por wolfcastle 24.01.2013 / 16:51

1 resposta

3

modprobe.d

De acordo com as instruções deste Site RHEL6 você criou o arquivo /etc/modprobe.d/bonding.conf e adicionou seu dispositivo bondm a esse arquivo?

alias bondm bonding

faltando TYPE para 2nd NIC

Além disso, não sou importante, mas seu dispositivo eth2 está sem esta linha:

TYPE=Ethernet

NetworkManager desabilitado?

Você já tentou desativar o serviço NetworkManager? Tente isso e veja se o problema persistir, reinicie para confirmar.

% chkconfig off NetworkManager

UDEV

Você está fazendo uso do udev nessas caixas? Eu me deparei com problemas em que o udev preencheu um arquivo aqui, /etc/udev/rules.d/70-persistent-net.rules . Este arquivo teve entradas redundantes para NICs em caixas e eu tive que editar manualmente este arquivo. O meu parece assim:

# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.

# net device () (custom name provided by external tool)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="54:52:00:ff:ff:f5", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

O UDEV atribui dispositivos com base em endereços MAC, você pode forçá-lo a atribuir com base na posição que a NIC está tomando no barramento PCI.

Você pode usar este comando para determinar as informações de PCI das NICs:

% for i in /sys/class/net/*;do printf "device: %6s - %s\n" 'basename $i' 'readlink -f $i';done
device:    br0 - /sys/devices/virtual/net/br0
device:   eth0 - /sys/devices/pci0000:00/0000:00:1c.5/0000:09:00.0/net/eth0
device:   eth1 - /sys/devices/pci0000:00/0000:00:2d.5/0000:03:00.0/net/eth1
device:     lo - /sys/devices/virtual/net/lo

Com base nessa saída, você precisaria preencher seu próprio arquivo de regras do udev:

% cat > /etc/udev/rules.d/70-persistent-net.rules << EOF
ACTION=="add", SUBSYSTEM=="net", BUS=="pci", KERNELS=="0000:00:1c.5", \
    NAME="eth0"
ACTION=="add", SUBSYSTEM=="net", BUS=="pci", KERNELS=="0000:00:2d.5", \
    NAME="eth1"
EOF

OBSERVAÇÃO: Também certifique-se de remover / desativar qualquer arquivo de regras do udev que já esteja tentando configurar suas NICs.

Bug com CentOS 6.3

Me deparei com esse bug no rastreador de problemas do CentOS. As notas de lançamento para 6.3 também o listam.

Trecho de Notas de Lançamento do Centos 6.3 :

There seems to be an issue when using 802.1q VLANing on bonded (802.3ad) interfaces and certain NICs. See this upstream bugzilla entry and this CentOS bugzilla entry for details. The CentOS-Plus Kernel released with 6.3 contains a patch to fix this issue. Starting with kernel 2.6.32-279.2.1 this issue is fixed.

Esse problema parece suspeito como o que você está lidando. Qual kernel você está executando? ( uname -a ).

    
por 31.01.2013 / 03:11