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.