L'uso di ip addr invece di ifconfig riporta "RTNETLINK risponde: il file esiste" su Debian


53

Ho un sistema Debian che funziona come router wireless con eth0e wlan0. Ora ho aggiunto manualmente un'altra rete eth1con ifconfig:

alix: ~ # ifconfig eth1 192.168.0.2 netmask 255.255.255.0
alix: ~ # netstat -rn
Tabella di routing IP del kernel
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) byte di dati.
64 byte da 192.168.0.254: icmp_req = 1 ttl = 64 tempo = 0,537 ms
64 byte da 192.168.0.254: icmp_req = 2 ttl = 64 tempo = 0.199 ms
64 byte da 192.168.0.254: icmp_req = 3 ttl = 64 tempo = 0.188 ms
^ C
--- 192.168.0.254 statistiche ping ---
3 pacchetti trasmessi, 3 ricevuti, 0% perdita pacchetti, tempo 2005ms
rtt min / avg / max / mdev = 0,188 / 0,308 / 0,537 / 0,161 ms

Tutto funziona bene come puoi vedere.

Ora vorrei rendere permanente la configurazione. Pertanto ho aggiunto la seguente sezione a /etc/network/interfaces:

alix: ~ # sed -n '/ iface eth1 /, / ^ $ / p' / etc / network / interfaces
iface eth1 inet static
  indirizzo 192.168.0.2
  maschera di rete 255.255.255.0

Ma quando provo ad avviare la rete ottengo il seguente errore:

alix: ~ # ifconfig eth1 down
alix: ~ # ifup -v eth1
Configurazione dell'interfaccia eth1 = eth1 (inet)
run-parts --verbose /etc/network/if-pre-up.d
run-parts: eseguendo /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 etichetta eth1
RTNETLINK risponde: il file esiste
Impossibile visualizzare eth1.

Quando eseguo il ipcomando manualmente ottengo lo stesso errore:

alix: ~ # ip addr add 192.168.0.2/255.255.255.0 broadcast 192.168.0.255 dev etichetta eth1 eth1
RTNETLINK risponde: il file esiste

Cosa c'è di sbagliato nel comando? E come posso dire a Debian di fare la cosa giusta?

Risposte:


83

Scusa ma l'ho preso da solo. Ho dovuto svuotare il dispositivo prima di aprirlo:

alix: ~ # ip addr flush dev eth1

La cancellazione manuale delle informazioni di configurazione dell'interfaccia come questa è menzionata nella Guida del server Ubuntu .


Ricevo ancora un errore (leggermente diverso) RTNETLINK answers: No such process Failed to bring up eth1MA il mio Eth1 è correttamente assegnato ora E è SU / SU.
— Harperville,

sì, lo stesso problema qui: RTNETLINK answers: No such process Failed to bring up eth1
— Ha

7
Anche se le tue risposte risolvono il problema. Sarebbe bello se potessi dire cosa fa realmente. Che cos'è questo file RTNETLINK esistente?
— umanità e

@ceving: per favore, puoi spiegare cos'è RTNETLINK answers file? Inoltre, dopo aver scaricato, la mia scheda di rete non sta prendendo automaticamente un nuovo ip, come chiedere a dhcp un nuovo ip?
— Realtebo,

@realtebo @humanityANDpeace Ispeziona il manuale del kernel su netlink e rtnetlink . Ma dubito che tu voglia davvero saperlo. Questo è un messaggio di errore che lo ipstrumento riceve dal kernel. E invece di tradurre il messaggio in qualcosa di utile per gli utenti finali, lo ippassa proprio attraverso. Ma se vuoi davvero conoscere gli interni, usa Ask Questioninvece il Add Commentpulsante.
— ceving

-1

Avevo un problema simile al momento in cui avevo interpretato la scena dei 10.000 soldi era esattamente questo, e avevo cercato di aggiungere le cose mancanti a / e / n / id / etho

Ma studiando la pagina man per le interfacce, ho notato che TUTTA la serie di esempi aveva solo 2 righe di dati reali, l'indirizzo ipv4 / 24 e una linea gateway che specificava l'indirizzo del mio router. Quindi ho ridotto il mio file eth0 a quello, ho riavviato e ho funzionato perfettamente.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.