У меня есть 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>