Dlaczego / etc / network / interfaces jest ignorowany?

10

Przeszukuję Internet przez ostatnie 2 godziny i nie mogę znaleźć rozwiązania następującego problemu.

Właśnie zainstalowałem Xen w nowym Xubuntu 13.04 i aby skonfigurować sieć, musiałem usunąć menedżera sieci. Tak więc cała konfiguracja sieci odbywa się za pośrednictwem / etc / network / interfaces. Przynajmniej tak powinno się stać. Wydaje się jednak, że to, co tam wprowadziłem, jest po prostu ignorowane: mój interfejs xenbr0 nie ma przypisanego adresu IPv4, nie ma domyślnej bramy i nie jest skonfigurowany serwer nazw.

Oto, co znajduje się w pliku / 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

Aby naprawić moje połączenie sieciowe, uruchamiam mały skrypt „fix”:

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

Chciałbym jednak naprawić rdzeń. W tej chwili uruchomienie zajmuje co najmniej 1 minutę, ponieważ system czeka na działające połączenie sieciowe.

Edycja : Musiałem także dodać następujące pliki do /etc/resolvconf/resolv.conf.d/base i uruchomić sudo resolvconf -u:

nameserver 192.168.1.1

Bez tego mogę pingować tylko adresy IP, żadne żądania DNS nie są przekazywane. Właśnie to przekonało mnie, że plik interfejsów jest całkowicie ignorowany.

Edit 2 : wykonując jedną sudo restart networkinglub sudo /etc/init.d/networking restartnic nie robi.

Edycja 3 : Kilka dodatkowych informacji. Oto, jak ifconfigpowinno wyglądać wyjście (działające połączenie sieciowe / internetowe):

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)

Oto jak to wygląda zaraz po uruchomieniu. Brakuje tylko adresu IPv4 xenbr0 (i danych routingu / DNS, ale nie widać tego w danych wyjściowych 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
źródło
Sprawdź init.d i inne skrypty startowe pod kątem brakujących informacji o inicjalizacji interfejsu sieciowego. Daj nam znać, co znalazłeś.
RGS
Po wpisaniu /etc/init.d/networking restartotrzymujesz konfigurację pliku interfejsów?
ortang
Spróbuj z auto eth0i iface eth0 inet manual.
Eric Carvalho,
Czy ifconfigpo uruchomieniu systemu jest jakiś interfejs?
Eric Carvalho,
@ortang: Nie, próbowałem też i nic się nie dzieje.
Darhuuk

Odpowiedzi:

16

Ty masz:

address         192.168.1.200 # the IP address of the Ethernet port

i zgłoś, że ta linia nie działa. Czy wiesz, z interfejsów (5), że:

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

Czy dodałeś do pytania komentarze na końcu wiersza, czy rzeczywiście masz je w swoim /etc/network/intefacespliku? Jeśli tak, spróbuj je usunąć.

Robie Basak
źródło
@Darhuuk Robie ma rację. Myślę, że właśnie to jest nie tak w twoim pliku interfejsów.
Eric Carvalho,
Ach, niezłe znalezisko. Te komentarze zostały dodane przez instalację Xen i rzeczywiście znajdują się na końcu linii. Odkomentowanie auto eth0wydaje się naprawić mój problem, mimo że komentarze wciąż tam są.
Darhuuk
Wydaje się, że wbudowane komentarze nie są również obsługiwane w / etc / network / interfaces. Dzięki, dzięki temu mój drugi interfejs sieciowy działa w moim VPS.
Escher
3

Być może pomimo usunięcia pakietu menedżera sieci nadal plik /etc/NetworkManager/NetworkManager.confzawiera

[ifupdown]
managed=true

co powoduje, ifupże interfejsy nie są automatycznie wywoływane.

Jeśli to jest przyczyną problemu, proponuję jedno dpkg --purge network-managerlub ustawienie managed=false.

Złożyłem raport o błędzie na ten temat: https://bugs.launchpad.net/ubuntu/+source/ifupdown/+bug/1187693

jdthood
źródło
Sprawdzę to dziś wieczorem, kiedy wrócę do domu. Jednak interfejsy są uruchomione po uruchomieniu, po prostu niepoprawnie skonfigurowane. Ręczne uruchamianie sudo restart networkingrównież nie rozwiązuje problemu.
Darhuuk
@ jdthood, czy nie masz na myśli, że ifupdown może być już ustawiony managed=falsei że musi go ustawić true, aby zaczął używać ustawień w /etc/network/interfaces?
Alaa Ali,
@Alaa, nie, nie miałem na myśli tego, co sugerujesz. W Ubuntu ifupfaktycznie sprawdza /etc/NetworkManager/NetworkManager.confi powstrzymuje się od automatycznych interfejsów, jeśli NM jest skonfigurowany do konfigurowania tych interfejsów za pomocą moich „ [ifupdown] managed=true”.
jdthood,
Właśnie próbowałem zarówno z zarządzaniem prawdą, jak i fałszem (tak właśnie było ustawione), żaden z nich nie działał. Potem zrobił dpkg --purge, co też nie pomogło, moje / etc / network / interfaces wciąż nie jest brane pod uwagę.
Darhuuk
3

Udało mi się rozwiązać problem, zmieniając 2 pliki. Przede wszystkim, zgodnie z sugestią Eric Carvalho, ja Odkomentowano auto eth0w /etc/networking/interfaces. (Zauważ, że jest to dość dziwne, kilka samouczków online sugeruje, że nie powinno to być wymagane w przypadku Xen.)

To samo w sobie nie naprawiło powolnego rozruchu. Wygląda na to, że po uruchomieniu jeszcze kilka sekund zajęło uruchomienie interfejsów, a tymczasem Ubuntu utknęło w 60 sekundowym bezczynnym oczekiwaniu. Naprawiłem to, modyfikując czas opóźnienia /etc/init/failsafe.confz 60 sekund na 1 sekundę. (Dowiedziałem się o tym pliku za pośrednictwem Google, nie mam pojęcia, który to dokładnie był).

Darhuuk
źródło