Wreszcie znalazłem właściwy sposób na osiągnięcie celu pytania. Sugeruje to mostkowanie Linuksa, ponieważ nie byłem w stanie rozwiązać problemu z siecią libvirt.
Kroki:
- Zidentyfikuj interfejsy VMM KVM. Prawdopodobnie nazwy interfejsów zaczynają się od
vnet*
W tym przykładzie vnet0
ivnet1
Utwórz most linuksowy za pomocą:
brctl addbr virbr1
Dołącz interfejs fizyczny i interfejsy maszyn wirtualnych KVM do nowego mostu:
OSTRZEŻENIE: jeśli jesteś podłączony do fizycznego serwera przez sieć (SSH, Telnet itp.), Utracisz połączenie. Użyj terminala lub metody alternatywnej (jak inny interfejs z łącznością).
brctl addif virbr1 vnet0
brctl addif virbr1 vnet1
brctl addif virbr1 eth0
- Skonfiguruj fizyczny interfejs serwera, który nie ma przypisanego adresu IP:
W CentOS 6.5 edytuj plik /etc/sysconfig/network-scripts/ifcfg-eth0
z następującą zawartością:
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
NAME=eth0
TYPE=Ethernet
IPV6INIT=no
USERCTL=no
- Skonfiguruj fizyczny most serwera, aby miał adres IP:
W CentOS 6.5 edytuj plik /etc/sysconfig/network-scripts/ifcfg-virbr1
z następującą zawartością:
DEVICE=virbr1
BOOTPROTO=none
ONBOOT=yes
IPADDR=<physical_server_public_ip_address>
NETMASK=<physical_server_public_ip_netmask>
GATEWAY=<physical_server_gateway_ip_address>
NAME=virbr1
TYPE=Ethernet
IPV6INIT=no
USERCTL=no
NM_CONTROLLED=no
DNS1=<physical_server_primary_dns_server_ip_address>
DNS2=<physical_server_secondary_dns_server_ip_address>
- Uruchom ponownie fizyczny serwer sieciowy:
service network restart
UWAGA: powinieneś odzyskać fizyczną łączność z serwerem (poprzez interfejs i most)
- Skonfiguruj interfejs sieciowy maszyn wirtualnych KVM:
Zależy to od systemu operacyjnego maszyn wirtualnych. W każdym razie powinien zawierać przynajmniej adres IP, maskę sieci i domyślną bramę. Oczywiście serwery DNS zakończą konfigurację.
Wszystkie te konfiguracje są statyczne i można je zastąpić przypisaniem DHCP. W takim przypadku przydatne mogą być adresy MAC mostu i interfejsy maszyny wirtualnej KVM.