Tutorial · Rete di Proxmox VE 9

Tutorial di rete su Proxmox un IP pubblico per ogni macchina virtuale

Questo tutorial di rete su Proxmox ti mostra come assegnare a una macchina virtuale il proprio IP pubblico sul tuo server Primcast: collegala al bridge vmbr0, inserisci indirizzo, gateway e netmask, ed è online. Nessun riavvio e nulla da registrare prima presso di noi.

Se desideri più controllo, seguono altre due configurazioni: traffico instradato attraverso l'host e macchine private che condividono l'indirizzo dell'host. Le abbiamo provate tutte e tre sulla nostra rete prima di scriverle.

01

Trova i tuoi IP pubblici e il gateway che ciascuno utilizza

I tuoi indirizzi sono nell'email Dedicated Server Setup che ti abbiamo inviato il giorno in cui è stato creato il server, prima IPv4 e poi IPv6. Puoi vederli anche in qualsiasi momento nel tuo account: apri il server e guarda il pannello chiamato Access, Networking & rDNS.

Su un server Proxmox, solo il primo indirizzo è configurato sull'host. L'email te lo indica sotto l'elenco degli indirizzi. Ci fermiamo lì di proposito: un host che detiene tutti gli indirizzi risponderebbe per tutti, e le tue macchine virtuali non avrebbero più nulla da usare. Gli altri sono tuoi da assegnare alle macchine virtuali, o all'host se vuoi che ne abbia più di uno.

Servono sempre gli stessi pochi valori ogni volta che assegni un indirizzo:

Netmask
/24Che corrisponde a 255.255.255.0.
Gateway
.1Il .1 dell'intervallo in cui si trova l'indirizzo, quindi 203.0.113.58 usa 203.0.113.1.
DNS sull'host
209.244.0.3Le tue macchine virtuali possono usare qualsiasi resolver tu preferisca.
IPv6
/64Il gateway è il prefisso seguito da ::1. Il passaggio 06 contiene i dettagli.

Controlla prima il gateway quando qualcosa non funziona. Gli indirizzi ricevuti insieme condividono un intervallo e un gateway. Gli indirizzi aggiunti al server in seguito possono provenire da un intervallo diverso dei nostri, e in tal caso usano il .1 di quell'intervallo. Un gateway errato è il motivo più comune per cui una nuova macchina virtuale non riesce a raggiungere nulla.

02

Guarda il bridge di rete Proxmox che hai già

Accedi all'host via SSH come root e guarda cosa c'è:

ip -br addr
cat /etc/network/interfaces

Un server che abbiamo appena installato ha un file che assomiglia più o meno a questo. Il nome dell'interfaccia e il primo indirizzo saranno diversi:

/etc/network/interfaces

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

Nota che vmbr0 è già un bridge con la tua porta di rete collegata. È tutto ciò che serve alla configurazione bridged del passaggio 03, quindi per quella lasci questo file invariato.

Proxmox VE 9 gira su Debian 13 e usa ifupdown2, il che significa che le modifiche di rete si applicano senza riavvio. Dopo aver salvato il file, esegui:

ifreload -a

Se preferisci l'interfaccia web di Proxmox, le tue modifiche attendono in /etc/network/interfaces.new finché non fai clic su Apply Configuration.

Apri la console nel tuo account prima di cambiare qualsiasi cosa. Raggiunge il server tramite la sua scheda di gestione, non attraverso la rete, quindi funziona ancora se un errore di battitura manda offline il server.

Quale configurazione dovresti usare?

Reti bridged, instradata e privata per macchine virtuali Proxmox a confronto
DomandaBridgedInstradataPrivata
Usa uno dei tuoi IP pubbliciSìSìNo
Modifiche sull'hostNessunaL'indirizzo si sposta sulla scheda di reteUn secondo bridge
Il firewall dell'host vede il trafficoNoTuttoTutto
Raggiungibile da internetSìSìSolo le porte che inoltri
DHCP consentitoNoNoSì
03

Bridged: un IP pubblico Proxmox direttamente sulla rete

La maggior parte delle persone dovrebbe scegliere questa. La tua macchina virtuale si comporta come un computer autonomo sullo stesso switch, parla direttamente con i nostri router e l'host non richiede alcuna modifica.

In Proxmox, aggiungi un dispositivo di rete alla macchina virtuale, scegli vmbr0 come bridge e mantieni l'indirizzo MAC generato da Proxmox. Poi imposta l'indirizzo all'interno della macchina virtuale.

