Usando ip addr ao invés de relatórios ifconfig “RTNETLINK responde: File exists” no Debian

50

Eu tenho um sistema Debian trabalhando como um roteador sem fio com eth0 e wlan0 . Agora adicionei uma rede adicional manualmente em eth1 com ifconfig :

alix:~# ifconfig eth1 192.168.0.2 netmask 255.255.255.0
alix:~# netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  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 of data.
64 bytes from 192.168.0.254: icmp_req=1 ttl=64 time=0.537 ms
64 bytes from 192.168.0.254: icmp_req=2 ttl=64 time=0.199 ms
64 bytes from 192.168.0.254: icmp_req=3 ttl=64 time=0.188 ms
^C
--- 192.168.0.254 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2005ms
rtt min/avg/max/mdev = 0.188/0.308/0.537/0.161 ms

Tudo funciona bem, como você pode ver.

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

alix:~# sed -n '/iface eth1/,/^$/p' /etc/network/interfaces
iface eth1 inet static
  address 192.168.0.2
  netmask 255.255.255.0

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

alix:~# ifconfig eth1 down
alix:~# ifup -v eth1
Configuring interface eth1=eth1 (inet)
run-parts --verbose /etc/network/if-pre-up.d
run-parts: executing /etc/network/if-pre-up.d/hostapd
ip addr add 192.168.0.2/255.255.255.0 broadcast 192.168.0.255     dev eth1 label eth1
RTNETLINK answers: File exists
Failed to bring up eth1.

Quando executo o comando ip manualmente, recebo o mesmo erro:

alix:~# ip addr add 192.168.0.2/255.255.255.0 broadcast 192.168.0.255     dev eth1 label eth1
RTNETLINK answers: File exists

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

    
por ceving 09.11.2013 / 19:45

1 resposta

82

Desculpe, mas eu mesmo tenho. Eu tive que limpar o dispositivo antes de fazer isso:

alix:~# ip addr flush dev eth1

Limpar manualmente as informações de configuração da interface como esta é mencionado no Servidor Ubuntu Guia .

    
por 09.11.2013 / 20:01