Host ma dostępne jedno zewnętrzne IP, więc ustawiłem moich gości KVM na NAT.
Jak skonfigurować przekierowanie portów, aby przekazywać gościom niektóre żądania z zewnątrz?
Nie mogłem znaleźć żadnej dokumentacji na ten temat. Prawdopodobnie najbliższą odpowiedzią jest ta odpowiedź , ale wspomniano również, że istnieje łatwiejszy sposób na to w libvirt 0.8.3. Czy ktoś wie o bardziej aktualnym sposobie zrobienia tego?
Odpowiedzi:
Oto lepszy sposób skonfigurowania przekierowania portów za pomocą skryptu przechwytującego ( źródła ).
W
/etc/libvirt/hooks/qemu
:Powinieneś ustawić cztery zmienne u góry, aby pasowały do twojej konfiguracji libvirt.
Będziesz musiał zrestartować libvirt-bin, który na Ubuntu odbywa się za pomocą:
musisz ponownie uruchomić gościa. W systemie Ubuntu należy dostosować,
/etc/apparmor.d/usr.sbin.libvirtd
aby umożliwić wykonanie skryptu przechwytującego:Obok
dodać
Następnie załaduj ponownie zbroję:
Prawdopodobnie istnieje sposób na automatyczną konfigurację
$GUEST_IPADDR
za pomocą virsh / dumpxml / iface-dumpxml, ale nie znalazłem tego. Alternatywnie adres IP można ustawić statycznie w sieci xml: dokumentacja .O ile wiem, filtrów sieciowych można używać tylko do ograniczania tego, co dzieje się w sieci wirtualnej, i nie są one przydatne do przekierowywania portów.
źródło
/etc/libvirt/hooks/** rmix,
domyślnie wiersz w pliku konfiguracyjnym apparmor i wydaje się, że ma ten sam efekt. Mógłbym uruchomić skrypt bez modyfikowania konfiguracji apparmor.Jestem w podobnej sytuacji. Mam Windows Server działający w KVM w prywatnej sieci NATed, która jest podłączona na hoście za pośrednictwem interfejsu virbr0. Chcę uzyskać dostęp do maszyny wirtualnej za pośrednictwem zdalnego pulpitu. Więc muszę przekierować ruch do portu 3389 (RDP) do portu maszyny wirtualnej 3389. Osiągnąłem to z pewnymi regułami iptable.
Oczywiście należy przyjąć HOST-IP, VM-IP i VM-NET. Jednak bałagan z iptables i libvirt jest trudny. W tej chwili szukam rozwiązania, aby uzyskać dostęp do Internetu na mojej maszynie wirtualnej, którą straciłem z powodu bałagania się regułami iptable :-(
źródło
Uważam, że odpowiedź, do której się odwołujesz, nadal pokazuje odpowiednie reguły iptables. Jednak teraz możesz użyć haka skryptu do tworzenia i niszczenia reguł podczas uruchamiania i zatrzymywania maszyn wirtualnych. Jak powiedział Izaak w poprzedniej odpowiedzi, w obecnym pakiecie libvirt są również filtry sieciowe, ale nie jestem pewien, jak, a nawet czy można ich użyć do otwarcia portów dla gości NAT.
źródło
jak konfigurowana jest sieć dla gości? jeśli jest zmostkowane, wystarczy przekierować porty na adresy IP gości. Jeśli twoi goście stoją za kolejnym NAT, jeden libvirt konfiguruje, to się komplikuje
ale w każdym razie tutaj traktujesz maszyny wirtualne jak maszynę fizyczną
źródło