Pourquoi / etc / network / interfaces est-il ignoré?

10

Je recherche sur Internet depuis 2 heures et je n'arrive pas à trouver de solution au problème suivant.

Je viens d'installer Xen dans un nouveau Xubuntu 13.04 et pour configurer le réseau, j'ai dû supprimer network_manager. Ainsi, toute la configuration du réseau se fait via / etc / network / interfaces. C'est du moins ce qui devrait arriver. Cependant, il semble que ce que j'y ai ajouté soit simplement ignoré: mon interface xenbr0 ne reçoit pas d'adresse IPv4, il n'y a pas de passerelle par défaut et aucun serveur de noms n'est configuré.

Voici ce qui se trouve dans le fichier / 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

Afin de réparer ma connexion réseau, je lance un petit 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

Je voudrais toutefois corriger le problème de façon fondamentale. À l'heure actuelle, le démarrage prend au moins 1 minute supplémentaire, car le système attend une connexion réseau fonctionnelle.

Edit : J'ai également dû ajouter ce qui suit à /etc/resolvconf/resolv.conf.d/base et exécuter sudo resolvconf -u:

nameserver 192.168.1.1

Sans cela, je ne peux que cingler les adresses IP, aucune requête DNS n'est transmise. C'est d'ailleurs ce qui m'a convaincu que le fichier d'interface est complètement ignoré.

Edit 2 : Faire sudo restart networkingou sudo /etc/init.d/networking restartne fait rien.

Edit 3 : Quelques informations supplémentaires. Voici à quoi ifconfigdevrait ressembler la sortie (connexion réseau / Internet fonctionnelle):

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)

Voici à quoi cela ressemble juste après le démarrage. La seule chose qui manque est l'adresse IPv4 xenbr0 (et les données de routage / DNS, mais vous ne pouvez pas le voir dans la sortie d'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)
Darhuuk
la source
Vérifiez init.d et les autres scripts de démarrage pour les informations d'initialisation de l'interface réseau manquantes. Faites-nous savoir ce que vous avez trouvé.
RGS
Lorsque vous tapez /etc/init.d/networking restart, obtenez-vous la configuration du fichier d'interface?
ortang
Essayez avec auto eth0et iface eth0 inet manual.
Eric Carvalho
Lorsque vous exécutez ifconfigjuste après le démarrage, y a-t-il une interface en place?
Eric Carvalho
@ortang: Non, j'ai essayé ça aussi, rien ne se passe.
Darhuuk

Réponses:

16

Tu as:

address         192.168.1.200 # the IP address of the Ethernet port

et signaler que c'est la ligne qui ne fonctionne pas. Savez-vous, à partir des interfaces (5), que:

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

Avez-vous ajouté les commentaires de fin de ligne pour la question, ou les avez-vous réellement dans votre /etc/network/intefacesdossier? Si oui, essayez de les supprimer.

Robie Basak
la source
@Darhuuk Robie a raison. Je pense que c'est ce qui ne va pas dans votre fichier d'interface.
Eric Carvalho
Ah, belle trouvaille. Ces commentaires ont été ajoutés par l'installation de Xen et sont en effet à la fin de la ligne. La décommentation auto eth0semble avoir résolu mon problème, même si les commentaires sont toujours là.
Darhuuk
Les commentaires en ligne ne sont pas non plus pris en charge dans / etc / network / interfaces, semble-t-il. Merci, cela m'a permis de faire fonctionner ma deuxième interface réseau dans mon VPS.
Escher
3

Peut-être, malgré la suppression du package de gestionnaire de réseau, vous avez toujours le fichier /etc/NetworkManager/NetworkManager.confcontenant

[ifupdown]
managed=true

ce qui fait ifupque les interfaces n'apparaissent pas automatiquement.

Si c'est la cause du problème, je suggère soit le dpkg --purge network-managerréglage soit managed=false.

J'ai déposé un rapport de bug à ce sujet: https://bugs.launchpad.net/ubuntu/+source/ifupdown/+bug/1187693

jdthood
la source
Je vérifierai ce soir quand je rentrerai. Cependant, les interfaces sont en place après le démarrage, mais pas correctement configurées. L'exécution manuelle sudo restart networkingne résout pas non plus le problème.
Darhuuk
@jdthood, ne voulez-vous pas dire que ifupdown pourrait être déjà défini sur managed=false, et qu'il doit le définir truepour qu'il puisse commencer à utiliser les paramètres de /etc/network/interfaces?
Alaa Ali
@Alaa, non, je ne pensais pas à ce que vous proposez. Dans Ubuntu, ifupregarde en fait /etc/NetworkManager/NetworkManager.confet s'abstient d'interfaces de mise à jour automatique si NM est configuré pour configurer ces interfaces mes moyens de " [ifupdown] managed=true".
jdthood
J'ai juste essayé à la fois avec le vrai et le faux (c'est ce à quoi il était destiné), ni l'un ni l'autre n'a fonctionné. Puis a fait un dpkg --purge, ce qui n'a pas aidé non plus, mon / etc / network / interfaces n'est toujours pas pris en compte.
Darhuuk
3

J'ai réussi à résoudre mon problème en modifiant 2 fichiers. Tout d' abord, comme suggéré par Eric Carvalho, je décommenté auto eth0dans /etc/networking/interfaces. (Notez que c'est assez étrange, plusieurs tutoriels en ligne semblent suggérer que cela ne devrait pas être nécessaire pour Xen.)

Cela ne résout pas en soi le démarrage lent. Il semble qu'au démarrage, il ait encore fallu quelques secondes pour que les interfaces apparaissent et, en attendant, Ubuntu était déjà bloqué dans une attente de 60 secondes. J'ai corrigé cela en modifiant le temps de retard /etc/init/failsafe.confde 60 secondes à 1 seconde. (J'ai découvert ce fichier via Google, je ne sais pas lequel c'était exactement.)

Darhuuk
la source