Chciałbym ustawić konfigurację sieci gości (adres IP, podsieć, brama, adres rozgłoszeniowy) z systemu hosta. Użyta konfiguracja sieci jest w bridge
trybie. Jak mogę skonfigurować sieć z hosta zamiast konfigurować samego klienta do statycznej konfiguracji sieci?
Jeśli wykonam:
virsh edit vm1
jest też <network>
blok i próbowałem skonfigurować interfejs sieci stamtąd, ale niestety gość VM nie wydaje się go używać i jako taki jest offline w sieci (ponieważ używa tylko automatycznej konfiguracji sieci) ... Gość Maszyny wirtualne są oparte zarówno na systemie Linux, jak i Windows. Każda pomoc byłaby bardzo mile widziana.
Odpowiedzi:
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
lubroute
możesz użyć wbudowanejdnsmasqd
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:
Następnie edytuj sieć
Znajdź
<dhcp>
sekcję, ogranicz zakres dynamiczny i dodaj wpisy hosta dla swoich maszyn wirtualnychNastę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:
... i zrestartuj klienta DHCP maszyny wirtualnej.
Jeśli to nadal nie działa, być może będziesz musiał
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.
źródło
virsh net-update
to dobre polecenie dla ciebie (nie musisz restartować / niszczyć sieci itp.)patrz: https://www.redhat.com/archives/libvir-list/2012-September/msg01380.html
źródło
Byłem w stanie
dnsmasq
„zobaczyć” nowo dodane mapowanie IP-MAC, po prostu wysyłając-HUP
sygnał dodnsmasq
procesu. Następnie wystarczyło zrestartować nowego gościa, aby przypisać mu poprawny adres IP, bez potrzeby ponownego uruchamianialibvirtd
ani samej sieci.Oficjalna dokumentacja libvirt ( http://wiki.libvirt.org/page/Networking#Applying_modifications_to_the_network ) wspomina o tym nieoficjalnym skrypcie Perla, który automatyzuje cały proces: https://gist.github.com/bendiken/032ea1bddb9ffafe98b4
Sam nie próbowałem tego skryptu, ponieważ zorientowałem się, że plik hostów został już zaktualizowany i wystarczyło tylko wysłanie sygnału -HUP.
Na hoście działa Debian 7.8, a wersje pakietów to:
źródło