Debian o Ubuntu con ifupdown

/etc/network/interfaces

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

Ubuntu con netplan

/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]

Windows

Inserisci lo stesso indirizzo, netmask e gateway nelle impostazioni IPv4 della scheda di rete. Il sistema operativo non fa differenza per noi: la tua macchina virtuale è un computer in più sulla rete.

Non devi comunicarci nulla

Non c'è alcun modulo da compilare per ogni nuova macchina virtuale e non ci invii gli indirizzi MAC. Alcuni host chiedono entrambi. Abbiamo verificato dalla nostra parte prima di affermarlo: la porta dello switch usata dal tuo server non ha limiti sugli indirizzi MAC e la port security è disattivata. Abbiamo anche messo un secondo indirizzo e MAC su uno dei nostri server e l'abbiamo raggiunto da internet.

Alcune regole lo mantengono funzionante:

  • Assegna a ogni macchina virtuale il proprio indirizzo MAC. Se due ne condividono uno, o una copia quello dell'host, nessuna funziona correttamente.
  • Usa il gateway che corrisponde all'intervallo dell'indirizzo, dal passaggio 01.
  • Usa solo indirizzi presenti sul tuo account. Questo bridge si collega a una rete con altri clienti sopra, e un indirizzo che non è tuo sottrae il loro traffico.
  • Non eseguire mai un server DHCP né inviare annunci router su vmbr0, per lo stesso motivo. Se vuoi l'indirizzamento automatico, usa il bridge privato del passaggio 05.
04

Instradata: invia ogni macchina virtuale attraverso l'host

Scegli questa quando vuoi che il firewall dell'host veda ogni pacchetto, o quando preferisci che le tue macchine virtuali non appaiano mai sulla rete condivisa. Usano comunque IP pubblici reali del tuo account. Cambia solo il percorso.

L'indirizzo pubblico si sposta dal bridge alla scheda di rete, l'host inoltra il traffico e risponde per le macchine dietro di sé. Sull'host:

/etc/network/interfaces (host)

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

Aggiungi una riga up e una down per ogni indirizzo che instradi. Dentro la macchina virtuale, l'indirizzo è un /32 e l'host deve essere raggiungibile tramite la propria rotta prima della rotta predefinita:

/etc/network/interfaces (macchina virtuale)

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

Mantieni la riga proxy_arp. I nostri router chiedono alla rete chi detiene ciascun indirizzo, e quella riga fa sì che l'host risponda per le macchine dietro di sé. Senza, non possono essere trovate. Per rendere permanenti entrambe le impostazioni alla maniera di sysctl, metti questo in un file sotto /etc/sysctl.d/:

net.ipv4.ip_forward=1
net.ipv4.conf.eno1.proxy_arp=1

Il lavoro extra ti dà un host che può filtrare e registrare tutto il traffico. Se non ti serve, la configurazione bridged ha meno parti in movimento.

05

Privata: macchine virtuali che condividono l'indirizzo dell'host

Molte macchine virtuali devono solo uscire, mai essere raggiunte: runner di build, worker, un database che deve restare nascosto. Assegna loro indirizzi privati su un secondo bridge e l'host traduce il loro traffico nel proprio IP pubblico. Questo non usa nessuno dei tuoi indirizzi, quindi puoi eseguirne quante ne consente l'hardware.

Aggiungi un secondo bridge e lascia vmbr0 com'è:

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

Collega le macchine virtuali a vmbr1 e assegna a ciascuna un indirizzo in quell'intervallo, con 10.10.10.1 come gateway. Internet le vede come il tuo server. Nulla può raggiungerle dall'esterno finché non inoltri una porta, il che richiede un'altra coppia di righe su una porta che l'host non sta usando:

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

Poiché vmbr1 non ha una porta fisica, un server DHCP su di esso è sicuro ed è un modo semplice per indirizzare molte macchine.

06

Aggiungi i tuoi indirizzi IPv6

Ricevi indirizzi IPv6 individuali, non un blocco da suddividere. Sono elencati alla fine dell'email di configurazione e li assegni uno per uno, proprio come IPv4: uno sull'host se vuoi che l'host sia raggiungibile via IPv6, gli altri sulle macchine virtuali che ne hanno bisogno. Nessuno di essi è configurato per te al momento dell'installazione.

Scrivi ogni indirizzo con /64. Il gateway è il prefisso seguito da ::1, quindi un indirizzo in 2001:db8:1234::/64 usa 2001:db8:1234::1. Sull'host, accanto al bridge esistente:

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

In una macchina virtuale sul bridge:

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

Esegui di nuovo ifreload -a. Poiché questi indirizzi non sono un blocco tuo, non annunciare rotte né distribuire indirizzi che non ti sono stati assegnati. Se te ne servono altri, chiediceli.

07

Imposta il DNS inverso su ciascun indirizzo

Puoi impostare il DNS inverso su qualsiasi tuo indirizzo da solo. Accedi, apri il server e vai su Access, Networking & rDNS. Ogni indirizzo mostra il suo nome attuale con un pulsante Edit rDNS accanto, e gli indirizzi IPv6 funzionano allo stesso modo.

Inserisci un hostname: lettere, numeri, trattini e punti, almeno due parti, ciascuna da 1 a 63 caratteri. Il punto finale viene aggiunto per te. La modifica richiede alcuni minuti.

Se una macchina virtuale invia email, imposta il DNS inverso sull'indirizzo da cui parte la posta. Nella configurazione privata è l'indirizzo dell'host. Aggiungi anche il record forward corrispondente presso il tuo provider DNS, perché i server di posta in ricezione controllano che entrambi coincidano e rifiutano la posta quando non lo fanno.

08

Domande sulla rete Proxmox, con risposta

01Come assegno un IP pubblico a una VM Proxmox?

Collega la macchina virtuale al bridge vmbr0 e imposta al suo interno uno dei tuoi IP pubblici extra, con netmask /24 e il .1 dell'intervallo di quell'indirizzo come gateway. Su un server Primcast l'host non richiede modifiche per questo e non devi registrarci l'indirizzo MAC.

02La mia macchina virtuale è in esecuzione ma non ha rete. Cosa devo controllare?

Inizia dal gateway: deve essere il .1 dell'intervallo a cui appartiene l'indirizzo, e indirizzi aggiunti in momenti diversi possono trovarsi in intervalli diversi. Poi assicurati che l'indirizzo sia sul tuo account, che la netmask sia /24 e che nessun'altra macchina usi lo stesso indirizzo MAC.

03Devo inviare a Primcast l'indirizzo MAC di ogni macchina virtuale?

No. La porta del tuo switch apprende tutti gli indirizzi MAC che usi e la port security è disattivata, quindi una macchina virtuale appare come qualsiasi computer fisico. Mantieni l'indirizzo MAC generato da Proxmox e non dare mai a due macchine lo stesso.

04Perché sul mio nuovo server Proxmox è configurato un solo IP?

Così le tue macchine virtuali hanno indirizzi da usare. Se l'host li detenesse tutti, risponderebbe per ognuno di essi. Configuriamo il primo indirizzo perché tu possa raggiungere il server, e l'email di configurazione lo indica sotto l'elenco dei tuoi indirizzi.

05Devo usare la rete bridged o instradata in Proxmox?

Usa la bridged a meno che tu non abbia bisogno che l'host filtri il traffico. Non cambia nulla sull'host e ogni macchina virtuale si comporta come un normale computer sulla rete. L'instradata fa per te quando il firewall dell'host deve vedere ogni pacchetto, in cambio di un po' più di configurazione dentro ogni macchina.

06Posso usare il DHCP per le mie macchine virtuali Proxmox?

Sì, su un bridge privato senza porta fisica, come vmbr1 nel passaggio 05. Mai su vmbr0: si collega a una rete condivisa con altri clienti, e un server DHCP o annunci router lì risponderebbero a macchine che non sono tue.

07Ho applicato una configurazione di rete errata e ho perso il server. Come rientro?

Apri la console dal tuo account Primcast. Passa attraverso la scheda di gestione del server anziché la sua rete, quindi funziona mentre la rete è rotta. Correggi /etc/network/interfaces, esegui ifreload -a e il server è di nuovo raggiungibile.

08Come ottengo più indirizzi IP per le mie macchine virtuali?

Chiedi in live chat o apri un ticket e dicci a cosa serve ciascun indirizzo, poiché i registri degli indirizzi richiedono una motivazione per ogni assegnazione. Gli indirizzi IPv4 extra vengono fatturati mensilmente sullo stesso account e compaiono nel tuo pannello di controllo una volta allocati.

Bloccato su un passaggio? Chiedici in chat.

Il nostro assistente AI risponde in pochi secondi e può controllare per te il server e i suoi indirizzi. Chiedi di una persona quando vuoi.

Vedi i server Proxmox