Perché / etc / network / interfaces viene ignorato?


10

Ho cercato su Internet nelle ultime 2 ore e non riesco a trovare una soluzione al seguente problema.

Ho appena installato Xen in un nuovo Xubuntu 13.04 e per configurare la rete ho dovuto rimuovere network_manager. Quindi, tutta la configurazione della rete viene eseguita tramite / etc / network / interfaces. Almeno, è quello che dovrebbe succedere. Tuttavia, sembra che ciò che ho inserito lì sia semplicemente ignorato: alla mia interfaccia xenbr0 non viene assegnato un indirizzo IPv4, non esiste un gateway predefinito e nessun nameserver è configurato.

Ecco cosa c'è nel file / etc / network / interfaces:

auto lo
iface lo inet loopback

# There are no IP configurations for eth0, it’s all defined under xenbr0:
#auto eth0

# Static configuration
auto xenbr0
iface xenbr0 inet static
  bridge_ports    eth0
  address         192.168.1.200 # the IP address of the Ethernet port
  broadcast       192.168.1.255
  netmask         255.255.255.0
  gateway         192.168.1.1   # the address of the router
  bridge_stp      off           # disable Spanning Tree Protocol - optional
  bridge_waitport 0             # no delay before a port becomes available - optional, comment out if this gives you troubles
  bridge_fd       0             # no forwarding delay - optional
  dns-nameservers 192.168.1.1

Per correggere la mia connessione di rete, eseguo un piccolo script "fix":

#!/bin/bash
ifconfig xenbr0 192.168.1.200 netmask 255.255.255.0 up
route add default gw 192.168.1.1 xenbr0

Vorrei sistemare il problema però. Al momento l'avvio richiede almeno 1 minuto in più, poiché il sistema attende una connessione di rete funzionante.

Modifica : ho anche dovuto aggiungere quanto segue a /etc/resolvconf/resolv.conf.d/base ed eseguire sudo resolvconf -u:

nameserver 192.168.1.1

Senza questo posso solo eseguire il ping degli indirizzi IP, nessuna richiesta DNS viene passata. Questo è in realtà ciò che mi ha convinto che il file interfacce è completamente ignorato.

Modifica 2 : fare una sudo restart networkingo entrambe le cose sudo /etc/init.d/networking restart.

Modifica 3 : alcune informazioni extra. Ecco come ifconfigdovrebbe apparire l'output (rete di lavoro / connessione Internet):

eth0      Link encap:Ethernet  HWaddr 00:1c:c0:77:09:9d  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3346 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2903 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:2931429 (2.9 MB)  TX bytes:661616 (661.6 KB)
          Interrupt:20 Memory:e3200000-e3220000 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:16 errors:0 dropped:0 overruns:0 frame:0
          TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:1720 (1.7 KB)  TX bytes:1720 (1.7 KB)

xenbr0    Link encap:Ethernet  HWaddr 00:1c:c0:77:09:9d  
          inet addr:192.168.1.200  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::21c:c0ff:fe77:99d/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3329 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2875 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:2870029 (2.8 MB)  TX bytes:647394 (647.3 KB)

Ecco come appare subito dopo l'avvio. L'unica cosa che manca è l'indirizzo IPv4 xenbr0 (e i dati di routing / DNS, ma non è possibile vederlo nell'output di ifconfig):

eth0      Link encap:Ethernet  HWaddr 00:1c:c0:77:09:9d  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0 B)  TX bytes:0 (0 B)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:16 errors:0 dropped:0 overruns:0 frame:0
          TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0 B)  TX bytes:0 (0 B)

xenbr0    Link encap:Ethernet  HWaddr 00:1c:c0:77:09:9d  
          inet6 addr: fe80::21c:c0ff:fe77:99d/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0 B)  TX bytes:0 (0 B)

Controllare init.d e gli altri script di avvio per le informazioni di inizializzazione dell'interfaccia di rete mancanti. Facci sapere cosa hai trovato.
RGS,

Quando si digita /etc/init.d/networking restart, si ottiene la configurazione del file interfacce?
Ortang

Prova con auto eth0e iface eth0 inet manual.
Eric Carvalho,

Quando esegui ifconfigsubito dopo l'avvio, c'è qualche interfaccia attiva?
Eric Carvalho,

@ortang: No, ci ho provato anche io, non succede nulla.
Darhuuk,

Risposte:


16

Hai:

address         192.168.1.200 # the IP address of the Ethernet port

e segnala che questa è la linea che non funziona. Sei consapevole, dalle interfacce (5), che:

   Lines starting with `#' are ignored. Note  that  end-of-line  comments
   are NOT supported, comments must be on a line of their own.

Hai aggiunto i commenti di fine riga per la domanda o li hai effettivamente nel tuo /etc/network/intefacesfile? In tal caso, prova a rimuoverli.


@Darhuuk Robie ha ragione. Penso che questo sia ciò che è sbagliato nel tuo file di interfacce.
Eric Carvalho,

Ah, bella scoperta. Quei commenti sono stati aggiunti dall'installazione di Xen e sono davvero alla fine della riga. Uncommenting auto eth0sembra aver risolto il mio problema, anche se i commenti sono ancora lì.
Darhuuk,

Sembra che anche i commenti incorporati non siano supportati in / etc / network / interfaces. Grazie, questo mi ha permesso di far funzionare la mia seconda interfaccia di rete nel mio VPS.
Escher,

3

Forse, nonostante abbia rimosso il pacchetto del gestore di rete, hai ancora il file /etc/NetworkManager/NetworkManager.confcontenente

[ifupdown]
managed=true

che provoca ifupnon automaticamente il richiamo delle interfacce.

Se questa è la causa del problema, allora suggerisco dpkg --purge network-managero l'impostazione managed=false.

Ho presentato una segnalazione di bug al riguardo: https://bugs.launchpad.net/ubuntu/+source/ifupdown/+bug/1187693


Controllerò stasera quando torno a casa. Tuttavia, le interfacce sono attive dopo l'avvio, ma non sono configurate correttamente. Anche l'esecuzione manuale sudo restart networkingnon risolve il problema.
Darhuuk,

@jdthood, non intendi dire che ifupdown potrebbe essere già impostato su managed=false, e che deve impostarlo su trueaffinché inizi a usare le impostazioni in /etc/network/interfaces?
Alaa Ali,

@Alaa, no, non intendevo quello che mi suggerisci. In Ubuntu, in ifuprealtà cerca /etc/NetworkManager/NetworkManager.confe si astiene dalle interfacce auto-elevanti se NM è configurato per configurare quelle interfacce " [ifupdown] managed=true".
jdthood,

Ho appena provato con sia vero che falso (questo era quello su cui era impostato), nessuno dei due funzionava. Quindi ha fatto un dpkg --purge, che non ha aiutato neanche, la mia / etc / network / interfaces non viene ancora presa in considerazione.
Darhuuk,

3

Sono riuscito a risolvere il mio problema cambiando 2 file. Prima di tutto, come suggerito da Eric Carvalho, ho commentate auto eth0in /etc/networking/interfaces. (Si noti che questo è abbastanza strano, diversi tutorial online sembrano suggerire che questo non dovrebbe essere richiesto per Xen.)

Questo da solo non ha risolto l'avvio lento. Sembra che all'avvio ci siano voluti ancora alcuni secondi prima che le interfacce arrivassero e nel frattempo Ubuntu era già bloccato in un'attesa inattiva di 60 secondi. Questo ho risolto modificando il tempo di ritardo /etc/init/failsafe.confda 60 secondi a 1 secondo. (Ho scoperto questo file tramite Google, non ho idea di quale fosse esattamente.)

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.