Debian 9 combina adaptadores de rede

0

Eu tenho dois sistemas server , um executando Debian Stretch , o outro Ubuntu 17.10 , ambos com dois adaptadores de rede, configurados da seguinte maneira ( /etc/network/interfaces ):

auto lo
iface lo inet loopback

allow-hotplug eth0
iface eth0 inet static
        address 192.168.2.x
        netmask 255.255.255.0
        network 192.168.2.0
        broadcast 192.168.2.255
        gateway 192.168.2.1
        dns-nameservers 8.8.8.8

allow-hotplug eth1
iface eth1 inet dhcp

Além disso, os discos ram iniciais em ambos os sistemas têm os mesmos endereços IP (sim, usando os nomes de interface "old school") configurados com ( /etc/default/grub ):

GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=0 biosdevname=0"
GRUB_CMDLINE_LINUX="ip=192.168.2.x::192.168.2.1:255.255.255.0:whatever:eth0:off"

Em ambos os sistemas, o primeiro adaptador é sempre conectado à rede local, e o segundo quase nunca é conectado a nada, mas ocasionalmente usado para testar equipamentos de rede.

O que às vezes (1/10 vezes) acontece é que, após a reinicialização, os nomes do adaptador trocam de lugar e, de repente, eth1 tem um MAC endereço que eth0 tinha antes de reinicializar e tem DHCP de endereço obtido. Isso acontece no disco de RAM inicial também.

Agora, Debian Jesse e Ubuntu 16.04 LTS tinham /etc/udev/rules.d/70-persistent-net.rules , o que indica claramente qual MAC pertence a qual nome de interface. Este arquivo não existe em meus sistemas, nunca removi um único pacote nem excluí esse arquivo desses dois sistemas. Eu tentei recriar o arquivo com:

udevadm trigger --type=devices --action=change
udevadm trigger --subsystem-match=net --action=add
udevadm control --reload-rules

E após a reinicialização, o arquivo não está presente e os adaptadores ainda às vezes trocam de lugar. Qualquer dica ou idéia de como consertar esse problema é muito apreciado.

    
por Ulrik 02.12.2017 / 16:48

1 resposta

1

As interfaces de rede são testadas na inicialização e o resultado dessa análise não é previsível. Os nomes das interfaces são atribuídos na ordem em que são encontrados, mas infelizmente isso não é determinístico. Este é exatamente o problema com os nomes de interface da "velha escola" que Nomes Previsíveis de Interface de Rede está tentando resolver.

Você também pode criar um arquivo de regras do udev "manualmente" para mapear um endereço MAC para um nome de interface, por exemplo:

/etc/udev/rules.d/70-network.rules

SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="aa:bb:cc:dd:ee:ff", NAME="net1"
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="ff:ee:dd:cc:bb:aa", NAME="net0"

Note que não são os endereços MAC que são trocados, mas os nomes das interfaces. O endereço MAC é (geralmente) fixo no hardware. O que está acontecendo no seu caso é que a interface física que tem o nome "eth0" às vezes recebe o nome "eth1", o que significa que sua configuração de rede estática é aplicada à porta errada.

    
por 03.12.2017 / 17:14