Usando o ip addr em vez do ifconfig reporta “RTNETLINK answers: O arquivo existe” no Debian

53

Eu tenho um sistema Debian funcionando como roteador sem fio com eth0e wlan0. Agora eu adicionei uma rede adicional manualmente eth1com ifconfig:

alix: ~ # ifconfig eth1 192.168.0.2 máscara de rede 255.255.255.0
alix: ~ # netstat -rn
Tabela de roteamento IP do kernel
Janela de MSS de sinalizadores de máscara de destino do gateway de destino irtt Iface
0.0.0.0 192.168.2.1 0.0.0.0 UG 0 0 0 eth0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.3.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0
alix: ~ # ping 192.168.0.254
PING 192.168.0.254 (192.168.0.254) 56 (84) bytes de dados.
64 bytes de 192.168.0.254: icmp_req = 1 ttl = 64 time = 0.537 ms
64 bytes de 192.168.0.254: icmp_req = 2 ttl = 64 time = 0.199 ms
64 bytes de 192.168.0.254: icmp_req = 3 ttl = 64 time = 0.188 ms
^ C
--- 192.168.0.254 estatísticas de ping ---
3 pacotes transmitidos, 3 recebidos, 0% de perda de pacotes, tempo 2005ms
rtt min / média / máx / mdev = 0,188 / 0,308 / 0,537 / 0,161 ms

Tudo funciona bem como você pode ver.

Agora eu gostaria de tornar a configuração permanente. Para isso, adicionei a seguinte seção a /etc/network/interfaces:

alix: ~ # sed -n '/ iface eth1 /, / ^ $ / p' / etc / network / interfaces
iface eth1 inet static
  endereço 192.168.0.2
  máscara de rede 255.255.255.0

Mas quando tento iniciar a rede, recebo o seguinte erro:

alix: ~ # ifconfig eth1 down
alix: ~ # ifup -v eth1
Configurando a interface eth1 = eth1 (inet)
run-parts --verbose /etc/network/if-pre-up.d
run-parts: executando /etc/network/if-pre-up.d/hostapd
endereço IP add 192.168.0.2/255.255.255.0 broadcast 192.168.0.255 dev eth1 label eth1
RTNETLINK respostas: O arquivo existe
Falha ao ativar o eth1.

Quando executo o ipcomando manualmente, recebo o mesmo erro:

alix: ~ # addr ip add 192.168.0.2/255.255.255.0 broadcast 192.168.0.255 dev eth1 label eth1
RTNETLINK respostas: O arquivo existe

O que há de errado com o comando? E como posso dizer ao Debian para fazer a coisa certa?

ceving
fonte

Respostas:

83

Desculpe, mas eu mesmo entendi. Eu tive que liberar o dispositivo antes de trazê-lo:

alix: ~ # ip addr flush dev eth1

A limpeza manual das informações de configuração da interface como essa é mencionada no Guia do Servidor Ubuntu .

ceving
fonte
Ainda recebo um erro (ligeiramente diferente), RTNETLINK answers: No such process Failed to bring up eth1mas meu Eth1 está atribuído corretamente agora E está UP / UP.
harperville
sim, mesmo problema aqui: RTNETLINK answers: No such process Failed to bring up eth1
de Drew
7
Mesmo que suas respostas resolvam o problema. Seria ótimo se você pudesse dizer o que realmente faz. O que é esse arquivo RTNETLINK que existe?
HumanidadeANDpeace
@ ceving: por favor, você pode explicar o que é RTNETLINK answers file? Além disso, após a descarga, minha placa de rede não está aceitando um novo ip automaticamente, como solicitar um novo ip ao dhcp?
realtebo 14/08/18
@realtebo @humanityANDpeace Inspecione o manual do kernel sobre netlink e rtnetlink . Mas duvido que você realmente queira saber. Esta é uma mensagem de erro que a ipferramenta recebe do kernel. E, em vez de traduzir a mensagem em algo útil para os usuários finais, iptransmite-a. Mas se você realmente deseja conhecer os internos, use Ask Questiono Add Commentbotão em vez do .
ceving 14/08/18
-1

Eu tive um problema semelhante ao que, quando reproduzi a cena de 10.000 dinheiros, era exatamente isso e estava tentando adicionar as coisas que faltavam a / e / n / id / etho

Mas, estudando a página de manual para interfaces, observei que TODO o conjunto de exemplos tinha apenas 2 linhas de dados reais, o endereço ipv4 / 24 e uma linha de gateway especificando o endereço do meu roteador. Então, reduzi meu arquivo eth0 até isso, reiniciei e funcionei perfeitamente.

Gene
fonte