DHCPv6 et DDNS

Bonjour,

j’ai un serveur DNS IPv4/IPv6 qui marche très bien, y compris les zones reverses IPv4 et Ipv6 (j’arrive sans problème à faire une mise à jour avec nsupdate via une clef).

j’ai aussi sur la même machine un serveur DHCP qui fournit les adresses IPv4 et IPv6 à mes machines.

Le DDNS ipv4 fonctionne parfaitement, mais par contre le DDNS IPv6 lui ne fonctionne pas. je n’ai aucun message d’erreur. Il ne fait tout simplement rien.

Coté configuration DDNS IPv6 du DHCP j’ai ça:

    include "/etc/dhcp/rndc.key";
    #
    deny client-updates;
    ddns-domainname "net.enedwaith.org";
    ddns-updates on;
    ddns-update-style standard;

    zone net.enedwaith.org. {
            primary 127.0.0.1;
            key rndc-key;
    }

    zone 0.0.0.0.0.0.0.0.0.0.0.1.2.3.4.5.6.7.8.9.0.a.b.c.d.e.0.c.c.f.ip6.arpa. {
            primary 127.0.0.1;
            key rndc-key;
    }

subnet6 fcc0:edcb:a098:7654:3210::/120 {
        range6 fcc0:edcb:a098:7654:3210::10 ffcc0:edcb:a098:7654:3210::50;
        prefix6 fcc0:edcb:a098:7654:3210:: fcc0:edcb:a098:7654:3219:: /120;
        option dhcp6.name-servers fcc0:edcb:a098:7654:3210::fe;
        ddns-domainname "net.enedwaith.org.";
        ddns-rev-domainname "0.0.0.0.0.0.0.0.0.0.0.1.2.3.4.5.6.7.8.9.0.a.b.c.d.e.0.c.c.f.ip6.arpa.";
}

Dans les logs je vois bien les messages

added new forward map from <host> to <ipv4>
added reverse map from <reverse ipv4> to <host>

mais rien concernant ipv6.

j’ai quelques précision, le dhclient donne les messages suivant concernant ipv6:

Internet Systems Consortium DHCP Client 4.4.1
Copyright 2004-2018 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Listening on Socket/enp0s3
Sending on Socket/enp0s3
PRC: Confirming active lease (INIT-REBOOT).
XMT: Forming Confirm, 0 ms elapsed.
XMT: X-- IA_NA 27:e1:a5:bd
XMT: | X-- Confirm Address
XMT: V IA_NA appended.
XMT: Confirm on enp0s3, interval 940ms.
XMT: Forming Confirm, 940 ms elapsed.
XMT: X-- IA_NA 27:e1:a5:bd
XMT: | X-- Confirm Address
XMT: V IA_NA appended.
XMT: Confirm on enp0s3, interval 1880ms.
XMT: Forming Confirm, 2820 ms elapsed.
XMT: X-- IA_NA <mac adresse 4 derniers termes>
XMT: | X-- Confirm Address
XMT: V IA_NA appended.
XMT: Confirm on enp0s3, interval 3920ms.
XMT: Forming Confirm, 6740 ms elapsed.
XMT: X-- IA_NA 27:e1:a5:bd
XMT: | X-- Confirm Address
XMT: V IA_NA appended.
XMT: Confirm on enp0s3, interval 3260ms.
Max retransmission duration exceeded.
PRC: Bound to lease 00:01:00:01:27:4e:e5:d1:08:00:27:3a:c8:fd.

Dans ces messages, j’ai plusieurs points:

  • la durée de retransmission dépassée. je n’ai pas trouvé à quoi ça correspondait, mais ce serait peut être lié au choix du bail par le client (dans le cas ou plusieurs réponses pourraient arriver). mais je n’ai qu’un seul serveur sur le réseau.
  • le fichier de leases est correct, les informations inattendues s’y trouvent.

Coté ipv4 j’ai les messages suivants:

Nov 25 18:24:38 pctest01 dhclient[5553]: send_packet: No buffer space available
Nov 25 18:24:38 pctest01 dhclient[5553]: dhclient.c:2445: Failed to send 300 byte long packet over enp0s3 interface.

mais le lease est correct aussi et l’update dns se fait correctement.

Si il y a quelqu’un qui a déjà vu un serveur DHCPv6 avec DDNS…

J’ai un bind9 en IPV4 et n’ai jamais travaillé en IPV6. Cependant suite à ce pb


