Я использую libvirt и в настоящее время имею сетевую настройку NAT, где каждый хост имеет статический IP-адрес. Конфигурация сети выглядит так:
<network connections='4'>
<name>default</name>
<uuid>d5a1865e-fd35-4b15-994b-8c5f098e0b5a</uuid>
<forward mode='nat'>
<nat>
<port start='1024' end='65535'/>
</nat>
</forward>
<bridge name='virbr0' stp='on' delay='0'/>
<mac address='52:54:00:59:68:25'/>
<ip address='10.0.0.1' netmask='255.255.255.0'>
<dhcp>
<range start='10.0.0.2' end='10.0.0.254'/>
<host mac='52:54:00:18:41:51' name='host0' ip='10.0.0.2'/>
<host mac='52:54:00:0a:20:20' name='host1' ip='10.0.0.3'/>
<host mac='52:54:00:f1:05:fd' name='host2' ip='10.0.0.4'/>
<host mac='52:54:00:de:74:22' name='host3' ip='10.0.0.5'/>
</dhcp>
</ip>
</network>
Однако я хотел бы назначить внутреннюю подсеть для каждой виртуальной машины, где каждый IP в этой подсети будет маршрутизироваться в виртуальную машину. Единственный трафик на эти адреса и из них - это виртуальные машины.
Возможно ли это с помощью сети libvirt по умолчанию, и если да, возможно ли это сделать поверх существующей сети (aka не нужно создавать новую сеть)?
Это возможно, если вы используете интерфейс моста, потому что он действует как неуправляемый коммутатор. Таким образом, вы можете использовать его для связывания как можно большего количества IP-адресов внутри виртуальной машины.
Пример
/etc/network/interfaces (On host):
auto br0
iface br0 inet static
address 10.0.0.1/24
netmask 255.0.0.0
bridge_stp on
bridge_maxwait 0
[d4 ] /etc/network/interfaces (В виртуальных машинах): auto eth0
iface eth0 inet static
address 10.0.0.1/24
netmask 255.0.0.0
Конфигурация VM:
<interface type='bridge'>
<mac address='xx:xx:xx:xx:xx:xx'/>
<source bridge='br0'/>
</interface>
Это возможно, если вы используете интерфейс моста, потому что он действует как неуправляемый коммутатор. Таким образом, вы можете использовать его для связывания как можно большего количества IP-адресов внутри виртуальной машины.
Пример
/etc/network/interfaces (On host):
auto br0
iface br0 inet static
address 10.0.0.1/24
netmask 255.0.0.0
bridge_stp on
bridge_maxwait 0
/etc/network/interfaces (В виртуальных машинах):
auto eth0
iface eth0 inet static
address 10.0.0.1/24
netmask 255.0.0.0
Конфигурация VM:
<interface type='bridge'>
<mac address='xx:xx:xx:xx:xx:xx'/>
<source bridge='br0'/>
</interface>
Это возможно, если вы используете интерфейс моста, потому что он действует как неуправляемый коммутатор. Таким образом, вы можете использовать его для связывания как можно большего количества IP-адресов внутри виртуальной машины.
Пример
/etc/network/interfaces (On host):
auto br0
iface br0 inet static
address 10.0.0.1/24
netmask 255.0.0.0
bridge_stp on
bridge_maxwait 0
/etc/network/interfaces (В виртуальных машинах):
auto eth0
iface eth0 inet static
address 10.0.0.1/24
netmask 255.0.0.0
Конфигурация VM:
<interface type='bridge'>
<mac address='xx:xx:xx:xx:xx:xx'/>
<source bridge='br0'/>
</interface>