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

маршрутизация второго общедоступного 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-адрес.

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

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

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

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

**** ЕСЛИ ВАШ ДОПОЛНИТЕЛЬНЫЙ IP-адрес НАХОДИТСЯ ВНЕ ВАШЕГО IP-ПОДСЕТИ ШЛЮЗА, СМОТРИТЕ СНИЗУ ПОСЛЕ НАСТРОЙКИ МОСТА ****

Когда вам дадут свой 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

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