Proxmox VE 9 • Serwery dedykowane • Poradnik sieciowy

Jak nadać Proxmox VE gościom publiczny adres IP

Twój serwer został przekazany z pierwszym adresem IPv4 skonfigurowanym na hoście i niczym więcej. Każdy inny adres na Twoim koncie należy do Ciebie i możesz go przydzielić. Ten poradnik omawia trzy sposoby zrobienia tego na maszynie Server Room: mostkowany, w którym gość znajduje się w naszej sieci z własnym adresem MAC; trasowany, w którym host przekazuje dla niego ruch; oraz prywatną podsieć za Twoim adresem podstawowym. Każda konfiguracja tutaj została przetestowana w naszej własnej sieci przed publikacją.

Proxmox VE 9 na Debianie 13 Bez rejestracji MAC Wsparcie na żywo 24/7

Przewodnik krok po kroku

Najpierw przejdź przez kroki pierwszy i drugi. Następnie wybierz krok trzeci, czwarty lub piąty — to trzy odpowiedzi na to samo pytanie, a nie sekwencja.

1

Znajdź swoje adresy i ustal każdą bramę

E-mail Konfiguracja serwera dedykowanego wysłany podczas budowy Twojej maszyny zawiera listę wszystkich przydzielonych jej adresów, najpierw IPv4, a następnie IPv6. Ta sama lista znajduje się w panelu sterowania na stronie serwera, w sekcji Dostęp, sieć i rDNS, gdzie każdy adres jest pokazany wraz z rekordem odwrotnego DNS.

W kompilacji Proxmox e-mail zawiera dodatkową linię i to ona jest powodem istnienia tej strony: tylko pierwszy adres jest skonfigurowany na hoście. Pozostałe możesz przypisać samodzielnie z Proxmox, do maszyn wirtualnych lub do samego hosta. Nasz instalator celowo konfiguruje jeden adres i kończy, ponieważ host posiadający wszystkie odpowiadałby za każdy z nich i nie pozostawiłby nic dla Twoich gości.

Maska sieci to zawsze /24 (255.255.255.0), a brama to zawsze .1 z /24, w którym znajduje się dany adres. Ta druga część ma większe znaczenie, niż się wydaje. Adresy zamówione razem są kolejne w obrębie jednego /24, więc współdzielą bramę. Adresy dodane do istniejącego serwera później mogą pochodzić z innego naszego zakresu i wtedy każdy używa własnego .1 — na przykład adres w 203.0.113.0/24 używa 203.0.113.1 nawet na maszynie, której adres podstawowy jest w innym zakresie. Oba działają na tym samym porcie i na tym samym moście.

Resolwer skonfigurowany przez nasz instalator to 209.244.0.3. Możesz swobodnie wskazać swoim gościom dowolny inny.

2

Przeczytaj, co instalator pozostawił na hoście

Zaloguj się przez SSH jako root i spójrz na interfejsy zapisane przez instalator:

ip -br addr
cat /etc/network/interfaces

Świeżo zbudowana maszyna wygląda tak, z własną nazwą interfejsu i własnym adresem podstawowym w miejscu przykładów:

auto lo
iface lo inet loopback

iface eno1 inet manual

auto vmbr0
iface vmbr0 inet static
    address 203.0.113.10/24
    gateway 203.0.113.1
    bridge-ports eno1
    bridge-stp off
    bridge-fd 0

vmbr0 jest już mostem, a interfejs fizyczny jest już na nim portem. To cały model mostkowany, dlatego krok trzeci prosi Cię o niezmienianie niczego na hoście.

Proxmox VE 9 to Debian 13 i używa ifupdown2, więc zmiana konfiguracji nie wymaga restartu. Edytuj /etc/network/interfaces i zastosuj ją za pomocą:

ifreload -a

Jeśli zamiast tego edytujesz sieć przez interfejs webowy Proxmox, Twoje zmiany są przygotowywane w /etc/network/interfaces.new, dopóki nie naciśniesz Zastosuj konfigurację. Tak czy inaczej, otwórz konsolę serwera z panelu sterowania przed przeładowaniem. Błąd w tym pliku odłącza maszynę od sieci, a konsola to sposób na powrót bez zgłoszenia.

3

Mostkowany: gość znajduje się w naszej sieci z własnym adresem MAC

