Настройте общедоступные IP-адреса в виртуальных машинах KVM

12

У меня есть физический сервер под управлением CentOS 6.5 с одним интерфейсом, подключенным к Интернету (с одним общедоступным IP-адресом). Внутри этого сервера у меня есть две виртуальные машины, созданные с помощью KVM через libvirt, с одним интерфейсом для каждой. Я хочу назначить один публичный IP-адрес каждой виртуальной машине и продолжить использовать соединение с физическим сервером.

Эта картина иллюстрирует то , что я в черном , и что я хочу в синем цвете: Топология сети.

Я пробовал различные способы, такие как добавление моста Linux с brctlподключением физического интерфейса сервера и виртуальных интерфейсов обеих виртуальных машин, но это не сработало, и я потерял связь с физическим сервером.

Я открыт для использования мостов Linux или libvirt.

Как я могу получить публичные IP-адреса как на виртуальных машинах, так и на физическом сервере?

выйти
источник
Попробуйте добавить второй адаптер к виртуальным машинам и подключить их к внутренней сети сервера.
Щербак
какая внутренняя сеть сервера? во всяком случае, я хочу настройку вопроса, если это возможно.
выход
Предположим, это поможет: [KVM - создать виртуальную машину с интерфейсами с двумя мостами] ( askubuntu.com/questions/581771/… ), [сетевой мост KVM с двумя сетевыми картами ] ( serverfault.com/questions/130134/… )
Щербак
еще раз, я бы предпочел иметь только один интерфейс на ВМ, если это возможно.
выход
Я ответил на аналогичный вопрос о хосте и госте Debian KVM вчера. unix.stackexchange.com/questions/245073/… - за исключением мелких деталей настройки интерфейса, они должны быть похожи на centos.
cas

Ответы:

4

Наконец-то я нашел правильный способ достичь поставленной цели. Это подразумевает мостовое соединение Linux, потому что я не смог решить проблему с сетью libvirt.

шаги:

  1. Определите интерфейсы KVM VM. Вероятно, имена интерфейсов начинаются сvnet*

В этом примере vnet0иvnet1

  1. Создайте мост Linux с:

    brctl addbr virbr1

  2. Подключите физический интерфейс и интерфейсы виртуальных машин KVM к новому мосту:

ВНИМАНИЕ: если вы подключены к физическому серверу через сеть (SSH, Telnet и т. Д.), Вы потеряете соединение. Используйте терминал или альтернативный метод (например, другой интерфейс с возможностью подключения).

brctl addif virbr1 vnet0
brctl addif virbr1 vnet1
brctl addif virbr1 eth0
  1. Настройте физический интерфейс сервера, не имея назначенного IP-адреса:

В CentOS 6.5 отредактируйте файл /etc/sysconfig/network-scripts/ifcfg-eth0со следующим содержимым:

DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
NAME=eth0
TYPE=Ethernet
IPV6INIT=no
USERCTL=no
  1. Настройте физический серверный мост, чтобы иметь 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>
  1. Перезагрузите физический сервер сети:

service network restart

ПРИМЕЧАНИЕ: вы должны восстановить физическое сетевое соединение с сервером (через интерфейс и мост)

  1. Настройте сетевой интерфейс виртуальных машин KVM:

Это зависит от ОС виртуальных машин. В любом случае, он должен включать как минимум IP-адрес, маску сети и шлюз по умолчанию. Очевидно, DNS-серверы завершат настройку.

Все эти конфигурации являются статическими и могут быть заменены назначением DHCP. В этом случае могут быть полезны MAC-адреса моста и интерфейсы виртуальной машины KVM.

выйти
источник