Problème d'IPv6 sur un serveur dédié

Bonjour,

Je rencontre une difficulté avec un serveur dédié (Debian avec ISPconfig) : IPv6 semble configuré mais n'est accessible ni depuis le serveur ni depuis l'extérieur vers le serveur. Et ça me pose notamment souci avec la mise à jour de Letsencrypt qui passe par l'IPv6 si elle est définie… et donc me donne un Status 400 timeout en réponse (ouais, il m'a déjà fallu pas mal d'heures pour relier ce timeout à l'IPv6).

Pourtant la configuration d'IPv6 semble correcte… Le serveur est sous Debian Stretch (depuis quelques jours, la mise à jour de Letsencrypt et la révélation de mes soucis), ISPconfig 3.1.5 avec UFW 0.35-4.
> # uname -a
> Linux io.xxx.com 3.14.32-xxxx-grs-ipv6-64 #9 SMP Thu Oct 20 14:53:52 CEST 2016 x86_64 GNU/Linux
> # cat /etc/network/interfaces
> […]
> auto eth0
> […]
> iface eth0 inet6 static
> address 2001:41d0:xxxx:xxxx::1
> netmask 128
> dns-nameservers 2001:41d0:3:163::1
> post-up /sbin/ip -family inet6 route add 2001:41d0:xxxx:xxff:ff:ff:ff:ff dev eth0
> post-up /sbin/ip -family inet6 route add default via 2001:41d0:xxxx:xxff:ff:ff:ff:ff
> pre-down /sbin/ip -family inet6 route del default via 2001:41d0:xxxx:xxff:ff:ff:ff:ff
> pre-down /sbin/ip -family inet6 route del 2001:41d0:xxxx:xxff:ff:ff:ff:ff dev eth0
> # ifconfig
> eth0: flags=4163 mtu 1500
> inet xx.xx.xx.xx netmask 255.255.255.0 broadcast 51.255.85.255
> inet6 2001:41d0:xxxx:xxxx::1 prefixlen 64 scopeid 0x0
> inet6 fe80::ec4:7aff:fec2:7286 prefixlen 64 scopeid 0x20
> ether 0c:c4:7a:c2:72:86 txqueuelen 1000 (Ethernet)
> RX packets 43899 bytes 7595207 (7.2 MiB)
> RX errors 0 dropped 0 overruns 0 frame 0
> TX packets 34394 bytes 13195782 (12.5 MiB)
> TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

IPv6 semble fonctionner avec l'existenec du scope Global… mais :
> # ping -6 ipv6.google.com
> connect: Le réseau n'est pas accessible
> # curl -6 google.fr
> curl: (7) Couldn't connect to server
> # curl -4 google.fr
>
> 301 Moved
>

301 Moved


> The document has moved
> here.
>

Et depuis l'extérieur (autre serveur Debian sur lequel IPv6 fonctionne) :
> # ping -6 2001:41d0:xxxx:xxxx::1 -c4
> PING 2001:41d0:xxxx:xxxx::1(2001:41d0:xxxx:xxxx::1) 56 data bytes
> — 2001:41d0:xxxx:xxxx::1 ping statistics —
> 4 packets transmitted, 0 received, 100% packet loss, time 3060ms
> # ping -4 mondomaine.fr -c4
> PING mondomaine.fr (xx.xx.xx.xx) 56(84) bytes of data.
> 64 bytes from mondomaine.fr (xx.xx.xx.xx): icmp_seq=1 ttl=55 time=38.7 ms
> 64 bytes from mondomaine.fr (xx.xx.xx.xx): icmp_seq=2 ttl=55 time=36.6 ms
> 64 bytes from mondomaine.fr (xx.xx.xx.xx): icmp_seq=3 ttl=55 time=38.2 ms
> 64 bytes from mondomaine.fr (51.255.85.179): icmp_seq=4 ttl=55 time=41.8 ms
> — mondomaine.fr ping statistics —
> 4 packets transmitted, 4 received, 0% packet loss, time 3003ms
> rtt min/avg/max/mdev = 36.648/38.860/41.841/1.890 ms