To ten, którego należy użyć, chyba że masz powód, by nie. Gość jest zwykłą maszyną w tym samym segmencie co host, komunikuje się bezpośrednio z naszymi routerami, a na hoście nic się nie zmienia.

W interfejsie Proxmox nadaj maszynie wirtualnej urządzenie sieciowe na moście vmbr0 i pozostaw adres MAC wygenerowany przez Proxmox. Następnie skonfiguruj adres wewnątrz gościa dokładnie tak, jak na każdym serwerze. Dla gościa Debian lub Ubuntu używającego ifupdown:

auto lo
iface lo inet loopback

auto ens18
iface ens18 inet static
    address 203.0.113.58/24
    gateway 203.0.113.1
    dns-nameservers 209.244.0.3 1.1.1.1

Dla gościa Ubuntu używającego netplan, w /etc/netplan/01-netcfg.yaml:

network:
  version: 2
  ethernets:
    ens18:
      addresses: [203.0.113.58/24]
      routes:
        - to: default
          via: 203.0.113.1
      nameservers:
        addresses: [209.244.0.3, 1.1.1.1]

Gość Windows przyjmuje te same trzy wartości we właściwościach IPv4 karty sieciowej. Każdy system operacyjny działa, ponieważ z naszej strony to po prostu kolejna maszyna w podsieci.

Nie musisz rejestrować u nas adresu MAC gościa i nie ograniczamy, ile ich może używać Twój port. Niektóre firmy hostingowe to robią, a ich dokumentacja każe deklarować MAC dla każdej maszyny wirtualnej. Nasza nie: port przełącznika, do którego podłączony jest Twój serwer, nie ma ograniczenia liczby adresów MAC, a zabezpieczenie portu jest wyłączone, więc MAC gościa jest uczony dokładnie tak jak hosta. Przetestowaliśmy to przed publikacją, umieszczając drugi MAC i zapasowy adres na porcie klienckim serwera pracownika i docierając do niego z publicznego internetu.

Trzy rzeczy, o które należy zadbać:

• Nadaj każdemu gościowi odrębny adres MAC. Dwa goście współdzielące jeden lub gość kopiujący adres hosta psują oba.
• Użyj bramy należącej do /24 danego adresu, z kroku pierwszego.
Konfiguruj wyłącznie adres przydzielony do Twojego konta. Most jest zwrócony w stronę prawdziwej sieci współdzielonej z innymi maszynami. Przejęcie adresu, który nie jest Twój, przejmuje wraz z nim czyjś ruch.

Z tego samego powodu nie uruchamiaj serwera DHCP, nieuczciwego demona ogłoszeń routera ani niczego innego, co odpowiada za segment na vmbr0. Jeśli chcesz serwować DHCP własnym gościom, użyj modelu podsieci prywatnej z kroku piątego, gdzie most nie ma portu fizycznego i nie może dosięgnąć nikogo innego.

4

Trasowany: host jest bramą dla swoich gości

Użyj tego, gdy chcesz, aby każdy pakiet do i od gościa przechodził przez host, tak aby zapora hosta go widziała, lub gdy wolisz, aby Twoi goście w ogóle nie pojawiali się w naszej warstwie 2. Adres nadal jest publiczny z Twojego konta; zmienia się tylko ścieżka.

Adres publiczny przenosi się z mostu na interfejs fizyczny, host przekazuje dalej i odpowiada ARP w imieniu gości, dla których trasuje. Na hoście:

auto lo
iface lo inet loopback

auto eno1
iface eno1 inet static
    address 203.0.113.10/24
    gateway 203.0.113.1
    post-up echo 1 > /proc/sys/net/ipv4/ip_forward
    post-up echo 1 > /proc/sys/net/ipv4/conf/eno1/proxy_arp

auto vmbr0
iface vmbr0 inet manual
    bridge-ports none
    bridge-stp off
    bridge-fd 0
    up ip route add 203.0.113.58/32 dev vmbr0
    down ip route del 203.0.113.58/32 dev vmbr0

Dodaj jedną parę up i down na każdy trasowany adres. Wewnątrz gościa adres to /32, a host jest osiągany przez jawną trasę on-link przed trasą domyślną:

auto lo
iface lo inet loopback

auto ens18
iface ens18 inet static
    address 203.0.113.58/32
    post-up ip route add 203.0.113.10 dev ens18
    post-up ip route add default via 203.0.113.10
    dns-nameservers 209.244.0.3 1.1.1.1

Dwie uwagi na temat zwrotki hosta. Linia proxy_arp sprawia, że to tutaj działa: nasze routery pytają w segmencie o adres gościa, a host odpowiada za niego. Bez tej linii gość milczy z zewnątrz. A dwie linie post-up echo to udokumentowana forma Proxmox; jeśli wolisz ustawić je raz na zawsze, umieść net.ipv4.ip_forward=1 i net.ipv4.conf.eno1.proxy_arp=1 w pliku w /etc/sysctl.d/.

Trasowanie kosztuje Cię trochę konfiguracji w każdym gościu i daje hosta, który może filtrować, zliczać i logować wszystko. Mostkowanie nie kosztuje nic i nie daje żadnego z tych. To cały kompromis.

5

Prywatna podsieć za Twoim adresem podstawowym

Goście, którzy muszą tylko wychodzić na zewnątrz — agenci kompilacji, pracownicy, baza danych, której nic z zewnątrz nie powinno dotykać — w ogóle nie potrzebują adresu publicznego. Umieść ich na moście bez portu fizycznego i pozwól hostowi tłumaczyć ich ruch na własny adres w drodze na zewnątrz. To nie kosztuje żadnych adresów i jest najtańszym sposobem uruchamiania wielu maszyn.

Dodaj drugi most na hoście, pozostawiając vmbr0 bez zmian:

auto vmbr1
iface vmbr1 inet static
    address 10.10.10.1/24
    bridge-ports none
    bridge-stp off
    bridge-fd 0
    post-up echo 1 > /proc/sys/net/ipv4/ip_forward
    post-up iptables -t nat -A POSTROUTING -s '10.10.10.0/24' -o eno1 -j MASQUERADE
    post-down iptables -t nat -D POSTROUTING -s '10.10.10.0/24' -o eno1 -j MASQUERADE

Goście trafiają na vmbr1 z adresem z tego zakresu, 10.10.10.1 jako bramą i dowolnym preferowanym resolwerem. Docierają do internetu jako Twój serwer; nic z zewnątrz do nich nie dociera, chyba że tak zdecydujesz. Aby opublikować jedną usługę, dodaj regułę przekierowania obok reguły maskarady, wybierając port, którego host sam nie używa:

post-up iptables -t nat -A PREROUTING -i eno1 -p tcp --dport 8443 -j DNAT --to 10.10.10.2:443
post-down iptables -t nat -D PREROUTING -i eno1 -p tcp --dport 8443 -j DNAT --to 10.10.10.2:443

Ponieważ ten most nie ma portu fizycznego, serwer DHCP na nim jest całkowicie bezpieczny i stanowi rozsądny sposób adresowania gości.

6

Dodaj swoje adresy IPv6

Twoja alokacja IPv6 to zestaw indywidualnych adresów, a nie delegowany prefiks, który możesz dzielić. Są one wymienione w tym samym e-mailu konfiguracyjnym, pod adresami IPv4, i umieszcza się je pojedynczo dokładnie tak jak adresy IPv4: jeden na hoście, jeśli chcesz, aby host był osiągalny, resztę na gościach. Instalator nie konfiguruje żadnego z nich.

Konfiguruj każdy z długością prefiksu /64, a brama to prefiks, po którym następuje ::1 — więc adres wewnątrz 2001:db8:1234::/64 używa 2001:db8:1234::1. Na hoście dodaj zwrotkę IPv6 obok istniejącego mostu:

iface vmbr0 inet6 static
    address 2001:db8:1234::2/64
    gateway 2001:db8:1234::1

A w gościu mostkowanym:

iface ens18 inet6 static
    address 2001:db8:1234::5/64
    gateway 2001:db8:1234::1

Zastosuj za pomocą ifreload -a jak poprzednio. Ponieważ adresy są indywidualne, a nie stanowią Twojego własnego prefiksu, nie uruchamiaj ogłoszeń routera ani nie rozdawaj adresów, których Ci nie przydzielono. Jeśli potrzebujesz więcej, niż masz, zapytaj nas.

7

Ustaw odwrotny DNS z panelu sterowania

