Comment désactiver IPv6 mappé IPv4?


17

Sur ma boîte Linux, j'ai différents démons qui peuvent se lier à toutes les interfaces compatibles IPv6 ::. Quand ils le font, Linux envoie des requêtes IPv4 à ce démon cartographié comme, par exemple, ::ffff:198.51.100.37.

J'aimerais plutôt que les connexions IPv4 soient refusées et que seules les connexions IPv6 soient acceptées lorsqu'un démon se lie à ::. Pour recevoir des connexions IPv4, je veux que le démon doive se lier explicitement à 0.0.0.0(ainsi que ::).

En d'autres termes, je veux exécuter un service exclusivement sur IPv6 et non sur IPv4.

Existe-t-il un moyen d'y parvenir?

Réponses:


22

Ceci est contrôlé par le net.ipv6.bindv6onlysysctl. Ajoutez ce qui suit à /etc/sysctl.confet exécutez sudo sysctl -ppour effectuer la modification.

net.ipv6.bindv6only=1

Les applications peuvent également se lier explicitement uniquement à l'adresse IPv6 au lieu de la modifier globalement, par exemple, nginx a l' ipv6onlyoption de la listendirective. Cela correspond à l' IPV6_V6ONLYoption pour setsockopt().


Heureusement, j'ai trouvé que l'application (dans ce cas, OpenSSH) définissait déjà IPV6_V6ONLY sur le socket lorsque j'ai défini ListenAddress ::, je n'ai donc pas eu besoin de recourir à l'utilisation de sysctl (et de reconfigurer tout le reste).
Michael Hampton
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.