Problème activation IPv6

Bonjour,

Je tourne actuellement sur un serveur debian stretch chez kimsufi et je ne réussi pas à activer l’IPv6 après avoir fait des recherches… Je trouve des solutions avec eth0 mais lorsque je fais un “ip a” c’est une interface eth0 renommée en enp1s0

voici le fichier 50-default

cat /etc/systemd/network/50-default.network 
# This file sets the IP configuration of the primary (public) network device.
# You can also see this as "OSI Layer 3" config.
# It was created by the OVH installer, please be careful with modifications.
# Documentation: man systemd.network or https://www.freedesktop.org/software/systemd/man/systemd.network.html

[Match]
MACAddress=00:XX:XX:XX:XX:XX

[Network]
Description=network interface on public network, with default route
DHCP=no
Address=XXX.XXX.XXX.XXX/24
Gateway=XXX.XXX.XXX.XXX
IPv6AcceptRA=no
NTP=ntp.ovh.net
DNS=127.0.0.1
DNS=213.186.33.99
DNS=2001:XXXX:X:XXX::1
Gateway=2001:XXXX:XXXX:XXff:ff:ff:ff:ff

[Address]
Address=2001:XXXX:XXXX:XXXX::1/128

[Route]
Destination=2001:XXXX:XXXX:XXff:ff:ff:ff:ff
Scope=link

D’avance merci pour vos réponses

Bonjour,

La configuration est correcte. Qu’est-ce qui ne fonctionne pas exactement ?
Un retour complet de :

ip a

et le résultat d’un ping6 depuis une autre machine :

ping6 -c 3 2001:XXXX:XXXX:XXXX::1

Coucou Bruno1 merci pour ta réponse.

Alors j’ai fait le test depuis un serveur online et le serveur est injoignable :

IPv6 Ping Output:

PING 2001::1(2001:::1) 32 data bytes
From 2001:::143 icmp_seq=1 Destination unreachable: Address unreachable

--- 2001:::1 ping statistics ---
4 packets transmitted, 0 received, +1 errors, 100% packet loss, time 2999ms

J’ai enlevé le chiffres de l’adresse mais c’est la bonne.

Sur un netstat -l | grep :: j’ai bien les ports en écoute

Voici le retour d’un ip a :

ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:25:90:76:dc:42 brd ff:ff:ff:ff:ff:ff
    inet xxx.xxx.xxx.xxx/24 brd xxx.xxx.xxx.255 scope global enp1s0
       valid_lft forever preferred_lft forever
    inet6 2001:xxxx:xxxx:xxxx::1/128 scope global 
       valid_lft forever preferred_lft forever
    inet6 fe80::225:90ff:fe76:dc42/64 scope link 
       valid_lft forever preferred_lft forever
3: enp2s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 00:25:90:76:dc:43 brd ff:ff:ff:ff:ff:ff

la aussi tout semble ok… et si je fais un dig @monIPv6 le retour :

; (1 server found)
;; global options: +cmd
;; connection timed out; no servers could be reached

et un ping6 www.google.com

ping6 www.google.com
PING www.google.com(par10s28-in-x04.1e100.net (2a00:1450:4007:80a::2004)) 56 data bytes
From monhost (2001:xxxx:xxxx:xxxx::1) icmp_seq=1 Destination unreachable: Address unreachable
From monhost (2001:xxxx:xxxx:xxxx::1) icmp_seq=2 Destination unreachable: Address unreachable
From monhost (2001:xxxx:xxxx:xxxx::1) icmp_seq=3 Destination unreachable: Address unreachable
^C
--- www.google.com ping statistics ---
5 packets transmitted, 0 received, +3 errors, 100% packet loss, time 4052ms

ip6tables -L l’icmp et ouvert

Donc là je sèche vraiment…

J’ai oublié de te demander la version de Debian installée.

lsb_release -a
No LSB modules are available.
Distributor ID:	Debian
Description:	Debian GNU/Linux 9.11 (stretch)
Release:	9.11
Codename:	stretch

Peux-tu passer ces commandes (avec la vraie adresse de la passerelle IPv6) :

ip -6 route add 2001:XXXX:XXXX:XXff:ff:ff:ff:ff dev enp1s0
ip -6 route add default via 2001:XXXX:XXXX:XXff:ff:ff:ff:ff dev enp1s0

et réessayer tes test de ping.

alors pour les 2 commandes j’ai cette réponse :

RTNETLINK answers: File exists

J’ai retesté un ping sans succès.
Je précise que j’avais déjà fait la 2ème commande mais sans succès…

Si tu avais déjà passé une de ses commandes ou ajouté une autre routa à la table de routage, l’erreur est sans doute normale . Dans ce cas il faut supprimer la route :

 ip -6 route del default
 ip -6 route del 2001:XXXX:XXXX:XXff:ff:ff:ff:ff

avant de passer les deux commandes précédentes.
Et vérifier avec :
ip -6 route

alors j’ai fait tout cela et si je vire le default et la gateway, je n’ai plus de réseau du tout (testé avec le ping)

Alors si je fais la commande sysctl restart tout revient comme avant (testé avec ip -6 route).

en revanche, je suis tombé sur un fichier dans le /etc/sysctl.d/ qui a l’air d’être une piste à explorer, je link le code du fichier dans l’état actuel :