Donc je pense plutôt à un souci de configuration du Firewall (UFW)… Mais non :
> # ufw status verbose
> Status: active
> Logging: on (low)
> Default: deny (incoming), allow (outgoing), deny (routed)
> New profiles: skip
> To Action From
> – ------ ----
> 20/tcp ALLOW IN Anywhere
> 21/tcp ALLOW IN Anywhere
> 22/tcp ALLOW IN Anywhere
> 25/tcp ALLOW IN Anywhere
> 53/tcp ALLOW IN Anywhere
> 80/tcp ALLOW IN Anywhere
> 110/tcp ALLOW IN Anywhere
> 143/tcp ALLOW IN Anywhere
> 443/tcp ALLOW IN Anywhere
> 587/tcp ALLOW IN Anywhere
> 993/tcp ALLOW IN Anywhere
> 995/tcp ALLOW IN Anywhere
> 3306/tcp ALLOW IN Anywhere
> 8080/tcp ALLOW IN Anywhere
> 8081/tcp ALLOW IN Anywhere
> 10000/tcp ALLOW IN Anywhere
> 465/tcp ALLOW IN Anywhere
> 953/tcp ALLOW IN Anywhere
> 4190/tcp ALLOW IN Anywhere
> 9001/tcp ALLOW IN Anywhere
> 53/udp ALLOW IN Anywhere
> 3306/udp ALLOW IN Anywhere
> 20/tcp (v6) ALLOW IN Anywhere (v6)
> 21/tcp (v6) ALLOW IN Anywhere (v6)
> 22/tcp (v6) ALLOW IN Anywhere (v6)
> 25/tcp (v6) ALLOW IN Anywhere (v6)
> 53/tcp (v6) ALLOW IN Anywhere (v6)
> 80/tcp (v6) ALLOW IN Anywhere (v6)
> 110/tcp (v6) ALLOW IN Anywhere (v6)
> 143/tcp (v6) ALLOW IN Anywhere (v6)
> 443/tcp (v6) ALLOW IN Anywhere (v6)
> 587/tcp (v6) ALLOW IN Anywhere (v6)
> 993/tcp (v6) ALLOW IN Anywhere (v6)
> 995/tcp (v6) ALLOW IN Anywhere (v6)
> 3306/tcp (v6) ALLOW IN Anywhere (v6)
> 8080/tcp (v6) ALLOW IN Anywhere (v6)
> 8081/tcp (v6) ALLOW IN Anywhere (v6)
> 10000/tcp (v6) ALLOW IN Anywhere (v6)
> 465/tcp (v6) ALLOW IN Anywhere (v6)
> 953/tcp (v6) ALLOW IN Anywhere (v6)
> 4190/tcp (v6) ALLOW IN Anywhere (v6)
> 9001/tcp (v6) ALLOW IN Anywhere (v6)
> 53/udp (v6) ALLOW IN Anywhere (v6)
> 3306/udp (v6) ALLOW IN Anywhere (v6)

J'ai quand même été voir du côté du Manager : GLUE et DNS pour le nom de domaine, IPs du dédié ; j'ai ajouté un reverse (type mondomaine.fr) vers l'IP 2001:41d0:xxxx:xxxx::1 ; le test de ZoneMaster me donne une erreur sur la configuration de sdns2.ovh.net mais je ne pense pas que ça joue sur l'IPv6…

Bref, j'ai essayé pas mal de trucs et j'ai l'impression de passer à côté de quelque chose. Donc si vous avez des idées, je suis preneur (j'ai essoré mon cerveau, là)!

Bonjour,

Que donne un traceroute vers la gateway? Ou Google (en ipv6)

Et ta gateway ipv6 ? Elle ping?
Tu es sur quelle est bonne ?

Le problème se situe donc entre ton serveur et la gateway…
Le firewall laisse bien passer ipv6 ?

Il doit bien y avoir un mauvais réglage qques part sur ton serveur.

Tu ne peux pas désactiver le pare-feu complètement ne serait ce que 30 secondes pour tester ?
Ça irait plus vite..

Bonjour,a

Avez-vous testé en "rescue" ?
Si oui et que cela ne fonctionne pas il faut contacter le support OVH.

Cordialement, janus57


J'ai arrêté UFW et changé les règles Ip6tables pour la passoire suivante :


Tu ne peux pas tout enlever ipv4 et ipv6 même 30 secondes pour tester ?
Des fois qu'il y ait des règles résiduelles ou autre ?
Je ne pense pas qu une règle ipv4 puisse bloquer ipv6 mais bon..

Sinon il faut voir avec Ovh.. Car avec les ipv6 partiellement masquées difficile de savoir si il n'y a pas une coquille sur la gateway.

