Наконец-то я нашел правильный способ достичь поставленной цели. Это подразумевает мостовое соединение Linux, потому что я не смог решить проблему с сетью libvirt.
шаги:
- Определите интерфейсы KVM VM. Вероятно, имена интерфейсов начинаются с
vnet*
В этом примере vnet0
иvnet1
Создайте мост Linux с:
brctl addbr virbr1
Подключите физический интерфейс и интерфейсы виртуальных машин KVM к новому мосту:
ВНИМАНИЕ: если вы подключены к физическому серверу через сеть (SSH, Telnet и т. Д.), Вы потеряете соединение. Используйте терминал или альтернативный метод (например, другой интерфейс с возможностью подключения).
brctl addif virbr1 vnet0
brctl addif virbr1 vnet1
brctl addif virbr1 eth0
- Настройте физический интерфейс сервера, не имея назначенного IP-адреса:
В CentOS 6.5 отредактируйте файл /etc/sysconfig/network-scripts/ifcfg-eth0
со следующим содержимым:
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
NAME=eth0
TYPE=Ethernet
IPV6INIT=no
USERCTL=no
- Настройте физический серверный мост, чтобы иметь IP-адрес:
В CentOS 6.5 отредактируйте файл /etc/sysconfig/network-scripts/ifcfg-virbr1
со следующим содержимым:
DEVICE=virbr1
BOOTPROTO=none
ONBOOT=yes
IPADDR=<physical_server_public_ip_address>
NETMASK=<physical_server_public_ip_netmask>
GATEWAY=<physical_server_gateway_ip_address>
NAME=virbr1
TYPE=Ethernet
IPV6INIT=no
USERCTL=no
NM_CONTROLLED=no
DNS1=<physical_server_primary_dns_server_ip_address>
DNS2=<physical_server_secondary_dns_server_ip_address>
- Перезагрузите физический сервер сети:
service network restart
ПРИМЕЧАНИЕ: вы должны восстановить физическое сетевое соединение с сервером (через интерфейс и мост)
- Настройте сетевой интерфейс виртуальных машин KVM:
Это зависит от ОС виртуальных машин. В любом случае, он должен включать как минимум IP-адрес, маску сети и шлюз по умолчанию. Очевидно, DNS-серверы завершат настройку.
Все эти конфигурации являются статическими и могут быть заменены назначением DHCP. В этом случае могут быть полезны MAC-адреса моста и интерфейсы виртуальной машины KVM.