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ą.
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.
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.
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.
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.
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.
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.
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.
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.
Pytania, które ta konfiguracja faktycznie generuje.