Bonjour,


Le mode Rescue, ça ne sert pas à détecter une panne matérielle ?

Non pas que.
Il permet de faire des tests matériel + réseau + accès au données sur le serveur en cas de plantage logiciel.

Cordialement, janus57

Mais je ne sais pas si le mode rescue teste ipv6..

Bonjour,

Un petit up dans l'espoir qu'une solution existe…

J'ai exactement le même problème, mon fichier /etc/network/interfaces est correct mais l'IPv6 ne monte pas au démarrage du serveur, je suis obligé de prendre la main en ssh via l'IPv4 après boot pour lancer la commande "/sbin/ifconfig eth0 inet6 add 2001:41d0:XXXX:XXXX::", alors seulement l'IPv6 devient fonctionnel !
J'ai déjà eu plusieurs échanges avec le support SoYouStart, qui a validé ma configuration, mais ne m'apporte que les solutions suivantes:
1. Suivre la procédure d'installation de l'IPv6, c'est déjà fait et ne mène à rien !
2. Démarrer en mode rescue pour faire des tests qui valident le bon fonctionnement de l'IPv6, c'est fait aussi, mais le but c'est que cela fonctionne en prod, pas en rescue !!
3. Me rabattre sur le forum pour trouver de l'aide, voilà, j'en suis là… !!!

Pour être plus concret, j'indique tout ce que j'ai pu faire comme test en mode rescue et en prod, voici mes tests et mon analyse…

## 'ip a' juste après boot en rescue
root@rescue:~# ip a
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
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: dummy0: mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 02:c9:09:33:cf:f7 brd ff:ff:ff:ff:ff:ff
3: ifb0: mtu 1500 qdisc noop state DOWN group default qlen 32
link/ether d2:9a:1b:40:e5:21 brd ff:ff:ff:ff:ff:ff
4: ifb1: mtu 1500 qdisc noop state DOWN group default qlen 32
link/ether 4a:ad:97:ad:33:e0 brd ff:ff:ff:ff:ff:ff
5: eth0: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 4c:72:b9:43:dd:78 brd ff:ff:ff:ff:ff:ff
inet 94.23.203.92/24 brd 94.23.203.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 2001:41d0:2:4e5c::/64 scope global
valid_lft forever preferred_lft forever
inet6 fe80::4e72:b9ff:fe43:dd78/64 scope link
valid_lft forever preferred_lft forever
6: teql0: mtu 1500 qdisc noop state DOWN group default qlen 100
link/void
7: tunl0@NONE: mtu 1480 qdisc noop state DOWN group default qlen 1000
link/ipip 0.0.0.0 brd 0.0.0.0
8: gre0@NONE: mtu 1476 qdisc noop state DOWN group default qlen 1000
link/gre 0.0.0.0 brd 0.0.0.0
9: gretap0@NONE: mtu 1462 qdisc noop state DOWN group default qlen 1000
link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
10: erspan0@NONE: mtu 1450 qdisc noop state DOWN group default qlen 1000
link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
11: sit0@NONE: mtu 1480 qdisc noop state DOWN group default qlen 1000
link/sit 0.0.0.0 brd 0.0.0.0
12: ip6tnl0@NONE: mtu 1452 qdisc noop state DOWN group default qlen 1000
link/tunnel6 :: brd ::

## Commandes IP :
root@rescue:~# ip -6 addr add 2001:41d0:3:163::1/64 dev eth0
root@rescue:~# ip -6 route add 2001:41d0:0002:4eff:ff:ff:ff:ff dev eth0
RTNETLINK answers: File exists
root@rescue:~# ip -6 route add default via 2001:41d0:0002:4eff:ff:ff:ff:ff dev eth0

