Por que o / etc / network / interfaces é ignorado?

9

Estou pesquisando na internet há duas horas e não consigo encontrar uma solução para o problema a seguir.

Acabei de instalar o Xen em um novo Xubuntu 13.04 e, para configurar a rede, tive que remover o network_manager. Assim, toda a configuração de rede é feita através de / etc / network / interfaces. Pelo menos, é o que deveria acontecer. No entanto, parece que o que eu coloquei lá está sendo ignorado: minha interface xenbr0 não recebe um endereço IPv4 atribuído, não há um gateway padrão e nenhum servidor de nomes está configurado.

Veja o que há no arquivo / 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

Para corrigir minha conexão de rede, eu corro um pequeno script de "correção":

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

Eu gostaria de corrigir no núcleo embora. No momento, a inicialização leva pelo menos 1 minuto a mais, porque o sistema aguarda uma conexão de rede em funcionamento.

Editar : Eu também tive que adicionar o seguinte ao /etc/resolvconf/resolv.conf.d/base e executar sudo resolvconf -u :

nameserver 192.168.1.1

Sem isso, só posso fazer ping de endereços IP, sem que as solicitações de DNS sejam passadas. Isso é o que realmente me convenceu de que o arquivo de interfaces é completamente ignorado.

Editar 2 : Fazer sudo restart networking ou sudo /etc/init.d/networking restart não faz nada.

Editar 3 : algumas informações adicionais. Aqui está como deve ser a saída ifconfig (conexão de rede / internet em funcionamento):

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)

Aqui está o que parece logo após o boot. A única coisa que falta é o endereço xenbr0 IPv4 (e os dados de roteamento / DNS, mas você não pode ver isso na saída do 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)
    
por Darhuuk 01.06.2013 / 15:55

3 respostas

2

Consegui corrigir meu problema alterando dois arquivos. Em primeiro lugar, como sugerido por Eric Carvalho, eu descomentei auto eth0 in /etc/networking/interfaces . (Note que isso é bastante estranho, vários tutoriais online parecem sugerir que isso não deveria ser necessário para o Xen.)

Isso, por si só, não corrigiu a inicialização lenta. Parece que na inicialização ainda demorou alguns segundos até que as interfaces surgissem e enquanto isso o Ubuntu já estava preso em espera de 60 segundos. Isso eu consertei modificando o tempo de atraso em /etc/init/failsafe.conf de 60 segundos para 1 segundo. (Descobri esse arquivo pelo Google, não sei exatamente qual era exatamente isso).

    
por Darhuuk 11.06.2013 / 11:45
14

Você tem:

address         192.168.1.200 # the IP address of the Ethernet port

e relatar que esta é a linha que não está funcionando. Você está ciente, das 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.

Você adicionou os comentários de fim de linha para a pergunta, ou você realmente os tem em seu arquivo /etc/network/intefaces ? Se sim, tente removê-los.

    
por Robie Basak 06.06.2013 / 12:57
2

Talvez, apesar de ter removido o pacote do gerenciador de rede, você ainda tenha o arquivo /etc/NetworkManager/NetworkManager.conf contendo

[ifupdown]
managed=true

que faz com que ifup não ative interfaces automaticamente.

Se esta é a causa do problema, sugiro dpkg --purge network-manager ou configuração managed=false .

Eu enviei um relatório de bug sobre isso: link

    
por jdthood 05.06.2013 / 10:58