Quando il server ti è stato consegnato, su di esso era configurato un solo indirizzo IPv4 e gli altri sono rimasti intatti. È una scelta voluta, e questa pagina ti spiega come completare il lavoro. Ci sono tre modi per farlo e nessuno richiede molto tempo: collegare la macchina direttamente alla rete con un indirizzo proprio, far passare il suo traffico attraverso l'host, oppure nascondere un intero gruppo di macchine dietro l'indirizzo che già possiedi. Li abbiamo provati tutti e tre sulla nostra rete prima di scrivere questa guida.
Leggi i primi due. Dopo, i passi tre, quattro e cinque sono alternative — scegli quello che corrisponde a ciò che stai costruendo.
Cerca l'email intitolata Configurazione del server dedicato, inviata il giorno in cui la macchina è stata creata. Elenca tutto ciò che è stato allocato al server: prima gli indirizzi IPv4, poi eventuali IPv6. Lo stesso elenco si trova nel tuo account, nella pagina del server, nel pannello Accesso, rete e rDNS.
Su un server Proxmox quell'email aggiunge una riga sotto l'elenco, spiegandoti che all'host è stato assegnato solo il primo indirizzo e che i restanti sono tuoi da distribuire — alle macchine virtuali, oppure anche all'host se vuoi che ne possieda più di uno. Noi configuriamo un solo indirizzo affinché la macchina risulti raggiungibile all'avvio, poi ci fermiamo. Configurali tutti sull'host ed esso risponderà per tutti, lasciando alle tue macchine virtuali nulla da rivendicare.
Due numeri contano ogni volta che digiti un indirizzo. La netmask è /24, ovvero 255.255.255.0. Il gateway è il range dell'indirizzo stesso, che termina in .1 — quindi un indirizzo in 203.0.113.0/24 usa 203.0.113.1. Gli indirizzi emessi insieme sono adiacenti e condividono un unico gateway. Gli indirizzi aggiunti a un server mesi dopo possono provenire da un nostro range diverso, e in tal caso usano il proprio .1. Sbagliare questo è la causa più comune per cui una nuova macchina virtuale non riesce a raggiungere nulla, e costa alle persone un intero pomeriggio.
Per il DNS configuriamo 209.244.0.3 sull'host. Punta le tue macchine virtuali dove preferisci.
Accedi via SSH come root e dai un'occhiata:
ip -br addr cat /etc/network/interfaces
Su una macchina che abbiamo appena creato, quel file si presenta più o meno così, con il nome della tua interfaccia e il tuo primo indirizzo al posto di quelli mostrati:
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 La cosa utile da notare è che vmbr0 è già un bridge e la scheda di rete vi è già collegata. Non serve altro per il passo tre, motivo per cui il passo tre ti chiede di non modificare nulla qui.
Proxmox VE 9 si basa su Debian 13 e utilizza ifupdown2, quindi le modifiche di rete hanno effetto senza riavviare la macchina. Salva il file ed esegui:
ifreload -a
Modificando invece tramite l'interfaccia web di Proxmox, le tue modifiche vengono scritte in /etc/network/interfaces.new e restano in sospeso finché non premi Applica configurazione. Qualunque metodo usi, apri prima la console dal tuo account. Un solo refuso in questo file e la macchina cade dalla rete; la console accede per un'altra via e continuerà a funzionare.
Inizia da qui. La tua macchina virtuale si comporta come un computer separato collegato allo stesso switch, dialoga da sola con i nostri router e l'host non richiede alcuna modifica.
In Proxmox, aggiungi un dispositivo di rete alla macchina, imposta il bridge su vmbr0 e lascia l'indirizzo MAC compilato da Proxmox. Poi imposta l'indirizzo all'interno della macchina. Debian o Ubuntu con la configurazione classica:
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, in /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] Su Windows, gli stessi tre valori vanno nelle impostazioni IPv4 dell'adattatore. Non importa davvero cosa esegue la macchina; per noi è un computer in più sul cavo.
Non c'è nulla da comunicarci prima. Non devi inviarci l'indirizzo MAC di ogni macchina virtuale e non poniamo limiti a quanti ne possa usare la tua porta. Diverse società di hosting lo fanno, e le loro istruzioni ti fanno compilare un modulo per ogni nuova macchina. Noi abbiamo verificato anziché supporre: la porta su cui si trova il tuo server non ha limiti di MAC e la sicurezza della porta è disattivata, e prima di pubblicare questa guida abbiamo messo un secondo indirizzo e MAC sulla porta di una macchina del personale e l'abbiamo raggiunta da internet pubblico.
Tre cose da fare bene:
• Ogni macchina ha bisogno del proprio indirizzo MAC. Due macchine che ne condividono uno, o che copiano quello dell'host, e nessuna funziona correttamente.
• Usa il gateway appartenente al range di quell'indirizzo, dal passo uno.
• Usa solo indirizzi presenti sul tuo account. Questo bridge si affaccia su una rete reale con le macchine di altre persone. Un indirizzo che non è tuo porta via con sé il loro traffico.
Stesso motivo: nulla che distribuisca indirizzi ha posto su vmbr0. Nessun server DHCP, nessun annuncio di router. Se vuoi assegnare automaticamente indirizzi alle tue macchine, usa il passo cinque, dove il bridge non ha via d'uscita e non può raggiungere nessun altro.
Scegli questa quando vuoi che l'host veda ogni pacchetto, così il suo firewall può intervenire, oppure quando preferisci che le tue macchine non compaiano affatto sulla rete condivisa. Ricevono comunque indirizzi pubblici reali dal tuo account; cambia solo il percorso.
L'indirizzo pubblico viene tolto dal bridge e va sulla scheda di rete, all'host viene detto di inoltrare, ed esso risponde per conto delle macchine dietro di sé. Sull'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 Una riga up e una down per ogni indirizzo instradato in questo modo. Dentro la macchina l'indirizzo è un /32, e l'host deve essere raggiunto tramite una rotta esplicita prima di quella predefinita:
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 Non omettere la riga proxy_arp. I nostri router chiedono alla rete chi possiede ciascun indirizzo, e quella riga è ciò che fa rispondere l'host per le macchine dietro di sé. Se la ometti, sono semplicemente invisibili. Le due righe post-up echo sono il modo di Proxmox per scriverla. Per impostarle in modo permanente, crea invece un file in /etc/sysctl.d/ contenente:
net.ipv4.ip_forward=1 net.ipv4.conf.eno1.proxy_arp=1
Ciò che ottieni con il lavoro extra è un host in grado di filtrare e registrare ogni pacchetto. Se non ti serve, il passo tre ha meno cose che possono andare storte.
Molte macchine si limitano ad avviare conversazioni: runner di build, worker di coda, un database che nulla all'esterno dovrebbe toccare. Assegna loro un indirizzo privato su un bridge senza via d'uscita propria e lascia che l'host traduca il loro traffico sul proprio indirizzo al passaggio. Non consuma nulla della tua allocazione, quindi puoi eseguirne quante ne regge l'hardware.
Aggiungi un secondo bridge, lasciando vmbr0 esattamente 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 Metti le macchine su vmbr1, assegna a ciascuna un indirizzo in quel range con 10.10.10.1 come gateway, e sono operative. Per il resto di internet sembrano il tuo server. Nulla le raggiunge dall'esterno a meno che tu non lo richieda, e richiederlo è una regola in più accanto alla prima, su una porta che l'host non sta già 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
Questo bridge non ha una porta fisica, quindi un server DHCP su di esso è sicuro ed è un modo ordinato per assegnare indirizzi alle macchine dietro di esso.
Ciò che possiedi è una manciata di indirizzi IPv6 separati, non un blocco da suddividere. Sono in fondo alla stessa email di configurazione e si posizionano uno alla volta esattamente come quelli IPv4: uno sull'host se vuoi che l'host sia raggiungibile via IPv6, gli altri sulle macchine che ne hanno bisogno. Il programma di installazione non ne configura nessuno, quindi spetta a te aggiungerli tutti.
Scrivi ciascuno con un /64 alla fine, e il gateway è il prefisso con ::1 dopo — un indirizzo dentro 2001:db8:1234::/64 usa 2001:db8:1234::1. Sull'host, accanto al bridge già presente:
iface vmbr0 inet6 static
address 2001:db8:1234::2/64
gateway 2001:db8:1234::1 E in una macchina sul bridge:
iface ens18 inet6 static
address 2001:db8:1234::5/64
gateway 2001:db8:1234::1 Poi ifreload -a, come prima. Poiché si tratta di indirizzi individuali e non di un blocco tuo, non annunciare rotte né distribuire indirizzi che non ti sono stati assegnati. Te ne servono di più? Chiediceli.
Il DNS inverso lo configuri da solo, su qualsiasi indirizzo, senza chiedere a nessuno. Accedi, apri il server e trova il pannello Accesso, rete e rDNS. Ogni indirizzo è elencato con il nome a cui risponde attualmente e un pulsante Modifica rDNS accanto. Gli indirizzi IPv6 funzionano allo stesso modo.
Il campo richiede un hostname: lettere, numeri, trattini e punti, ogni parte tra 1 e 63 caratteri, almeno due parti, e il punto finale viene aggiunto per te. Concedigli qualche minuto per avere effetto.
Se la macchina invia email, l'indirizzo da nominare è quello da cui la posta parte effettivamente — con il passo cinque è l'indirizzo dell'host, non quello della macchina — e ti servirà anche il record forward corrispondente presso il tuo provider DNS. I server di posta all'altro capo verificano che i due coincidano e rifiutano la posta quando non è così.
Cosa ci chiedono le persone dopo aver seguito questa pagina.