Luso di ip addr invece di ifconfig riporta “ RTNETLINK risponde: Il file esiste ” su Debian

Ho un sistema Debian che funziona come router wireless con eth0 e wlan0. Ora ho aggiunto manualmente una rete aggiuntiva su eth1 con 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 

Funziona tutto 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 address 192.168.0.2 netmask 255.255.255.0 

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

 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 eseguo manualmente il comando ip ottengo lo stesso errore:

 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 

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

Risposta

Ho capito che dovevo prima svuotare il dispositivo sollevandolo:

# ip addr flush dev eth1 

La cancellazione delle informazioni di configurazione dellinterfaccia impostate manualmente in questo modo è menzionata nel Guida al server Ubuntu .

Commenti

  • Continuo a ricevere un errore (leggermente diverso) RTNETLINK answers: No such process Failed to bring up eth1 MA il mio Eth1 è assegnato correttamente ora E è SU / SU.
  • sì, lo stesso problema qui: RTNETLINK answers: No such process Failed to bring up eth1
  • Anche se le tue risposte risolvono il problema. Sarebbe fantastico se tu potessi dire cosa fa effettivamente. Cosè questo file RTNETLINK che esiste?
  • @ceving: per favore, puoi spiegarci cosè RTNETLINK answers file? Inoltre, dopo lo svuotamento, la mia scheda di rete non prende automaticamente un nuovo ip, come chiedere a dhcp un nuovo ip?
  • Un avvertimento è che questo cancella tutti gli ambiti, che non è sempre quello che vuoi. (Lho scoperto a mie spese)

Rispondi

Utilizzando ip addr flush funzionerà, ma cancellerà anche tutti gli indirizzi impostati su quellinterfaccia, possibilmente compreso quello che stai utilizzando, se sei connesso a una macchina remota. Questo potrebbe bloccarti dal tuo dispositivo.

RNETLINK answers: File exists si verifica quando “stai tentando di add una regola che è in conflitto con una regola esistente. Immagino che OP lo abbia riscontrato perché aveva già impostato lindirizzo con ifconfig. Questo errore di solito può essere risolto convertendo il comando add in un change o replace comando.

È molto più sicuro utilizzare ip addr change o ip addr replace.

Commenti

  • Questa non è unopzione per qualcuno che utilizza solo ifup e ifdown , perché il comando è cablato in questi script.
  • @alerone utilizzando " sudo ip addr change " lanciami questo output. " Informazioni insufficienti: è richiesto largomento " dev ". " Ho / abbiamo bisogno di più informazioni per utilizzare la tua idea. Sarebbe carino.

Risposta

Ho avuto un problema simile che nel momento in cui ho riprodotto la scena dei 10.000 soldi era esattamente questa, e stavo cercando di aggiungi il materiale mancante a / e / n / id / etho

Ma studiando la pagina man per le interfacce, ho notato che TUTTO il set di esempi aveva solo 2 righe di dati reali, lindirizzo ipv4 / 24 e una linea gateway che specifica lindirizzo del mio router. Quindi ho ridotto il mio file eth0 a quello, ho riavviato e ha funzionato perfettamente.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *