Почему / etc / network / interfaces игнорируется?

10

Я искал в интернете последние 2 часа и не могу найти решение следующей проблемы.

Я только что установил Xen в свежем Xubuntu 13.04 и для настройки сети мне пришлось удалить network_manager. Итак, вся конфигурация сети выполняется через / etc / network / interfaces. По крайней мере, так должно быть. Однако кажется, что то, что я вставил туда, просто игнорируется: мой интерфейс xenbr0 не получает назначенный адрес IPv4, нет шлюза по умолчанию и не настроен сервер имен.

Вот что находится в файле / 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

Чтобы исправить мое сетевое соединение, я запускаю небольшой скрипт «fix»:

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

Я хотел бы исправить в основном, хотя. Прямо сейчас загрузка занимает не менее 1 минуты, потому что система ожидает работающего сетевого подключения.

Изменить : я также должен был добавить следующее в /etc/resolvconf/resolv.conf.d/base и запустить sudo resolvconf -u:

nameserver 192.168.1.1

Без этого я могу только пропинговать IP-адреса, никакие запросы DNS не проходят через. Это то, что убедило меня, что файл интерфейсов полностью игнорируется.

Редактировать 2 : Делать sudo restart networkingили sudo /etc/init.d/networking restartне делать ничего.

Редактировать 3 : некоторая дополнительная информация. Вот как ifconfigдолжен выглядеть вывод (рабочая сеть / подключение к интернету):

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)

Вот как это выглядит сразу после загрузки. Отсутствует только IPv4-адрес xenbr0 (и данные маршрутизации / DNS, но вы не можете увидеть это в выводе 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
источник
Проверьте init.d и другие сценарии запуска на предмет отсутствия информации об инициализации сетевого интерфейса. Дайте нам знать, что вы нашли.
RGS
Когда вы печатаете /etc/init.d/networking restart, вы получаете конфигурацию файла интерфейсов?
ortang
Попробуй с auto eth0и iface eth0 inet manual.
Эрик Карвалью
Когда вы запускаете ifconfigсразу после загрузки, есть ли интерфейс?
Эрик Карвалью
@ortang: Нет, я тоже пробовал, ничего не происходит.
Darhuuk

Ответы:

16

У тебя есть:

address         192.168.1.200 # the IP address of the Ethernet port

и сообщить, что это линия, которая не работает. Вы знаете, из интерфейсов (5), что:

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

Добавили ли вы комментарии к концу строки для вопроса, или у вас есть их в вашем /etc/network/intefacesфайле? Если это так, попробуйте удалить их.

Роби Басак
источник
@Darhuuk Роби прав. Я думаю, что это не так в вашем файле интерфейсов.
Эрик Карвалью
Ах, приятно найти. Те комментарии, которые были добавлены установкой Xen, действительно находятся в конце строки. Раскомментирование, auto eth0кажется, исправило мою проблему, хотя комментарии все еще там.
Дархуук
Кажется, что встроенные комментарии также не поддерживаются в / etc / network / interfaces. Спасибо, это позволило мне заставить мой второй сетевой интерфейс работать в моем VPS.
Эшер
3

Возможно, несмотря на удаление пакета сетевого менеджера, у вас все еще есть файл, /etc/NetworkManager/NetworkManager.confсодержащий

[ifupdown]
managed=true

который вызывает ifupне автоматически вызывать интерфейсы.

Если это является причиной проблемы, то я предлагаю либо dpkg --purge network-managerлибо настройку managed=false.

Я подал отчет об ошибке по этому поводу: https://bugs.launchpad.net/ubuntu/+source/ifupdown/+bug/1187693

jdthood
источник
Я проверю это сегодня вечером, когда вернусь домой. Тем не менее, интерфейсы работают после загрузки, но не правильно настроены. Запуск вручную sudo restart networkingтакже не решает проблему.
Дархуук
@jdthood, разве ты не хочешь сказать, что ifupdown может уже быть установлен managed=falseи ему нужно установить его, чтобы trueон начал использовать настройки в /etc/network/interfaces?
Алаа Али
@ Алаа, нет, я не имела в виду то, что ты предлагаешь. В Ubuntu ifupфактически просматривает /etc/NetworkManager/NetworkManager.confи воздерживается от автоматических обновлений интерфейсов, если NM настроен для настройки этих интерфейсов, используя мои средства « [ifupdown] managed=true».
Jdthood
Я только что попробовал с обоими управляемыми истиной и ложью (это было то, что было установлено), ни один из них не работал. Затем сделал dpkg --purge, который тоже не помог, мой / etc / network / interfaces по-прежнему не учитывается.
Дархуук
3

Мне удалось исправить мою проблему, изменив 2 файла. Прежде всего, как предложил Эрик Карвалью, я оставил комментарий auto eth0в /etc/networking/interfaces. (Обратите внимание, что это довольно странно, некоторые онлайн-учебники, похоже, не требуют этого для Xen.)

Это само по себе не исправило медленную загрузку, хотя. Похоже, что при запуске прошло еще несколько секунд, прежде чем интерфейсы появились, а Ubuntu уже застрял в 60-секундном ожидании простоя. Это я исправил, изменив время задержки /etc/init/failsafe.confот 60 секунд до 1 секунды. (Я узнал об этом файле через Google, понятия не имею, какой именно он был.)

Darhuuk
источник