Я использую Ubuntu 16.04 на моем сервере, который используется для виртуализации. Он работает с несколькими гостями Ubuntu 16.04, используя программное обеспечение qemu-kvm для виртуализации. Сервер использует libvirt для управления гостем (автозапуск, запуск / остановка и т.д.), И у меня есть все настройки гостя для автозапуска при загрузке хоста.

Когда хост загружается, все кажется нормальным без каких-либо ошибок, и интернет работает как надо. Но когда я открываю VNC-соединение с любым из хостов во время его загрузки, я вижу, что сеть не работает (не удалось запустить Raise network interface.). Это происходит только при холодной загрузке. Под этим я подразумеваю, что это происходит только тогда, когда я загружаю сервер, и гость автоматически загружается после того, как хост подключен. Когда это происходит, я могу просто перезапустить хост вручную, и он будет работать без проблем. Я также могу просто перезапустить определенные интерфейсы (ifdown -f eth0 && ifup eth0), чтобы интернет снова заработал.

Большинство гостей имеют только один интерфейс (eth0) и запрашивают статический IPv4 и статический IPv6-адрес у маршрутизатора. Одна вещь, которую я заметил, состоит в том, что у маршрута IPv6 есть опция "expire x секунд", в то время как у IPv4 нет. Это приводит к тому, что гость не будет доступен через IPv6, когда истекает маршрут. Это истекает там из-за сбоя при загрузке сетевых интерфейсов Raise?

Я пытаюсь выяснить, почему у всех гостей возникают проблемы с настройкой интерфейса при холодной загрузке. Очень раздражает необходимость (пере) запускать всех гостей вручную. Системный журнал хостов не показывает никаких ошибок, связанных с сетевым сервисом, и у гостей есть только эта ошибка: «RTNETLINK ответы: файл существует» без дальнейших ошибок.

1 ответ1

0

Сетевой сервис в Ubuntu настраивает интерфейс на гостевой. Связь установлена быстро, но фактическая инициализация интерфейса еще не завершена. Это заставляет сетевые сервисы принимать объявления соседей и маршрутизаторов.

Когда у вас есть правило шлюза в файле интерфейсов, это может вызвать проблемы, когда интерфейс полностью инициализирован, и они были приняты объявления маршрутизатора до того, как это произошло. Служба пытается добавить маршрут по умолчанию на основе вашего правила шлюза, но для этого конкретного шлюза существует маршрут по умолчанию, назначенный через RA (объявление маршрутизатора).

Чтобы решить эту проблему, я просто удалил шлюз из файла интерфейсов, так как шлюз автоматически назначается через RA. Другим исправлением может быть отключение принятия RA для этого конкретного интерфейса, значения по умолчанию или всех интерфейсов с помощью:

pre-up net.ipv6.conf.device.accept_ra=0

где "устройство" - это "все", "по умолчанию" или фактическое имя устройства (eth0, em0 и т. д.).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .