objetivo

Abordar a correção de configuração de placa de rede no CENTOS 6.2 a partir de vm clonada ou instalação via template.

problema

Após clonar ou instalar um VM via DEPLOY no VMWARE, durante o boot o CentOS 6.2 vai fazer o seguinte

  • Iniciando Kernel
  • UDEV verificando Dispositivos
  • UDEV detecta placa de rede (NIC)
  • UDEV verifica NICS, caso não esteja registrada
  • UDEV registra NIC

Os registros de placa de rede (NICs) são armazenados no arquivo /etc/udev/rules.d/70-persistent-net.rules, esse arquivo é gerado pelo programa /lib/udev/writenetrules, no entanto, duranto o boot, ao verificar arquivo, ele encontra uma configuração prévia de NIC para o dispositivo eth0, portando, uma nova linha é criada para a NIC detectada, e nesta nova linha ela será nomeada como eth1 (afinal eth0 já está ocupado).

Se o MAC fosse o mesmo, o UDEV entenderia que a NIC já estaria registrada e passaria batido, porém como o MAC é diferente - mudança decorrente do processo de clonagem/deploy, o UDEV entende que é uma nova interface e vai tentar registrá-la.

Ao terminar o boot você terá alguns erros de inicialização de NETWORK, e a interface eth0 não vai existir, apenas a eth1 vai estar funcionando.

Vamos abordar duas formas de resolver isto, acompanhe.

procedimento

workaround 1: corrigindo o aquivo

Ao editar o arquivo /etc/udev/rules.d/70-persistent-net.rules de uma VM clonada ou instalada via template, vamos encontrar um arquivo similar ao abaixo.

70-persistent-net.rules
# 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.
 
# PCI device 0x15ad:0x07b0 (vmxnet3) (custom name provided by external tool)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:50:56:bc:00:45", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
 
# PCI device 0x15ad:0x07b0 (vmxnet3)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:50:56:bc:00:46", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

Para corrigir, vamos remover a entrada eth0 e mudar a segunda entrada de eth1 para eth0

70-persistent-net.rules
# 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.
 
# PCI device 0x15ad:0x07b0 (vmxnet3)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:50:56:bc:00:46", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

Após, edite o arquivo /etc/sysconfig/network-scripts/ifcfg-eth0

vim /etc/sysconfig/network-scripts/ifcfg-eth0 

Veja que o MAC da ETH0 faz referencia a linha antiga, da VM Template ou Clonada, precisamos corrigi-la.

ifcfg-eth0
DEVICE="eth0"
BOOTPROTO="static"
BROADCAST="10.138.26.255"
GATEWAY="10.138.26.200"
HWADDR="00:50:56:bc:00:45"
IPADDR="10.138.26.147"
NETMASK="255.255.255.0"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
DNS1="10.138.26.196"
DNS2="10.138.26.186"

Na correção coloque a mesma informação de MAC encontrada no arquivo do UDEV ou na saída do ifconfig

ifcfg-eth0
DEVICE="eth0"
BOOTPROTO="static"
BROADCAST="10.138.26.255"
GATEWAY="10.138.26.200"
HWADDR="00:50:56:bc:00:45"
IPADDR="10.138.26.147"
NETMASK="255.255.255.0"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
DNS1="10.138.26.196"
DNS2="10.138.26.186"

Reinicie a máquina

reboot

Isso deve ser suficiente para corrigir o problema.

workaround 2: removendo o arquivo

A segunda forma de resolver - essa não funcionou muito bem comigo - é apagar o arquivo.

Primeiro acesse o diretório

cd /etc/udev/rules.d

copie o arquivo por segurança

cp 70-persistent-net.rules /root/

apague o arquivo

rm 70-persistent-net.rules

Após, edite o arquivo /etc/sysconfig/network-scripts/ifcfg-eth0

vim /etc/sysconfig/network-scripts/ifcfg-eth0 

Antes de reiniciar, olhe o MAC da interface eth1 e corrija o arquivo de configuração ifcfg-eth0

DEVICE="eth0"
BOOTPROTO="static"
BROADCAST="10.138.26.255"
GATEWAY="10.138.26.200"
HWADDR="00:50:56:bc:00:45"
IPADDR="10.138.26.147"
NETMASK="255.255.255.0"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
DNS1="10.138.26.196"
DNS2="10.138.26.186"

reinicie a máquina

reboot

isso deve ser suficiente para resolver seu problema.

referências



centos_corrigindo_configuracao_de_nic_em_udev_de_vm_clonada_ou_instalada_via_deploy_vmware.txt · Last modified: 2012/04/18 18:59 by gutocarvalho
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0