Je vais probablement m’y mettre sous peu.
2 questions :

  • as tu un première doc à me conseiller pour démarrer?
  • une question de total débutant, quand IPV4 et IPV6 sont configurés (sur un poste? sur un réseau local?) comment se fait le choix? Sous-entendu, comment ne pas perturber le réseau actuel en IPV4 avec les essais en IPV6?

la priorité de l’utilisation IPv6 ou Ipv4 sur un poste linux se fait par rapport au fichier /etc/gai.conf.
Pour prioriser l’IPv4 il suffit de dé-commenter la ligne :

precedence ::ffff:0:0/96  100

Ainsi toutes les requêtes du système se feront prioritairement en IPv4 et ensuite seulement en IPv6.
sous windows il y a la même chose (en moins simple, normal c’est windows :slight_smile: ) https://msunified.net/2016/05/25/how-to-set-ipv4-as-preferred-ip-on-windows-server-using-powershell/

ensuite, si tu connais bien la configuration réseau locale (en gros le PC est directement relié à la box sans fioritures particulières, une solution simple consiste à faire un iso netinst avec preseed.
Il suffit de graver la clef USB, demarrer dessus et ensuite juste à attendre que ce soit finit. Et tu obtient une configuration de base utilisable directement. Tu peux même y prévoir une configuration d’un tunnel entre le poste distant et chez toi.

Concernant de la doc, coté preseed, ce n’est pas simple. j’ai fait beaucoup de test par moi même car la documentation est plutot succinte, en particulier sur le partitionnement, le tasksel, et la configuration des locales et du clavier.

mais je peux te passer ce que j’utilise pour la configuration d’un simple server virtual, parfaitement utilisable sur n’importe quelle machine. la seule chose à savoir c’est sur quel disque installer (pour ne pas « griller » un autre disque.
mais ce n’est qu’une seule ligne dans le preseed.
Comme ca tu as une machine minimale, avec les fonctionnaliutés reseaux, et securité necessaire. sans gnome/kde/lxde etc…

une fois connecté soit en ssh direct, soit via un tunnel, il te suffit ensuite de faire les taskel install voulu, puis les apt install necessaires.

Pour preseed, je suis parti de la doc de base debian Wiki:
https://wiki.debian.org/DebianInstaller/Preseed
https://www.debian.org/releases/buster/
https://www.debian.org/releases/stable/s390x/apbs04.fr.html
https://www.debian.org/releases/buster/example-preseed.txt
https://preseed.debian.net/debian-preseed


et pour créer le fichier ISO une fois réalisé les confs nécessaires:

  • en premier le calcul du checksum des fichiers de l’iso:
  • en deuxieme la creation de l’iso:
find -follow -type f ! -name md5sum.txt -print0 | xargs -0 md5sum > md5sum.txt

xorriso -as mkisofs -r -checksum_algorithm_iso md5,sha1,sha256,sha512 -o <path/nom/de/fichier.iso -J -joliet-long -cache-inodes -isohybrid-mbr /usr/lib/ISOLINUX/isohdpfx.bin -b isolinux/isolinux.bin -c isolinux/boot.cat -boot-load-size 4  -boot-info-table -no-emul-boot -eltorito-alt-boot -e boot/grub/efi.img -no-emul-boot -isohybrid-gpt-basdat -isohybrid-apm-hfsplus >le repertoire des fichiers de mon iso>

Pour l’iso de départ une netinst est plutot bien. un montage loop sur un point de montage pour copier tous les ficheirs dans un répertoire de travail.
ne pas oublier de modifier les fichiers isolinux/txt.cfg pour le menu en mode texte, demarrage BIOS, ou boot/grub/grub.cfg pour le menu demarrage en mode graphique EFI.

je peux te donner un fichier preseed, où il y a tout ça avec un partitionnement qui marche en EFI ou en normal, avec LVM.

pour etre préci, j’ai un fichier iso de trois config dfferentes;: VM avec deux interfaces, un portable avec 1 wifgi et 1 ethernet, et un routeur avec 4 interfaces, avec la dernière version 0.1.257 (toujours en developpement) versions et 577 tests :slight_smile:

par contre, mieux vaudrait peut être faire un autre fil de discussion :wink:

MERCI pour toutes ces infos, je vais regarder doucement et voir imaginer comment démarrer

Pas maintenant en tous les cas, il faut que je comprenne déjà (un peu)

rien compris :slight_smile: mais c’est pas grave pour l’instant.
Laisse moi (un peu) de temps, et je reviendrai vers toi, probablement pas avant l’année prochaine cependant.

ca marche, je t’ai envoyé le fichier que j’utilise , tu devrais avoir du grain à moudre pour un moment avec ça :slight_smile: