Маршрутизация второго публичного IP на несколько виртуальных машин

Я и мой друг арендовали выделенный сервер и использовали KVM и libvirt для создания виртуальных машин, которые мы могли бы использовать. (мы используем Debian Jessie на хосте)

мы приобрели два дополнительных IP-адреса (по одному для каждого из нас), что дает нам всего три IP-адреса, включая исходный IP-адрес хоста.

IP-адрес узла 195.154.XXX.221 со шлюзом 195.154.XXX.1, а наши дополнительные IP-адреса - 212.129.XXX.XXX в другой подсети с тем же шлюзом. Наш провайдер предоставил нам mac-адреса, которые должны использоваться на устройстве с назначенным дополнительным IP-адресом.

у нас нет проблем с назначением IP-адресов одной виртуальной машине, однако мы не знаем, каким образом у нас будет несколько виртуальных машин на одном IP-адресе. Мост не будет работать из-за того, что все виртуальные машины должны иметь одинаковый mac-адрес.

2 ответа

Решение

Это было опубликовано давно, но я уже несколько раз использовал эту конфигурацию с online.net, и я знаю, что другие провайдеры используют ту же конфигурацию, поэтому я обновлю свое решение.

Для этого сценария у меня будет один хост и две гостевые машины. Я собираюсь показать конфигурацию сети для Debian, приспособиться к вашей ОС.

**** ЕСЛИ ВАШ ДОПОЛНИТЕЛЬНЫЙ IP НАХОДИТСЯ ЗА ВАШИМ ШЛЮЗОМ IP SUBNET ПОСМОТРЕТЬ НИЖЕ ПОЧТЫ ПОСЛЕ УСТАНОВКИ МОСТА ****

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

XXX.YYY.ZZZ.101 - 52: 54: 00: 00: 00: 01

XXX.YYY.ZZZ.102 - 52: 54: 00: 00: 00: 02

XXX.YYY.ZZZ.103 - 52: 54: 00: 00: 00: 03

На вашем хосте установите мост в вашей сети с IP-адресом вашего хоста, назначенным так.

iface eth0 inet manual

auto vmbr0
iface vmbr0 inet static
    address XXX.YYY.ZZZ.101
    netmask 255.255.255.0
    gateway XXX.YYY.ZZZ.1
    bridge_ports eth0
    bridge_stp off
    bridge_fd 0

Теперь, когда вы создаете свои виртуальные машины, настраивайте их с помощью сетевого интерфейса vmbr0. На каждой вашей виртуальной машине установите следующую конфигурацию для вашей сети.

auto eth0
iface eth0 inet static
    address XXX.YYY.ZZZ.102
    netmask 255.255.255.0
    gateway XXX.YYY.ZZZ.1

Это должно передать ваши дополнительные IP вашей виртуальной машине! Потрясающие!

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

IP шлюза: XXX.YYY.100.1

Дополнительный IP1: XXX.YYY.200.1

Если вы окажетесь в такой ситуации на вашей виртуальной машине, вам нужно будет вручную добавить маршрут к IP-адресу шлюза и назначить IP-адрес вашему интерфейсу при загрузке.

В Debian вы должны сделать следующее в вашем /etc/network/interfaces для достижения этого:

auto eth0
iface eth0 inet manual
    pre-up ip l set dev eth0 up
    pre-up ip a add XXX.YYY.200.1 dev eth0
    pre-up ip r add XXX.YYY.100.1 dev eth0
    pre-up ip r add default via XXX.YYY.100.1
    post-down ip l set dev eth0 down

Надеюсь, что это краткое и помогает кому-то.

Вы должны настроить DNAT на хосте для перенаправления портов с внешнего IP-адреса на виртуальные машины в частной сети виртуальных машин, которую вы настроили.

Вы не можете поделиться IP на уровне 3.

Другие вопросы по тегам