## 'ip a' semble confirmer l'IPv6
root@rescue:~# ip a
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
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: dummy0: mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 2a:cd:f8:be:8f:24 brd ff:ff:ff:ff:ff:ff
3: ifb0: mtu 1500 qdisc noop state DOWN group default qlen 32
link/ether ce:ac:3a:31:b0:35 brd ff:ff:ff:ff:ff:ff
4: ifb1: mtu 1500 qdisc noop state DOWN group default qlen 32
link/ether 92:26:e9:d6:61:29 brd ff:ff:ff:ff:ff:ff
5: eth0: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 4c:72:b9:43:dd:78 brd ff:ff:ff:ff:ff:ff
inet 94.23.203.92/24 brd 94.23.203.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 2001:41d0:3:163::1/64 scope global
valid_lft forever preferred_lft forever
inet6 2001:41d0:2:4e5c::/64 scope global
valid_lft forever preferred_lft forever
inet6 fe80::4e72:b9ff:fe43:dd78/64 scope link
valid_lft forever preferred_lft forever
6: teql0: mtu 1500 qdisc noop state DOWN group default qlen 100
link/void
7: tunl0@NONE: mtu 1480 qdisc noop state DOWN group default qlen 1000
link/ipip 0.0.0.0 brd 0.0.0.0
8: gre0@NONE: mtu 1476 qdisc noop state DOWN group default qlen 1000
link/gre 0.0.0.0 brd 0.0.0.0
9: gretap0@NONE: mtu 1462 qdisc noop state DOWN group default qlen 1000
link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
10: erspan0@NONE: mtu 1450 qdisc noop state DOWN group default qlen 1000
link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
11: sit0@NONE: mtu 1480 qdisc noop state DOWN group default qlen 1000
link/sit 0.0.0.0 brd 0.0.0.0
12: ip6tnl0@NONE: mtu 1452 qdisc noop state DOWN group default qlen 1000
link/tunnel6 :: brd ::

## Commandes MTR :
De chez moi au serveur…

olivier@DARKVADOR:~$ date && mtr -r -c 100 -6 2001:41d0:2:4e5c::
dimanche 22 septembre 2019, 15:17:12 (UTC+0200)
Start: 2019-09-22T15:17:12+0200
HOST: DARKVADOR Loss% Snt Last Avg Best Wrst StDev
1.|-- 2001:41d0:fe2e:7000:5a98: 0.0% 100 0.6 1.0 0.6 3.2 0.6
2.|-- 2001:41d0:fde0::10 0.0% 100 41.2 46.2 40.1 210.8 20.8
3.|-- 2001:41d0:fde0:80::3 1.0% 100 43.6 47.5 40.1 299.4 28.7
4.|-- be100-45.1a9.fr.eua9.fr.eu 39.0% 100 42.3 47.6 40.6 282.9 33.0
5.|-- be100-1043.1nc5.fr.nc5.fr. 54.0% 100 167.5 61.2 44.7 296.9 44.3
6.|-- po100.1a75.fr.eua75.fr.eu 0.0% 100 45.1 50.0 43.8 287.6 27.6
7.|-- 2001:41d0:0:5:2::5b 0.0% 100 45.0 49.2 43.5 177.2 19.3
8.|-- 2001:41d0:0:5:3::85 0.0% 100 44.7 62.2 44.0 241.3 38.7
9.|-- smtp.ablink.fr 0.0% 100 44.3 48.8 43.2 211.8 21.4

Du serveur vers un autre serveur…

root@rescue:~# date && mtr -r -c 100 -6 2001:41d0:2:3b8f::
Sun Sep 22 15:22:41 CEST 2019
Start: Sun Sep 22 15:22:41 2019
HOST: rescue.ovh.net Loss% Snt Last Avg Best Wrst StDev
1.|-- 16k.fr.eu6k.fr.eu 0.0% 100 0.8 11.5 0.4 392.5 42.9
2.|-- mx2.ablink.fr 0.0% 100 0.3 0.4 0.3 0.6 0.0

Tout me semble ok, qu'en pensez-vous ?

## Après reboot en mode normal, toujours pas d'IPv6…

