« DHCPv6 » : différence entre les versions
Aucun résumé des modifications |
Aucun résumé des modifications |
||
Ligne 7 : | Ligne 7 : | ||
*DHCPv6 | *DHCPv6 | ||
<blockquote> | <blockquote> | ||
NB : Les commandes indiquées ici concernent du matériel Cisco | NB : Les commandes indiquées ici concernent du matériel Cisco | ||
</blockquote> | </blockquote> | ||
== SLAAC == | == SLAAC == | ||
Ligne 46 : | Ligne 46 : | ||
*M : configuration des adresses générées (1 = "Récupère ton adresse chez un DHCP") | *M : configuration des adresses générées (1 = "Récupère ton adresse chez un DHCP") | ||
**Commande Cisco : <code>ipv6 nd managed-config-flag</code> | **Commande Cisco : <code>ipv6 nd managed-config-flag</code> | ||
*O : Autre (1 = "Récupère tes autres informations de connexion chez un DHCP") | *O : Autre (1 = "Récupère tes autres informations de connexion chez un DHCP") | ||
**Commande Cisco : <code>ipv6 nd other-config-flag</code> | **Commande Cisco : <code>ipv6 nd other-config-flag</code> | ||
{| style="width: 500px" cellspacing="1" cellpadding="1" border="1" | {| style="width: 500px" cellspacing="1" cellpadding="1" border="1" | ||
Ligne 145 : | Ligne 145 : | ||
== Exemple complet == | == Exemple complet == | ||
<div style="background:#eeeeee; border:1px solid #cccccc; padding:5px 10px"><code>ipv6 unicast-routing<br/> ipv6 dhcp pool IPV6-STATELESS<br/> dns server 2001:db8:cafe:aaaa::5<br/> domain-name example.com<br/> exit<br/> interface g0/1<br/> ipv6 address 2001:db8:cafe:1::1/64<br/> ipv6 dhcp server IPV6-STATELESS<br/> ipv6 nd other-config-flag</code></div> | <div style="background:#eeeeee; border:1px solid #cccccc; padding:5px 10px"><code>ipv6 unicast-routing<br/> ipv6 dhcp pool IPV6-STATELESS<br/> dns server 2001:db8:cafe:aaaa::5<br/> domain-name example.com<br/> exit<br/> interface g0/1<br/> ipv6 address 2001:db8:cafe:1::1/64<br/> ipv6 dhcp server IPV6-STATELESS<br/> ipv6 nd other-config-flag</code></div> | ||
== Configuration en tant que client DHCPv6 sans état == | == Configuration en tant que client DHCPv6 avec ou sans état == | ||
Bien que ce scénario soit peu fréquent, il est toujours possible (un routeur est généralement en IP fixe). | Bien que ce scénario soit peu fréquent, il est toujours possible (un routeur est généralement en IP fixe). | ||
Le routeur client a besoin d'une adresse de lien local IPv6 sur l'interface pour envoyer et recevoir des messages IPv6 tels que les RS et message DHCPv6. Cette adresse est crée automatiquement lorsqu'IPv6 est configuré sur une interface. Cela peut se produire soit en configurant une adresse de monodiffusion globale sur l'interface, soit avec la commande IPv6 enable. Les commandes pour activer l'autoconfiguration sont ensuite assez simples : | Le routeur client a besoin d'une adresse de lien local IPv6 sur l'interface pour envoyer et recevoir des messages IPv6 tels que les RS et message DHCPv6. Cette adresse est crée automatiquement lorsqu'IPv6 est configuré sur une interface. Cela peut se produire soit en configurant une adresse de monodiffusion globale sur l'interface, soit avec la commande IPv6 enable. Les commandes pour activer l'autoconfiguration sont ensuite assez simples : | ||
<code>interface ''nom-de-l'interface''<br/> ipv6 enable<br/> ipv6 address autoconfig</code> | <code>interface ''nom-de-l'interface''<br/> ipv6 enable<br/> ipv6 address autoconfig #Stateless</code><br/> <code>ipv6 address dhcp #Stateful</code> | ||
Ce que fera ensuite le routeur (SLAAC, DHCPv6 stateless ou statefull) dépend de ce qu'il recevra dans les RA (il faudra, du coup, un autre routeur pour configurer celui-ci !). | Ce que fera ensuite le routeur (SLAAC, DHCPv6 stateless ou statefull) dépend de ce qu'il recevra dans les RA (il faudra, du coup, un autre routeur pour configurer celui-ci !). | ||
== Vérification de DHCPv6 sans état == | == Vérification de DHCPv6 sans état == | ||
Ligne 168 : | Ligne 168 : | ||
=== Côté client === | === Côté client === | ||
Pour vérifier comment notre routeur client DHCPv6 s'est configuré, il suffit d'utiliser la commande : | Pour vérifier comment notre routeur client DHCPv6 s'est configuré, il suffit d'utiliser la commande : | ||
<code>show ipv6 interface ''nom-de-l'interface''</code> | <code>show ipv6 interface ''nom-de-l'interface''</code> | ||
Celle-ci renvoie nombre d'informations, parmi lesquelles l'adresse utilisée et la méthode de configuration ("Stateless address autoconfig enabled" signifie que la configuration automatique sans état est activée et que le routeur dispose d'une adresse de monodiffusion IPv6). Pour voir le détail des messages échangés entre client et serveur, on peut utiliser la commande : | Celle-ci renvoie nombre d'informations, parmi lesquelles l'adresse utilisée et la méthode de configuration ("Stateless address autoconfig enabled" signifie que la configuration automatique sans état est activée et que le routeur dispose d'une adresse de monodiffusion IPv6). Pour voir le détail des messages échangés entre client et serveur, on peut utiliser la commande : | ||
<code>debug ipv6 dhcp detail</code> | <code>debug ipv6 dhcp detail</code> | ||
Celle-ci permet de voir de façon détaillée les échanges de message qui ont eu lieu. | Celle-ci permet de voir de façon détaillée les échanges de message qui ont eu lieu. | ||
= Configuration d'un routeur en tant que serveur DHCPv6 avec état = | |||
La configuration d'un serveur DHCPv6 avec état est similiaire à celle d'un serveur sans état : la seule différence est que le routeur dispose également des informations d'adressage. | |||
== Activation du routage IPv6 == | |||
De la même façon qu'en stateless, on utilise la commande : | |||
<code>ipv6 unicast-routing</code> | |||
== Configuration d'un pool DHCPv6 == | |||
On va créer un pool et mettre le routeur en mode de configuration DHCPv6: | |||
<code>ipv6 dhcp pool ''pool-name''</code> | |||
== Configuration des paramètres du pool == | |||
Dans le cas du statefull, tous les paramètres d'adressage et de configuration doivent être attribués par le serveur. On va commencer par indiquer le pool d'adresses à attribuer par le serveur : | |||
<code>address ''prefix/length'' [lifetime {''valid-lifetime preferred-lifetime'' | infinite}]</code> | |||
À ne pas confondre avec l'adresse qui sera attribuée à l'interface en elle-même, il s'agit ici bien du pool d'adresses qui seront distribuée aux clients. Les deux informations sont différentes et doivent être cohérentes! | |||
L'option lifetime indique la durée de validité et la durée préférée des baux en secondes. Le client utilisera l'adresse IPv6 source du RA. On inclue également les informations concernant DNS: | |||
<code>dns-server ''dns-server-address''<br/> domain-name ''nom-de-domaine''</code> | |||
== Configuration de l'interface == | |||
Nous allons enfin choisir une interface, y relier notre pool pour que le serveur DHCP y soit actif, et modifier notre indicateur M pour le passer à 1. | |||
<code>interface ''type numéro''<br/> ipv6 dhcp server ''pool-name''<br/> ipv6 nd managed-config-flag</code> | |||
== Exemple complet == | |||
[[File:CISCO Statefull.png|614x248px]] | |||
= Vérification de DHCPv6 avec état = | |||
Si la plupart des commandes utilisées pour vérifier DHCPv6 Stateless s'appliquent ici aussi, d'autres viennent s'ajouter : | |||
*<code>show ipv6 dhcp pool</code> : Donne des informations sur le pool que l'on a configuré, avec entre autre le nombre de clients | |||
*<code>show ipv6 dhcp binding</code> : Voir les clients : ils sont d'abord présentés par leur adresse de lien-local, et on a un peu plus bas l'adresse qu'ils ont récupéré | |||
*(côté client) : <code>show ipv6 interface ''nomiunterface''</code> : Montre l'adresse IPv6 utilisée et la passerelle | |||
| | ||
| |
Version du 9 décembre 2018 à 17:17
Configuration automatique des adresses sans état ICMPv6
Les adresses IPv6 qui sont configurée dynamiquement peuvent l'être de 2 façons :
- SLAAC
- DHCPv6
NB : Les commandes indiquées ici concernent du matériel Cisco
SLAAC
SLAAC permet à un périphérique de s'auto-configurer. ICMPv6 est au coeur de SLAAC, et il inclut des fonctions supplémentaires par rapport à ICMPv4. SLAAC utilise des messages d'annonce de routeur ICMPv6 pour fournir les informations d'adressage et d'autres informations de configuration qui seraient normalement fournies par un DHCP :
- RS : Router Sollicitation, envoyé par un client lorsque celui-ci est configuré en SLAACpour demander un RA. Il est envoyé sur le groupe des routeurs FF02::2
- RA : Router Anouncement envoyés par les routeurs toutes les 200 secondes ou en réponse à un RS; ils contiennent le préfixe et la longueur d'en-tête de l'adresse IPv6. Les clients utilisent ces informations pour s'auto-configurer. Ils sont envoyés sur le groupe de mutlidiffusion à tous les noeuds FF02::1
SLAAC est dit sans état car aucun service ne fait appel à un serveur. Aucun serveur quelles sont les adresses utilisées ou pas.
Fonctionnement de SLAAC
Pour qu'il puisse envoyer des RA, un routeur doit être activé en tant que routeur IPv6. Sur un routeur Cisco, cela se fait par la commande :
ipv6 unicast-routing
Ensuite, la logique suit l'image suivante :
Il est à noter que la création de l'ID interface peut se faire de deux façons :
- Soit avec EUI-64 (cf IPv6 )
- Soit par génération aléatoire
SLAAC et DHCPv6
Ce sont les paramètres indiqués dans le RA qui déterminent si un client est configuré pour obtenir automatiquement ses informations d'adressage par SLAAC, DHCPv6 ou les deux. Les RA contiennent deux indicateurs qui signalent l'option à utiliser par le client : l'indicateur de configuration des adresses générées (indicateur M) et l'indicateur de configuration autre (O). Différentes combinaisons d'indicateurs M et O permettent aux messages RA d'indiquer une des trois option d'adressage pour le périphérique, voir l'image :
Quelle que soit l'option utilisée, d'après la RFC 4861 il faut faire une détection des adresses dupliquées (DAD) sur toutes les adresses de monodiffusion, y compris celles configurées via SLAAC ou DHCPv6. Bien entendu, l'OS peut choisir d'ignorer le contenu du RA et se configurer comme il le souhaite.
Rappel des indicateurs:
- M : configuration des adresses générées (1 = "Récupère ton adresse chez un DHCP")
- Commande Cisco :
ipv6 nd managed-config-flag
- Commande Cisco :
- O : Autre (1 = "Récupère tes autres informations de connexion chez un DHCP")
- Commande Cisco :
ipv6 nd other-config-flag
- Commande Cisco :
Indicateur M | Indicateur O | |
SLAAC | 0 | 0 |
DHCP Stateless | 0 | 1 |
DHCP Stateful | 1 | 1 |
Nous allons détailler les 3 options :
Option SLAAC
C'est l'option par défaut sur les routeurs Cisco : les indicateur M et O sont tous les deux à 0. Le RA contient alors toutes les informations dont un ordinateur aurait besoin pour s'autoconfigurer.
Cette option indique au client d'utiliser exclusivement les informations fournies dans le message RA; aucune information supplémentaire n'est disponible auprès d'un serveur DHCPv6. Je ne détaillerais pas son fonctionnement ici, il est disponible dans les cours sur IPv6 et Cisco.
Côté routeur, les messages RA sont activés par rapport à une interface. Pour les remettre sur une interface, les indictauer M et O doivent retrouver leur valeur initiale par les commandes suivantes:
Router(config-if)# no ipv6 nd managed-config-flag
Router(config-if)# no ipv6 nd other-config-flag
Option DHCPv6 sans état
Cette option enjoint le client à utiliser des informations dans le RA pour l'adressage, mais les paramètres de configuration supplémentaires sont fournis par un serveur DHCPv6.
Le client commence par configurer son adresse après réception d'un RA. Il communique ensuite avec le serveur DHCPv6 sans état pour obtenir des informations complémentaires non fournies dans le message RA. Il peut s'agir d'une liste d'adresses de serveurs DNS, par exemple. Ce processus est dit sans état car le serveur ne conserve aucune information sur l'état des clients (c'est-à-dire une liste des adresses IPv6 utilisées): il ne fournit que des paramètres de configuration.
L'indictauer O est à 1 et l'indicateur M est à 0. Le O à 1 informe le client que des informations de configuration supplémentaires sont à demander auprès d'un serveur DHCPv6. On peut configurer ce type de RA sur un routeur Cisco par la commande :
Router(config-if)# ipv6 nd other-config-flag
Option DHCPv6 avec état (DHCPv6 uniquement)
Cette option est la plus proche de DHCPv4. Dans ce cas le RA enjoint le client de ne pas utiliser les informations qu'il contient. Toutes les informations d'adressage et de configuration doivent être obtenues auprès d'un serveur DHCPv6 avec état. On dit "avec état" car le serveur conserve des informations sur les clients. L'indicateur M indique si DHCPv6 stateful est activé. L'indicateur O n'as pas d'effet. Pour activer l'indicateur M sur un routeur Cisco :
Router(config-if)# ipv6 nd managed-config-flag
Fonctionnement de DHCPv6
DHCPv6, que ce soit avec ou sans état, commence toujours pas un message d'annonce de routeur, qu'il soit périodique ou sollicité. Si le DHCPv6 avec ou sans état est indiqué dans le message d'annonce de routeur, le périphérique commence alors les communications DHCPv6 avec le serveur.
Communications DHCPv6
Le processus DHCPv6 est alors invoqué. LEs messages DHCPv6 sont envoyés par UDP; le port côté serveur est le port 546. Le port côté client est le port 547. Les étapes sont alors :
- Le client doit localiser un serveur DHCPv6. Il envoie donc un message SOLLICITATION DHCPv6 au groupe des serveurs DHCPv6, FF02::1:2. Cette adresse de mutlidiffusion n'as qu'une portée de lien local, ce qui signifie que les routeurs ne routent pas les messages envoyés à cette adresse.
- Un ou plusieurs serveurs répondent par une message ANNONCE DHCPv6, envoyé en monodiffusion. Ce message informe le client que le serveur est disponible pour le service DHCPv6.
- Le client répond alors au serveur par un message REQUETE ou DEMANDE D'INFORMATIONS, selon qu'il utilise DHCPv6 avec ou sans état:
- En mode sans état, le client envoie un message DEMANDE D'INFORMATIONS au serveur, demandant uniquement les paramètres de configuration tels que l'adresse du serveur DNS. Le client a généré sa propre adresse IPv6 avec la méthode SLAAC.
- En mode avec état, le client envoie un message REQUETE DHCPv6 au serveur pour obtenir une adresse IPv6 et tous les autres paramètres de configuration.
- Le serveur envoie une message REPONSE DHCPv6 au client, qui contient les informations demandées dans le message REQUETE ou DEMANDE D'INFORMATIONS.
Configuration d'un routeur avec DHCPv6 sans état (en tant que serveur ou client)
4 étapes sont nécessaires:
Activation du routage IPv6
La commande ipv6 unicast-routing n'est pas indispensable pour que le routeur soit un serveur DHCPv6 sans état, mais elle indispensable pour que le routeur envoie ses RA.
ipv6 unicast-routing
Configuration d'un pool DHCPv6
La commande suivante crée un pool et sélectionne le routeur en mode de configuration DHCPv6, identifié par l'invite de type "Router(config-dhcpv6)#".
ipv6 dhcp pool pool-name
Configuration des paramètres du pool
Lors du processus SLAAC, le client a déjà reçu les informations dont il avait besoin pour créer une adresse de monodiffusion IPv6. Il a également les informations sur la passerelle par défaut grâce au message RA, qui est l'adresse link-local du routeur. Le serveur DHCPv6 peut cependant fournir d'autres informations, comme les informations concernant DNS.
dns-server adresse-du-serveur-DNS
domain-name nom-de-domaine
Configuration de l'interface DHCPv6
La commande suivante relie le pool DHCPv6 à l'interface. Le routeur répond aux requêtes DHCPv6 sans état sur cette interface avec les informations contenues dans le pool. L'indicateur O doit être passé de 0 à 1. Les RA qui seront ensuite envoyés sur cette interface indiqueront que des informations supplémentaires sont disponibles auprès d'un serveur DHCPv6.
interface nom-de-l'interface
ipv6 dhcp server pool-name
ipv6 nd other-config-flag
Exemple complet
ipv6 unicast-routing
ipv6 dhcp pool IPV6-STATELESS
dns server 2001:db8:cafe:aaaa::5
domain-name example.com
exit
interface g0/1
ipv6 address 2001:db8:cafe:1::1/64
ipv6 dhcp server IPV6-STATELESS
ipv6 nd other-config-flag
Configuration en tant que client DHCPv6 avec ou sans état
Bien que ce scénario soit peu fréquent, il est toujours possible (un routeur est généralement en IP fixe).
Le routeur client a besoin d'une adresse de lien local IPv6 sur l'interface pour envoyer et recevoir des messages IPv6 tels que les RS et message DHCPv6. Cette adresse est crée automatiquement lorsqu'IPv6 est configuré sur une interface. Cela peut se produire soit en configurant une adresse de monodiffusion globale sur l'interface, soit avec la commande IPv6 enable. Les commandes pour activer l'autoconfiguration sont ensuite assez simples :
interface nom-de-l'interface
ipv6 enable
ipv6 address autoconfig #Stateless
ipv6 address dhcp #Stateful
Ce que fera ensuite le routeur (SLAAC, DHCPv6 stateless ou statefull) dépend de ce qu'il recevra dans les RA (il faudra, du coup, un autre routeur pour configurer celui-ci !).
Vérification de DHCPv6 sans état
Côté serveur
Pour vérifier le serveur, on utilise les commandes suivantes:
show ipv6 dhcp pool
show running config
La première donne des informations sur le serveur en lui-même (Clients actifs, informations configurées comme DNS, domain name, etc) et la seconde montre les commandes entrées.
Côté client
Pour vérifier comment notre routeur client DHCPv6 s'est configuré, il suffit d'utiliser la commande :
show ipv6 interface nom-de-l'interface
Celle-ci renvoie nombre d'informations, parmi lesquelles l'adresse utilisée et la méthode de configuration ("Stateless address autoconfig enabled" signifie que la configuration automatique sans état est activée et que le routeur dispose d'une adresse de monodiffusion IPv6). Pour voir le détail des messages échangés entre client et serveur, on peut utiliser la commande :
debug ipv6 dhcp detail
Celle-ci permet de voir de façon détaillée les échanges de message qui ont eu lieu.
Configuration d'un routeur en tant que serveur DHCPv6 avec état
La configuration d'un serveur DHCPv6 avec état est similiaire à celle d'un serveur sans état : la seule différence est que le routeur dispose également des informations d'adressage.
Activation du routage IPv6
De la même façon qu'en stateless, on utilise la commande :
ipv6 unicast-routing
Configuration d'un pool DHCPv6
On va créer un pool et mettre le routeur en mode de configuration DHCPv6:
ipv6 dhcp pool pool-name
Configuration des paramètres du pool
Dans le cas du statefull, tous les paramètres d'adressage et de configuration doivent être attribués par le serveur. On va commencer par indiquer le pool d'adresses à attribuer par le serveur :
address prefix/length [lifetime {valid-lifetime preferred-lifetime | infinite}]
À ne pas confondre avec l'adresse qui sera attribuée à l'interface en elle-même, il s'agit ici bien du pool d'adresses qui seront distribuée aux clients. Les deux informations sont différentes et doivent être cohérentes!
L'option lifetime indique la durée de validité et la durée préférée des baux en secondes. Le client utilisera l'adresse IPv6 source du RA. On inclue également les informations concernant DNS:
dns-server dns-server-address
domain-name nom-de-domaine
Configuration de l'interface
Nous allons enfin choisir une interface, y relier notre pool pour que le serveur DHCP y soit actif, et modifier notre indicateur M pour le passer à 1.
interface type numéro
ipv6 dhcp server pool-name
ipv6 nd managed-config-flag
Exemple complet
Vérification de DHCPv6 avec état
Si la plupart des commandes utilisées pour vérifier DHCPv6 Stateless s'appliquent ici aussi, d'autres viennent s'ajouter :
show ipv6 dhcp pool
: Donne des informations sur le pool que l'on a configuré, avec entre autre le nombre de clientsshow ipv6 dhcp binding
: Voir les clients : ils sont d'abord présentés par leur adresse de lien-local, et on a un peu plus bas l'adresse qu'ils ont récupéré- (côté client) :
show ipv6 interface nomiunterface
: Montre l'adresse IPv6 utilisée et la passerelle