Base di conoscenza

Configurare il /64 IPv6 instradato

Mettere il tuo /64 incluso sull'interfaccia sotto Debian 13 e AlmaLinux 10, verificare la route e usare il resto del prefisso per i container.

Cosa significa "routato" qui

Il prefisso è instradato alla tua istanza piuttosto che condiviso su un segmento con altri clienti. Nessun altro sulla rete risponde per quegli indirizzi, non c'è alcun proxy di neighbour discovery in mezzo, e puoi associare qualsiasi cosa all'interno del /64 senza chiedere prima. Significa anche che i router advertisement non sono il meccanismo: indirizzo e gateway sono statici, e aspettare SLAAC non ti darà proprio nulla.

Il pannello mostra tre valori per istanza — il prefisso, l'indirizzo al suo interno che preassegniamo, e il gateway. Prendili tutti e tre da lì. Il gateway varia a seconda del sito.

Debian 13

Le immagini usano systemd-networkd. Scrivi la tua unit e lascia stare quella inclusa:

cat > /etc/systemd/network/20-wan-v6.network <<EOF
[Match]
Name=enp1s0

[Network]
Address=<ipv6>/64
Gateway=<gateway6>
IPv6AcceptRA=no
EOF
networkctl reload
networkctl status enp1s0

Dove il gateway è un indirizzo link-local, l'interfaccia su cui si trova deve essere nota. La stanza è già limitata a un'interfaccia da [Match], quindi non serve altro.

AlmaLinux 10

Non ci sono più file ifcfg-. AlmaLinux 10 tiene le connessioni come keyfile di NetworkManager, e il modo supportato per modificarle è nmcli:

nmcli -f NAME,DEVICE connection show
nmcli connection modify "System eth0" ipv6.method manual ipv6.addresses <ipv6>/64 ipv6.gateway <gateway6> ipv6.may-fail no
nmcli connection up "System eth0"

ipv6.may-fail no impedisce al boot di dichiarare la rete pronta prima che v6 sia configurato. Questo è importante per qualsiasi servizio che associa un indirizzo v6 all'avvio e rinuncia se non è ancora presente.

Verifica

ip -6 addr show dev enp1s0
ip -6 route show
ping -6 -c 3 paragonvps.com

Indirizzo presente, rotta di default presente, nessuno che risponde? Il firewall è il solito colpevole, e ICMPv6 è la solita ragione. Neighbour discovery e packet-too-big vivono entrambi in ICMPv6; filtrarli selettivamente rompe IPv6 in un modo che sembra esattamente un bug dell'applicazione per un giorno e mezzo. I pacchetti piccoli funzionano, quelli grandi spariscono. L'articolo su nftables ha una regola che non fa questo.

Usare il resto del prefisso

Indirizzi extra sulla stessa interfaccia:

ip -6 addr add <ipv6-2>/64 dev enp1s0 nodad

Fallosopravvivere a un riavvio con un'altra riga Address=, o una seconda voce in ipv6.addresses. Per i container, ritaglia una fetta dal /64, assegnala al bridge e instradala sull'host. Un /80 è più di quanto un bridge possa mai servire. Non c'è passaggio NAT né passaggio proxy, perché l'intero prefisso punta già a te.

Se ti servono più sottoreti instradate, dietro più bridge o un hypervisor annidato, ordina il componente aggiuntivo /48. È delegato piuttosto che proxato, quindi il design di routing dalla tua parte è davvero tuo.

Due cose che lo rompono silenziosamente

  • Qualcosa che riattiva l'accettazione di RA. Gli strumenti che "sistemano" la rete spesso lo fanno, e ti ritrovi con una seconda rotta di default che oscilla tra le due. Fissa IPv6AcceptRA=no.
  • Abilitare il forwarding. Impostare net.ipv6.conf.all.forwarding=1 fa sì che il kernel smetta di processare i router advertisement su ogni interfaccia. Innocuo qui, dato che RA è già disattivato, ma è utile saperlo prima di dare la colpa al sito.

Dettagli completi per sito, incluso quali locazioni portano v6 al limite, sono nella pagina di rete.

Pronto quando lo sei

Scegli una città. Scegli una dimensione. Paga in criptovaluta.

Nessun modulo su chi sei, nessuna attesa per l'approvazione di una persona, nessuna chiamata per verificare nulla. La fattura viene saldata e le credenziali arrivano nella tua casella di posta.