root@smtp.ablink.fr:~# ifconfig eth0
eth0: flags=4163 mtu 1500
inet 94.23.203.92 netmask 255.255.255.0 broadcast 94.23.203.255
inet6 fe80::4e72:b9ff:fe43:dd78 prefixlen 64 scopeid 0x20
ether 4c:72:b9:43:dd:78 txqueuelen 1000 (Ethernet)
RX packets 5041 bytes 1029978 (1005.8 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 5708 bytes 1265366 (1.2 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 20 memory 0xfe500000-fe520000

root@smtp.ablink.fr:~# ip a
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
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: dummy0: mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 02:ee:ed:59:37:6f brd ff:ff:ff:ff:ff:ff
3: ifb0: mtu 1500 qdisc noop state DOWN group default qlen 32
link/ether 9e:1e:41:7d:3d:0a brd ff:ff:ff:ff:ff:ff
4: ifb1: mtu 1500 qdisc noop state DOWN group default qlen 32
link/ether 8a:00:e4:05:aa:9e brd ff:ff:ff:ff:ff:ff
5: eth0: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 4c:72:b9:43:dd:78 brd ff:ff:ff:ff:ff:ff
inet 94.23.203.92/24 brd 94.23.203.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::4e72:b9ff:fe43:dd78/64 scope link
valid_lft forever preferred_lft forever
6: teql0: mtu 1500 qdisc noop state DOWN group default qlen 100
link/void
7: tunl0@NONE: mtu 1480 qdisc noop state DOWN group default qlen 1000
link/ipip 0.0.0.0 brd 0.0.0.0
8: gre0@NONE: mtu 1476 qdisc noop state DOWN group default qlen 1000
link/gre 0.0.0.0 brd 0.0.0.0
9: gretap0@NONE: mtu 1462 qdisc noop state DOWN group default qlen 1000
link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
10: erspan0@NONE: mtu 1450 qdisc noop state DOWN group default qlen 1000
link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
11: sit0@NONE: mtu 1480 qdisc noop state DOWN group default qlen 1000
link/sit 0.0.0.0 brd 0.0.0.0
12: ip6tnl0@NONE: mtu 1452 qdisc noop state DOWN group default qlen 1000
link/tunnel6 :: brd ::

## Pourtant le fichier /etc/network/interfaces semble tout à fait correct…

root@smtp.ablink.fr:~# cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 94.23.203.92
netmask 255.255.255.0
network 94.23.203.0
broadcast 94.23.203.255
gateway 94.23.203.254

iface eth0 inet6 static
address 2001:41d0:0002:4e5c::
netmask 64
dns-nameservers 2001:41d0:3:163::1
post-up /sbin/ip -family inet6 route add 2001:41d0:0002:4eff:ff:ff:ff:ff dev eth0
post-up /sbin/ip -family inet6 route add default via 2001:41d0:0002:4eff:ff:ff:ff:ff
pre-down /sbin/ip -family inet6 route del default via 2001:41d0:0002:4eff:ff:ff:ff:ff
pre-down /sbin/ip -family inet6 route del 2001:41d0:0002:4eff:ff:ff:ff:ff dev eth0`

C'est comme si le fichier n'était pas pris en compte.

Mes propres recherches sur le net montrent que la commande suivante permet de monter l'IPv6, mais à la mano après chaque reboot ce c'est pas envisageable.
`root@smtp.ablink.fr:~# /sbin/ifconfig eth0 inet6 add 2001:41d0:0002:4e5c::`

Maintenant l'IPv6 est bien là

root@smtp.ablink.fr:~# ip a
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
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: dummy0: mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 02:ee:ed:59:37:6f brd ff:ff:ff:ff:ff:ff
3: ifb0: mtu 1500 qdisc noop state DOWN group default qlen 32
link/ether 9e:1e:41:7d:3d:0a brd ff:ff:ff:ff:ff:ff
4: ifb1: mtu 1500 qdisc noop state DOWN group default qlen 32
link/ether 8a:00:e4:05:aa:9e brd ff:ff:ff:ff:ff:ff
5: eth0: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 4c:72:b9:43:dd:78 brd ff:ff:ff:ff:ff:ff
inet 94.23.203.92/24 brd 94.23.203.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 2001:41d0:2:4e5c::/128 scope global
valid_lft forever preferred_lft forever
inet6 fe80::4e72:b9ff:fe43:dd78/64 scope link
valid_lft forever preferred_lft forever
6: teql0: mtu 1500 qdisc noop state DOWN group default qlen 100
link/void
7: tunl0@NONE: mtu 1480 qdisc noop state DOWN group default qlen 1000
link/ipip 0.0.0.0 brd 0.0.0.0
8: gre0@NONE: mtu 1476 qdisc noop state DOWN group default qlen 1000
link/gre 0.0.0.0 brd 0.0.0.0
9: gretap0@NONE: mtu 1462 qdisc noop state DOWN group default qlen 1000
link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
10: erspan0@NONE: mtu 1450 qdisc noop state DOWN group default qlen 1000
link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
11: sit0@NONE: mtu 1480 qdisc noop state DOWN group default qlen 1000
link/sit 0.0.0.0 brd 0.0.0.0
12: ip6tnl0@NONE: mtu 1452 qdisc noop state DOWN group default qlen 1000
link/tunnel6 :: brd ::

Dans l'attente de votre aide…