O que é o “IP-Config:” durante a inicialização e por que está substituindo minhas interfaces / etc / network /?

2

Eu tenho um arquivo /etc/network/interfaces (em uma caixa 16.04) que se parece com isso:

# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.88.50
netmask 255.255.255.0
gateway 192.168.88.1
dns-nameservers 192.168.88.1
dns-domain mynet.lan

Você esperaria que isso resultasse em eth0 chegando com o IP especificado. Isso não está acontecendo. Durante a inicialização, vejo uma linha que diz:

IP-Config: eth0 hardware address e0:db:55:0c:34:7e mtu 1500 DHCP

.. e, em seguida, a interface é criada com um endereço sempre tão útil fornecido pelo servidor DHCP local.

Mais preocupante, esta linha de configuração de IP só é exibida durante a inicialização e não é visível em nenhum dos meus arquivos de log.

O que é o IP-Config, por que ele está pisando no meu arquivo interfaces e onde ele pode ser configurado?

Mais informações:

O endereço falso (no meu caso, 192.168.88.222) só é criado durante a inicialização, algum tempo antes dos scripts if* chegarem a ele. ip addr mostra o endereço incorreto (coletado do DHCP) diretamente acima do endereço correto (que está marcado como "secundário").

tl; dr: Algo está transmitindo para DHCP e atribuindo-o à NIC antes que eles sejam ativados normalmente usando os comandos if* , levando a dois endereços na mesma NIC.

Se eu descer a interface, ip address mostrará o endereço falso ainda associado à NIC. Se eu emitir um ip address flush eth0 , o endereço falso será removido e não retornará em uma reinicialização de interface subsequente, mas será quando o sistema for reinicializado.

    
por Mikey T.K. 15.08.2017 / 05:47

2 respostas

2

Eu finalmente encontrei o que estava causando isso. Não encontrando um ponteiro oculto em algum lugar, não, mas sim usando todo o meu sistema de arquivos para configurações de DHCP: grep -ri 'dhcp' / . Há quase certamente um caminho melhor. Mas de qualquer maneira:

Tentativas anteriores de brincar com a inicialização de rede ISCSI nesta máquina de alguma forma levaram à criação de um arquivo /run/network/dynamic-interfaces , que parece usar a mesma sintaxe de /etc/network/interfaces . Com certeza, aí estava a linha dizendo à máquina para trazer a eth0 como DHCP, e como isso está acontecendo no contexto de initramfs , ela está trazendo a interface online muito antes de iftools ter uma chance.

Este arquivo é parte do pacote cloud-initramfs-dyn-netconf , que é padrão no servidor Ubuntu. Você não quer desinstalá-lo, pois faz parte do ubuntu-server metapackage (e se você desinstalar isso, as atualizações podem falhar no futuro)

Após limpar o arquivo e reinicializar, o NIC é controlado pelo arquivo interfaces como normalmente esperado.

    
por Mikey T.K. 25.08.2017 / 01:58
0

Eu acredito que a redação correta é estática ; não manual. Além disso, você determinou que o endereço selecionado, 192.168.88.50, está fora do intervalo de endereços usado para DHCP no roteador para evitar uma colisão? Talvez x.50 já esteja em uso ou reservado.

Depois de determinar o pool DHCP no roteador, sugiro que você altere o arquivo para:

# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.88.zz
netmask 255.255.255.0
gateway 192.168.88.1
dns-nameservers 192.168.88.1
dns-domain mynet.lan

... onde zz é um endereço fora do pool DHCP.

Reinicie a interface:

sudo ifdown eth0 && sudo ifup -v eth0

O -v para verbose deve produzir uma saída que nos diz se a conexão foi bem sucedida.

Você recebeu o endereço solicitado?

ifconfig
    
por chili555 15.08.2017 / 15:16