documentation/services/networking/radvd.md

3.9 KiB

Radvd

Radvd est une implementation du mécanisme d'autoconfiguration des adresses IP en ipv6. Il permet au client de connaitre l'adresse du routeur et de se construire lui même une adresse à partir du préfixe annoncé par le routeur et de son adresse MAC. Des extensions du protocoles permettes aussi la configuration des serveurs dns.

Principe

Adresse ipv6 et EUI-64

Il est possible pour un pair possédant une adresse MAC et un prefixe ipv6 de taille au plus /64 de construire une adresse ipv6. Cependant, rien n'assure qu'elle soit unique à ce stade et il faudra par la suite le vérifier. Mais on ne s'interesse ici qu'au processus de construction.

De son adresse MAC (donnée à 48 bits), on dérive un identifiant de l'interface sur le lien de 64 bits en insertant les 16 bits FF:FE au milieu de l'adresse MAC puis on inverse le 7 ème bit. On peut ensuite suffixer cet identifiant au préfixe dans lequel on chercher à construire notre addresse ipv6. Ainsi 00:25:90:69:8c:74 devient 00:25:90:ff:fe:69:8c:74 puis 02:25:90:ff:fe:69:8c:74 qui donne l'adresse fd00::10:0225:90ff:fe69:8c74/64 dans le prefixe fd00:0:0:10::/64.

Processus d'autoconfiguration complet

Lorsqu'une machine configure une interface supportant l'ipv6 sur un lien, celle ci va tenter de se crééer une premier adresse local au lien. Elle est donc judicieusement appelé ip de lien locale. Pour cela, il va se contruire comme expliquer précedemment une adresse dans le prefixe fe80::/64. Pour s'assurer qu'elle est effectivement unique, il va envoyer au groupe ipv6 all-node (ff02::1) qui comme son nom l'indique contient tous les nœuds si quelqu'un utilise déjà l'adresse. Si c'est le cas, il ne poussera pas sa configuration plus loin. Sinon après un délai sans réponse, il s'assignera l'adresse.

Notre pair a donc maintenant une adresse sur le lien et il peut écouter les annonces (judicieusement appelé routeur-advertissement ou RA) périodiques qu'envoie le routeur au groupe all-node. S'il ne désire pas patienté jusqu'à la prochaine annonce le client peut envoyer un routeur-sollicitation au groupe all-routers. Dans ces annonces le routeur inclut entre autre le prefixe dans lequel le client devrait prendre son adresse, son adresse de lien local ainsi que des informations à propos des serveurs dns. Une fois ces informations récupérées le client peut procéder aux dernières étape de configuration de son interface réseaux en assignant l'adresse qu'il a construit à partir du préfixe que lui a fourni le routeur (en vérifiant en amont son unicité sur le lien) et en configurant la gateway à l'adresse de lien local du routeur.

Installation

On se contente de tirer le logiciel des repository debian sudo apt install radvd.

Configuration

La page de manuel détaillant les options de configurations de radvd est consultable en utilisant man 5 radvd.conf.

La configuration du logiciel se fait par bloc d'interface sur lesquel on va publier nos RA. Dans un bloc on peut ensuite définir

  • des options génériques à propos de l'annonce comme par exemple l'intervalle auquel notre routeur devrait publier des annonces ou le temps que la route devrait être conservé par le client.
  • les prefixes que le routeur va annoncer sur le lien et certaines options associées
  • les options de configurations du DNS

Par exemple, le bloc suivant configure des annonces sur l'interface ens1 envoyé toutes les 30 secondes avec comme préfixe 2a0c:700:12::/64, adh.crans.org comme liste de recherche pour les dns et 2a0c:700:12::ff:fe00:9912 comme adresse du serveur dns.

interface ens1 {
        AdvSendAdvert on;
        AdvDefaultPreference high;
        MaxRtrAdvInterval 30;

        prefix 2a0c:700:12::/64 {
                AdvRouterAddr on;
        };

        # La zone DNS
        DNSSL adh.crans.org {};

        # Les DNS récursifs
        RDNSS 2a0c:700:12::ff:fe00:9912 {};
};