Come disabilitare IPv6 mappato su IPv4?


17

Sulla mia macchina Linux, ho vari demoni che possono collegarsi a tutte le interfacce abilitate per IPv6 ::. Quando lo fanno, Linux invia richieste IPv4 a quello daemon mappata come, per esempio, ::ffff:198.51.100.37.

Vorrei invece rifiutare le connessioni IPv4 e accettare solo le connessioni IPv6 quando un demone si lega a ::. Per ricevere connessioni IPv4, desidero che il demone si associ esplicitamente 0.0.0.0(oltre che ::).

In altre parole, voglio eseguire un servizio esclusivamente su IPv6 e non su IPv4.

C'è un modo per raggiungere questo obiettivo?

Risposte:


22

Questo è controllato dal net.ipv6.bindv6onlysysctl. Aggiungi quanto segue /etc/sysctl.confed esegui sudo sysctl -pper effettuare la modifica.

net.ipv6.bindv6only=1

Le applicazioni possono anche associarsi esplicitamente solo all'indirizzo IPv6 invece di modificarlo globalmente, ad esempio nginx ha l' ipv6onlyopzione per la listendirettiva. Questo corrisponde IPV6_V6ONLYall'opzione a setsockopt().


Fortunatamente ho scoperto che l'app (in questo caso OpenSSH) stava già impostando IPV6_V6ONLY sul socket quando ho impostato, ListenAddress ::quindi non ho dovuto ricorrere all'uso di sysctl (e riconfigurare tutto il resto).
Michael Hampton
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.