Jeśli nie chcesz wykonywać żadnej konfiguracji wewnątrz gościa, jedyną opcją jest serwer DHCP, który rozdaje statyczne adresy IP. Jeśli używasz bridge
trybu, prawdopodobnie będzie to jakiś zewnętrzny serwer DHCP. Zapoznaj się z instrukcją, aby dowiedzieć się, jak obsługiwać statyczne dzierżawy.
Ale przynajmniej w trybach przekazywania nat
lub route
możesz użyć wbudowanej dnsmasqd
biblioteki libvirt (nowsze wersje libvirtd obsługują opcję „dhcp-hostsfile” dnsmasq). Oto jak:
Najpierw sprawdź adresy MAC maszyn wirtualnych, którym chcesz przypisać statyczny adres IP:
virsh dumpxml $VM_NAME | grep 'mac address'
Następnie edytuj sieć
virsh net-list
virsh net-edit $NETWORK_NAME # Probably "default"
Znajdź <dhcp>
sekcję, ogranicz zakres dynamiczny i dodaj wpisy hosta dla swoich maszyn wirtualnych
<dhcp>
<range start='192.168.122.100' end='192.168.122.254'/>
<host mac='52:54:00:6c:3c:01' name='vm1' ip='192.168.122.11'/>
<host mac='52:54:00:6c:3c:02' name='vm2' ip='192.168.122.12'/>
<host mac='52:54:00:6c:3c:03' name='vm3' ip='192.168.122.12'/>
</dhcp>
Następnie uruchom ponownie maszynę wirtualną (lub uruchom ponownie klienta DHCP, np. ifdown eth0; ifup eth0
)
Aktualizacja: Widzę raporty, że zmiana może nie wejść w życie po „virsh net-edit”. W takim przypadku wypróbuj to po edycji:
virsh net-destroy $NETWORK_NAME
virsh net-start $NETWORK_NAME
... i zrestartuj klienta DHCP maszyny wirtualnej.
Jeśli to nadal nie działa, być może będziesz musiał
- zatrzymaj usługę libvirtd
- zabij wszystkie procesy dnsmasq, które są jeszcze aktywne
- uruchom usługę libvirtd
Uwaga: W żaden sposób host KVM nie może zmusić maszyny wirtualnej z nieznanym systemem operacyjnym i nieznaną konfiguracją do użycia określonej konfiguracji sieci. Ale jeśli wiesz, że maszyna wirtualna używa określonego protokołu konfiguracji sieci - powiedzmy DHCP - możesz z niej skorzystać. Tak zakłada ten post.
Niektóre systemy operacyjne (np. Niektóre dystrybucje Linuksa) pozwalają również na przekazywanie opcji konfiguracji sieci do gościa, np. Poprzez wiersz poleceń jądra. Ale to jest bardzo specyficzne dla systemu operacyjnego i nie widzę żadnej przewagi nad metodą DHCP.