Odwrotny DNS możesz edytować samodzielnie, dla każdego adresu, bez zgłoszenia. Zaloguj się, otwórz stronę serwera i znajdź panel Dostęp, sieć i rDNS. Każdy adres na koncie jest tam wymieniony z bieżącym rekordem i przyciskiem Edytuj rDNS. Działają zarówno IPv4, jak i IPv6.

Formularz przyjmuje nazwę hosta: tylko litery, cyfry, łączniki i kropki, każda etykieta od 1 do 63 znaków, co najmniej dwie etykiety, a kropkę końcową dodaje za Ciebie. Zmiany pojawiają się po kilku minutach.

Jeśli maszyna wysyła pocztę, ustaw rekord odwrotny na adresie, z którego poczta faktycznie wychodzi — co w powyższym modelu podsieci prywatnej jest adresem hosta, a nie gościa — i utwórz pasujący rekord forward u własnego dostawcy DNS. Serwery odbierające pocztę sprawdzają, czy te dwa są zgodne.

FAQ

Pytania, które ta konfiguracja faktycznie generuje.

Mój gość nie może niczego dosięgnąć. Co jest nie tak?

Prawie zawsze brama. Każdy adres używa .1 ze swojego własnego /24, a adres dodany do serwera później może znajdować się w innym zakresie niż Twój podstawowy, z inną bramą. Sprawdź, czy adres jest przydzielony do Twojego konta, sprawdź, czy maska sieci to /24, i sprawdź, czy adres MAC gościa nie jest kopią adresu innej maszyny. Z hosta ip -br addr i ip route w gościu odpowiadają na wszystkie trzy w kilka sekund.

Czy muszę podawać Wam adres MAC każdej maszyny wirtualnej?

Nie. Twój port przełącznika nie ogranicza liczby adresów MAC, których się nauczy, a zabezpieczenie portu nie jest na nim włączone, więc gość z własnym adresem MAC jest uczony jak każda inna maszyna. Pozostaw MAC wygenerowany przez Proxmox na miejscu i nadaj każdemu gościowi odrębny.

Dlaczego instalator skonfigurował tylko jeden adres?

Ponieważ host posiadający każdy adres na koncie odpowiadałby za każdy z nich, nie pozostawiając gościom nic do użycia. Jeden adres wprowadza maszynę do sieci i czyni ją osiągalną; reszta pozostaje do Twojego rozdysponowania, co mówi e-mail konfiguracyjny pod listą adresów.

Czy powinienem użyć mostkowania czy trasowania?

Mostkowania, chyba że masz konkretny powód. Nie wymaga zmian na hoście, specjalnej konfiguracji w gościu i zachowuje się jak fizyczna maszyna w sieci. Wybierz trasowanie, gdy chcesz, aby każdy pakiet przechodził przez host, tak aby jego zapora mogła na niego działać, i zaakceptuj w zamian nieco więcej konfiguracji w każdym gościu.

Czy mogę uruchomić serwer DHCP dla swoich gości?

Na prywatnym moście bez portu fizycznego tak, i jest to rozsądny sposób ich adresowania. Nigdy na vmbr0: ten most jest zwrócony w stronę prawdziwej sieci współdzielonej z innymi maszynami, a serwer DHCP lub demon ogłoszeń routera odpowiada tam za maszyny, które nie są Twoje.

Zmieniłem plik i straciłem maszynę. Co teraz?

Otwórz konsolę z panelu sterowania. Dociera ona do maszyny przez kontroler zarządzania, a nie przez sieć, więc nadal działa, gdy konfiguracja sieci nie działa. Napraw tam /etc/network/interfaces i uruchom ifreload -a. Otwieranie konsoli przed zastosowaniem zmiany sieciowej to nawyk wart wyrobienia.

Jak uzyskać więcej adresów?

Zapytaj nas na czacie na żywo lub otwórz zgłoszenie i powiedz, do czego każdy adres jest przeznaczony — rejestry wymagają podanego celu dla każdego przydziału, więc to pierwsza rzecz, której będziemy potrzebować. Dodatkowe adresy IPv4 są rozliczane miesięcznie na tym samym koncie. Po przydzieleniu pojawiają się w panelu sterowania i w e-mailu konfiguracyjnym następnej kompilacji.

Potrzebujesz maszyny, aby to uruchomić?

Proxmox VE instaluje się jednym kliknięciem na większości naszych serwerów dedykowanych, z pełnym dostępem root, konsolą out-of-band i bez żadnych opłat licencyjnych.