Interfaces de rede dançantes

No Fedora 15 surgiu um novo mecanismo de nomenclatura das interfaces de rede de acordo com a posição no barramento. Interfaces integradas são nomeadas em<1,2,3...> e as demais p<slot>p<porta>. Resolveu o problema das interfaces ficarem trocando de nome a cada boot.

Porém — sempre tem um porém —, o biosdevname, que o udev usa para dar os nomes consistentes e bonitinhos, funciona apenas com BIOS/firmwares que implementem SMBIOS 2.6 ou superior. Em cacarecos que usem versão anterior, a forma de dar nome às interfaces volta ao que era antes. E a dança de nomes também retorna. Isso raramente é um problema em desktops, mas em servidores com mais de uma interface de rede é um tormento.

Os arquivos /etc/sysconfig/network-scripts/ifcfg-<interface> possuem um campo HWADDR, que amarra a configuração de IP baseada no endereço MAC. Porém não ao nome da interface. A cada boot, o NetworkManager sempre configurará o IP correto na interface de acordo com o MAC, porém o nome dela poderá ser eth0 ou eth1, para o caso de duas interfaces, de acordo com a posição da Lua.

A solução é recorrer ao velho arquivo /etc/udev/rules.d/70-persistent-net.rules, que precisa ser criado a partir do Fedora 15.

ACTION=="add", SUBSYSTEM=="net", ATTR{address}=="XX:XX:XX:XX:XX:XX", NAME="eth0"
ACTION=="add", SUBSYSTEM=="net", ATTR{address}=="YY:YY:YY:YY:YY:YY", NAME="eth1"

Obtenha o MAC de cada interface com:

# lshw -c network
# udevadm info -a -p /sys/class/net/<interface>

[Atualização - 11/11/2012] As regras falharão em versões recentes do udev, ver Interfaces de rede dançantes (atualização).

Comentários