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

Как настроить сеть на KVM, используя только публичные IP?

У меня есть KVM-сервер и две виртуальные машины. У меня есть один основной IP и два дополнительных «одиночных» IP (не подсеть). Мне не нужна локальная сеть с частными адресами на моем KVM, но я хочу назначить свои общедоступные IP-адреса от поставщика (который я купил) виртуальным машинам, и я хочу управлять маршрутизацией этих IP-адресов на хосте KVM, не на стороне поставщика (так что не просто мост от поставщика, но, возможно, мост от моего хоста к виртуальным машинам)

Все руководства, которые я нашел в Интернете, немного сбивают с толку, потому что все они разные, решают одну и ту же проблему (но все равно не работают для меня).

Обновить:

это сработает?

auto  eth0
iface eth0 inet manual

auto vmbr0
iface vmbr0 inet static
  address 176.x.y.133 (not 192.168.1.1)
  netmask 255.255.255.224 (not 255.255.255.0)
  gateway 176.x.y.129 (Provider's GW IP)
  bridge_ports eth0
  bridge_stp off
  bridge_fd 0

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

Поместите что-то вроде следующего в /etc/network/interfaces:

iface eth0 inet manual
iface br0 inet static
    bridge_ports eth0
    bridge_stp no
    bridge_fd 0
    bridge_maxwait 0
    address 192.168.1.2
    netmask 255.255.255.0
    gateway 192.168.1.1
    dns-nameservers 192.168.1.2 8.8.8.8 8.8.4.4
    dns-search example.com

Конечно, перенастройка для вашей конкретной установки.

Затем настройте свою виртуальную машину для подключения к br0 и он будет вести себя так, как будто он напрямую подключен к кабелю, входящему в eth0.

т.е. ваша гостевая виртуальная машина будет выглядеть так:

<interface type='bridge'>
  <mac address='52:54:de:ad:be:ef'/>
  <source bridge='br0'/>
  <model type='virtio'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>