Назад | Перейти на главную страницу

Виртуальная сеть в KVM нарушает доступ в Интернет

Я настроил виртуальную сеть на своей рабочей станции CentOS 7, и основной физический сетевой интерфейс подключен в соответствии с эта статья RHEL.

libvirtd работает успешно, но после перезагрузки происходит следующее

virsh net-list --all
Name                 State      Autostart     Persistent
----------------------------------------------------------
default              inactive   yes           yes

Если я попытаюсь запустить мост по умолчанию. Вот что я получаю

virsh net-start default 
error: Failed to start network default
error: internal error: Network is already in use by interface virbr0

Так что поставьте виртуальный мост (virbr0) вниз и удалил мост по умолчанию.

ifconfig virbr0 down
virsh net-start default 
Network default started

virsh net-list --all
Name                 State      Autostart     Persistent
----------------------------------------------------------
default              active     yes           yes

Когда виртуальный мост (по умолчанию) становится активным, я полностью теряю подключение к Интернету на моем хосте KVM. Не удается проверить связь с www.google.com

Есть идеи, почему это может происходить, или произошла ошибка конфигурации? У меня есть следующие скрипты интерфейса

Основной физический интерфейс: ifcfg-enp1s0

TYPE="Ethernet"
NAME="enp1s0"
HWADDR=2c:27:d7:ef:fd:1e
UUID="f7fb856b-1879-411d-b8a4-0ef8c93303dc"
DEVICE="enp1s0"
ONBOOT="yes"
BOOTPROTO=dhcp
BRIDGE=virbr0
NM_CONTROLLED=no

Интерфейс виртуального моста: ifcfg-virbr0

DEVICE=virbr0
ONBOOT=yes
TYPE=Bridge
BOOTPROTO=none
IPADDR=192.168.3.52
NETMASK=255.255.255.0
GATEWAY=192.168.3.1
STP=on
DELAY=0
NM_CONTROLLED=no

Удалите автозапуск из определения сети. Он запускается администратором сети. Две конфигурации могут противоречить друг другу. virsh может сообщить, что взаимодействие неактивно, даже если оно запущено. Что бы вы ни определили для своего моста, его необходимо объявить в libvirt. Вам нужно будет убедиться, что настройка сети завершена.

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

Я предпочитаю определять мост с помощью инструментов хоста. Это гарантирует, что там ничего не изменится, и позволяет мне управлять сетью с помощью одного набора инструментов.

Обычно я тестирую сеть поэтапно.

  • Доступ к хосту
  • Доступ к локальной сети, к которой подключен хост
  • Доступ к сети / Интернету

Кто-то создал ручную настройку для virbr0 интерфейс виртуального моста, которым, как предполагается, управляет libvirt. В инструкциях, на которые вы ссылаетесь, указано, что вместо этого он должен быть создан для br0 интерфейс моста.

Вам следует изменить все вхождения virbr0 в тех ifcfg- файлы в br0. Имя на самом деле не имеет значения, но оно не должно быть virbr0, который является интерфейсом, управляемым libvirt.