/etc/sysctl.d# cat disable-IPv6-autoconf.conf 
# Disable IPv6 autoconf 
net.ipv6.conf.all.autoconf = 0
net.ipv6.conf.all.accept_ra = 0
net.ipv6.conf.all.accept_ra_defrtr = 0
net.ipv6.conf.all.accept_ra_pinfo = 0
net.ipv6.conf.default.autoconf = 0
net.ipv6.conf.default.accept_ra = 0
net.ipv6.conf.default.accept_ra_defrtr = 0
net.ipv6.conf.default.accept_ra_pinfo = 0
net.ipv6.conf.eth0.autoconf = 0
net.ipv6.conf.eth0.accept_ra = 0
net.ipv6.conf.eth0.accept_ra_defrtr = 0
net.ipv6.conf.eth0.accept_ra_pinfo = 0
net.ipv6.conf.enp1s0.autoconf = 0
net.ipv6.conf.enp1s0.accept_ra = 0
net.ipv6.conf.enp1s0.accept_ra_defrtr = 0
net.ipv6.conf.enp1s0.accept_ra_pinfo = 0

et avec un : sysctl -a | grep default.log*

j’ai ceci en retour :

net.ipv4.conf.default.log_martians = 0
net.ipv4.neigh.default.locktime = 100
sysctl: reading key "net.ipv6.conf.all.stable_secret"
sysctl: reading key "net.ipv6.conf.default.stable_secret"
sysctl: reading key "net.ipv6.conf.enp1s0.stable_secret"
sysctl: reading key "net.ipv6.conf.enp2s0.stable_secret"
sysctl: reading key "net.ipv6.conf.lo.stable_secret"
net.ipv6.neigh.default.locktime = 0

si on compare le ipv4.neigh et le ipv6.neigh, il y a de quoi se poser des question non ?
Bon, je suis revenu au point de départ mais on y croit :wink:

J’ai toujours pas la solution lol, c’est à devenir chêvre hahahaha…

J’ai un Kimsufi sous Debian stretch avec exactement la même configuration et l’IPv6 fonctionne moyennant l’ajout de la route avec les deux commandes déjà indiquées (il suffit ensuite de créer un service systemd avec ces commandes pour rendre la configuration pérenne).

Edit : et il faut virer la section [Route] du fichier 50-default.network

puis-je avoir un retour de ton ip -6 route stp pour que je compare au mien ?
serait-ce possible que netfilter bloque l’ipv6 alors que l’OUTPUT est configuré en ACCEPT ?

Alors j’y comprends rien lol… Ya kimsufi qui ont du me débrancher le tuyau…

Erratum, ce n’est pas un Kimsufi mais un serveur de la gamme SoYouStart d’OVH, mais cela ne change strictement rien car je crois que le problème vient d’un bogue de la version de systemd fournie avec Debian Stretch.

  • 50-default.network est le même que le tien sans la section [Route]
  • la route vers la passerlle IPv6 a été ajouté avec les commandes :
ip -6 route add 2001:xxxx:xxxx:xxff:ff:ff:ff:ff dev enp1s0
ip -6 route add default via 2001:xxxx:xxxx:xff:ff:ff:ff:ff dev enp1s0

Attention l’adresse de la passerelle (et ça c’est spécifique à OVH) est obtenue en mattant les 9 derniers octets de ton IPv6 à ff, exemple
2001:41d0:6:7c96::1 ⇒ 2001:41d0:6:7cff:ff:ff:ff:ff

Après cela les test de ping doivent fonctionner et la route IPv6 doit donner :

# ip -6 route
2001:41d0:6:7c96::1 dev enp1s0 proto kernel metric 256  pref medium
2001:41d0:6:7cff:ff:ff:ff:ff dev enp1s0 metric 1024  pref medium

N.B. : si tu as bidouillé les routes et les paramètres réseau, il faut d’abord revenir à la configuration d’origine et au minimum redémarrer le service réseau (voire le serveur si tu n’es pas sûr de toi) :

systemctl restart systemd-networkd

Solved… enfin !

J’ai trouvé ce qui buggait, c’était sous mon nez depuis le départ mais je n’y prétais pas attention : Il y avait dans ip -6 route ceci :

fe80::/64 dev enp1s0 proto kernel metric 256  pref medium

Ce petit truc me foutait la m… sur mon réseau. Juste une petit :

ip -6 route del fe80::/64

puis flush parefeu + restart parfeu et test ping6 ok

systemctl restart systemd-networkd

Et tout baigne… Ahhhhh 2 jours de perdus pour ste m… hahahahaha

Un grand merci Bruno1 pou ton soutien technique, ça nous aura fait chevrer mais au final c’est bon de trouver ce problème car je suis persuadé que ça servira pour un autre lol…

Heu…
Cette route est tout à fait normale et il n’y avait aucune raison de la supprimer et encore moins que cela résolve ton problème.

1 J'aime

J’avais flush le parefeu et fait un test ça ne fonctionnait pas… Maintenant en fait le problème vient du parefeu en IPv6, j’ai une erreur que j’essaye de trouver. J’ai crié victoire un peu trop tôt il me semble lol… je vais voir ce qui ne joue pas en désactivant tous les services puis en es réactivant 1 à 1… erreur de débutant :D, je te tiens au jus…

Alors je fais un Edit pour te répondre, c’est bien au niveau du parefeu que j’avais un problème, j’avais essayé une construction avec netfilter-persistent mais ça bug pas mal visiblement, donc je me suis fabriqué un parefeu avec iptables et tout fonctionne bien à première vue visiblement :wink:

ça m’aura bien fait chercher mais au moins j’ai compris pourquoi je n’avais pas de connexion en IPv6.

En tout cas, merci de t’être donné la peine de me répondre, ça m’a bien fait progressé :slight_smile: