Ignorer les liens de navigation | |
Quitter l'aperu | |
![]() |
Configuration et administration de réseaux Oracle Solaris 11.1 Oracle Solaris 11.1 Information Library (Français) |
1. Planification du développement du réseau
2. Eléments à prendre en compte lors de l'utilisation d'adresses IPv6
3. Configuration d'un réseau IPv4
4. Activation d'IPv6 sur le réseau
5. Administration d'un réseau TCP/IP
6. Configuration de tunnels IP
Implémentation IPv6 sous Oracle Solaris
Fichiers de configuration IPv6
Fichier de configuration ndpd.conf
Fichier de configuration /etc/inet/ipaddrsel.conf
Raisons pour lesquelles le tableau des règles de sélection d'adresses IPv6 doit être modifié
Syntaxe de la commande 6to4relay
Modification de la commande netstat en vue de la prise en charge IPv6
Modification de la commande snoop en vue de la prise en charge IPv6
Modification de la commande route en vue de la prise en charge IPv6
Modification de la commande ping en vue de la prise en charge IPv6
Modification de la commande traceroute en vue de la prise en charge IPv6
Démon in.ndpd pour Neighbor Discovery
Démon in.ripngd, pour routage IPv6
Informations importantes relatives à la configuration d'un service pour IPv6
Messages ICMP de la détection des voisins
Processus de configuration automatique
Obtention d'une publication de routeur
Variables de préfixes de configuration
Sollicitation de voisin et inaccessibilité
Algorithme de détection d'adresse dupliquée
Equilibrage de charge entrante
Modification d'adresse lien-local
Comparaison du protocole ND et du protocole ARP et autres protocoles IPv4
Préfixes de publication de routeurs
Messages de publication de routeurs
Extensions IPv6 de services d'assignation de noms Oracle Solaris
Modifications apportées aux commandes de services de noms
Prise en charge IPv6 de NFS et RPC
Cette section décrit les fichiers, commandes et démons nécessaires au protocole IPv6 sous Oracle Solaris.
Cette section décrit les fichiers de configuration faisant partie de l'implémentation IPv6 :
Le fichier de configuration /etc/inet/ndpd.conf sert à configurer les options utilisées par le démon Neighbor Discovery in.ndpd. Pour un routeur, ndpd.conf sert principalement à configurer le préfixe du site à publier vers le lien. Pour un hôte, ndpd.conf sert à désactiver la configuration automatique des adresses ou à configurer des adresses temporaires.
Le tableau suivant présente les mots-clés utilisés dans le fichier ndpd.conf.
Tableau 8-1 Mots-clés de /etc/inet/ndpd.conf
|
Dans le fichier ndpd.conf, vous utilisez des mots-clés du tableau avec jeu de variables de configuration du routeur. Ces variables sont définies en détail dans le document RFC 2461, Neighbor Discovery for IP Version 6 (IPv6).
Le tableau suivant répertorie les variables de configuration d'une interface et fournit une brève définition de chacune.
Tableau 8-2 Variables de configuration d'interface du fichier /etc/inet/ndpd.conf
|
Le tableau suivant répertorie les variables utilisées pour configurer les préfixes IPv6.
Tableau 8-3 Variables de configuration de préfixe du fichier /etc/inet/ndpd.conf
|
Exemple 8-1 Fichier /etc/inet/ndpd.conf
L'exemple suivant répertorie les mots-clés et les variables de configuration utilisés dans le fichier ndpd.conf. Supprimez le commentaire (#) pour activer la variable.
# ifdefault [variable-value ]* # prefixdefault [variable-value ]* # if ifname [variable-value ]* # prefix prefix/length ifname # # Per interface configuration variables # #DupAddrDetectTransmits #AdvSendAdvertisements #MaxRtrAdvInterval #MinRtrAdvInterval #AdvManagedFlag #AdvOtherConfigFlag #AdvLinkMTU #AdvReachableTime #AdvRetransTimer #AdvCurHopLimit #AdvDefaultLifetime # # Per Prefix: AdvPrefixList configuration variables # # #AdvValidLifetime #AdvOnLinkFlag #AdvPreferredLifetime #AdvAutonomousFlag #AdvValidExpiration #AdvPreferredExpiration ifdefault AdvReachableTime 30000 AdvRetransTimer 2000 prefixdefault AdvValidLifetime 240m AdvPreferredLifetime 120m if qe0 AdvSendAdvertisements 1 prefix 2:0:0:56::/64 qe0 prefix fec0:0:0:56::/64 qe0 if qe1 AdvSendAdvertisements 1 prefix 2:0:0:55::/64 qe1 prefix fec0:0:0:56::/64 qe1 if hme1 AdvSendAdvertisements 1 prefix 2002:8192:56bb:1::/64 qfe0 if hme1 AdvSendAdvertisements 1 prefix 2002:8192:56bb:2::/64 hme1
Le fichier /etc/inet/ipaddrsel.conf contient la table des règles de sélection d'adresse IPv6 par défaut. Si vous avez activé le protocole IPv6 lors de l'installation d'Oracle Solaris, ce fichier contient les éléments présentés dans le Tableau 8-4.
Vous pouvez modifier le contenu de /etc/inet/ipaddrsel.conf. Toutefois, cette opération n'est pas recommandée. Si cela s'avère nécessaire, reportez-vous à la procédure décrite à la section Administration de la table des règles de sélection d'adresses IPv6. Pour plus d'informations sur le fichier ippaddrsel.conf, reportez-vous à la section Raisons pour lesquelles le tableau des règles de sélection d'adresses IPv6 doit être modifié ainsi qu'à la page de manuel ipaddrsel.conf(4).
Cette section décrit les commandes ajoutées lors de l'implémentation du protocole IPv6 sous Oracle Solaris. Les commandes existantes qui ont été modifiées pour prendre en charge IPv6 y sont également détaillées.
La commande ipaddrsel permet de modifier le tableau des règles de sélection des adresses IPv6 par défaut.
Le noyau Oracle Solaris utilise la table des règles de sélection des adresses IPv6 par défaut pour le classement des adresses de destination et la sélection des adresses sources pour les en-têtes de paquet IPv6. Le fichier /etc/inet/ipaddrsel.conf contient ce tableau de règles.
Le tableau suivant répertorie les formats d'adresse par défaut ainsi que les priorités de chacune telles qu'elles doivent figurer dans le tableau de règles. Vous pouvez rechercher des informations techniques sur la sélection d'adresses IPv6 dans la page de manuel inet6(7P).
Tableau 8-4 Tableau des règles de sélection des adresses IPv6 par défaut
|
Dans ce tableau, les préfixes IPv6 (::1/128 et ::/0) ont la priorité sur les adresses 6to4 (2002::/16) et les adresses IPv4 (::/96 et ::ffff:0:0/96). Par conséquent, le noyau choisit par défaut l'adresse IPv6 globale de l'interface pour les paquets envoyés vers une autre destination IPv6. L'adresse IPv4 de l'interface est moins prioritaire, notamment pour les paquets envoyés vers une destination IPv6. Etant donné l'adresse IPv6 source sélectionnée, le noyau utilise également le format IPv6 pour l'adresse de destination.
En règle générale, le tableau des règles de sélection d'adresses IPv6 par défaut n'a pas besoin d'être modifié. En cas de modification nécessaire, exécutez la commande ipaddrsel.
Les situations suivantes nécessitent une modification du tableau :
Si le système possède une interface qui est utilisée pour un tunnel 6to4, vous pouvez définir une priorité plus élevée pour les adresses 6to4.
Si vous souhaitez qu'une adresse source particulière communique avec une adresse de destination particulière, vous pouvez ajouter ces adresses au tableau de règles. Ensuite, vous pouvez les marquer comme vos adresses préférées à l'aide de la commande ipadm. Pour plus d'informations sur la commande ipadm, reportez-vous à la page de manuel ipadm(1M).
Si vous voulez que les adresses IPv4 aient la priorité sur les adresses IPv6, vous pouvez remplacer la priorité de ::ffff:0:0/96 par un chiffre plus élevé.
Si vous devez assigner une priorité plus élevée à des adresses désapprouvées, vous pouvez ajouter ces adresses au tableau de règles. Prenons l'exemple des adresses de site locales, actuellement désapprouvées sur le réseau IPv6. Ces adresses possèdent le préfixe fec0::/10. Vous pouvez modifier le tableau de règles afin de définir une priorité plus élevée pour ces adresses.
Pour plus d'informations sur la commande ipaddrsel, reportez-vous à la page de manuel ipaddrsel(1M).
La création de tunnel 6to4 permet à des sites 6to4 isolés de communiquer. Cependant, pour transférer des paquets vers un site IPv6 natif et non-6to4, le routeur 6to4 doit être relié au routeur relais 6to4 par un tunnel. Le routeur relais 6to4 transfère ensuite les paquets 6to4 au réseau IPv6 et, finalement, au site IPv6 natif. Si un site 6to4 doit échanger des données avec un site IPv6, vous pouvez créer le tunnel approprié à l'aide de la commande 6to4relay.
Sous Oracle Solaris, la liaison de tunnels à des routeurs relais est désactivée car l'utilisation des routeurs relais n'est pas sécurisée. Avant de relier un tunnel à un routeur relais 6to4, vous devez être conscient des problèmes qui peuvent survenir avec ce type de scénario. Pour plus d'informations sur les routeurs relais 6to4, reportez-vous à la section Informations importantes pour la création de tunnels vers un routeur relais 6to4. Pour activer la prise en charge d'un routeur relais 6to4, vous pouvez suivre la procédure indiquée à la section Création et configuration d'un tunnel IP.
La commande 6to4relay possède la syntaxe suivante :
6to4relay -e [-a IPv4-address] -d -h
Assure la prise en charge de tunnels entre le routeur 6to4 et un routeur relais 6to4 anycast. Ainsi, l'adresse du point d'extrémité du tunnel est définie sur 192.88.99.1 , soit l'adresse du groupe anycast de routeurs relais 6to4.
Assure la prise en charge de tunnels entre le routeur 6to4 et un routeur relais 6to4 possédant l'IPv4-address spécifiée.
Désactive la prise en charge de tunnels vers un routeur relais 6to4 (paramètre par défaut d'Oracle Solaris).
Affiche l'aide concernant la commande 6to4relay.
Pour plus d'informations, reportez-vous à la page de manuel 6to4relay(1M).
Exemple 8-2 Affichage par défaut du statut de la prise en charge de routeurs relais 6to4
La commande 6to4relay, sans argument, affiche le statut actuel de la prise en charge des routeurs relais 6to4. Cet exemple indique la sortie par défaut de l'implémentation du protocole IPv6 sous Oracle Solaris.
# /usr/sbin/6to4relay 6to4relay:6to4 Relay Router communication support is disabled
Exemple 8-3 Affichage du statut avec prise en charge des routeurs relais 6to4 activée
Lorsque la prise ne charge des routeurs relais est activée, la commande 6to4relay affiche la sortie suivante :
# /usr/sbin/6to4relay 6to4relay:6to4 Relay Router communication support is enabled IPv4 destination address of Relay Router=192.88.99.1
Exemple 8-4 Affichage du statut avec un routeur relais 6to4 spécifié
Si vous spécifiez l'option -a et une adresse IPv4 dans la commande 6to4relay, l'adresse IPv4 fournie avec l'option - a remplace l'adresse 192.88.99.1.
La commande 6to4relay ne signale pas l'exécution des options -d, -e et -a IPv4 address. Cependant, 6to4relay n'affiche aucun message d'erreur lié à l'exécution de ces options.
La commande netstat affiche le statut des réseaux IPv4 et IPv6. Vous pouvez choisir les informations de protocole à afficher en définissant la valeur de DEFAULT_IP dans le fichier /etc/default/inet_type ou en utilisant l'option -f dans la ligne de commande. Avec une valeur de DEFAULT_IP permanente, vous vous assurez que la commande netstat affiche uniquement les informations IPv4. Vous pouvez ignorer ce paramètre et utiliser l'option -f. Pour plus d'informations sur le fichier inet_type , reportez-vous à la page de manuel inet_type(4).
L'option -p de la commande netstat affiche la table des connexions réseau-média, c'est-à-dire la table des protocoles de résolution d'adresse pour l'IPv4 et le cache voisin pour l'IPv6. Pour plus d'informations, reportez-vous à la page de manuel netstat(1M) La section Affichage du statut des sockets décrit les procédures impliquant l'exécution de cette commande.
La commande snoop permet de capturer des paquets IPv4 et IPv6. Cette commande peut s'afficher avec des en-têtes IPv6, des en-têtes d'extension IPv6, des en-têtes ICMPv6 et des données de protocole Neighbor Discovery. Par défaut, la commande snoop affiche les deux types de paquet (IPv4 et IPv6). Pour afficher soit l'un, soit l'autre, spécifiez le mot-clé de protocole ip ou ip6 avec la commande snoop. L'option de filtrage IPv6 vous permet de filtrer tous les paquets IPv4 et IPv6 et d'afficher uniquement les paquets IPv6. Pour plus d'informations, reportez-vous à la page de manuel snoop(1M) La section Contrôle du trafic réseau IPv6 décrit les procédures impliquant l'exécution de la commande snoop.
La commande route fonctionne sur les routes IPv4 (par défaut) et IPv6. Pour réaliser des opérations sur les routes IPv6, tapez l'option -inet6 immédiatement à la suite de la commande route dans la ligne de commande. Pour plus d'informations, reportez-vous à la page de manuel route(1M).
La commande ping se sert des protocoles IPv4 et IPv6 pour sonder les hôtes cibles. Le choix du protocole dépend des adresses renvoyées par le serveur de noms pour l'hôte cible spécifique. Par défaut, si ce serveur renvoie une adresse IPv6 pour l'hôte cible, la commande ping utilise le protocole IPv6. S'il renvoie une adresse IPv4, la commande ping utilise le protocole IPv4. Pour ignorer cette action, vous pouvez taper l'option -A dans la ligne de commande et spécifier le protocole à utiliser.
Pour plus d'informations, reportez-vous à la page de manuel ping(1M) La section Test des hôtes distants à l'aide de la commande ping décrit les procédures impliquant l'exécution de la commande ping .
Vous pouvez exécuter la commande traceroute pour tracer les routes IPv4 et IPv6 vers un hôte spécifique. Du point de vue du protocole, traceroute utilise le même algorithme que la commande ping. Pour ignorer ce choix, tapez l'option -A dans la ligne de commande. Vous pouvez tracer chaque route vers chaque adresse d'un hôte multiréseau en tapant l'option -a dans la ligne de commande.
Pour plus d'informations, reportez-vous à la page de manuel traceroute(1M) La section Affichage des informations de routage à l'aide de la commande traceroute décrit les procédures qui impliquent l'exécution de la commande traceroute.
Cette section présente les démons liés à IPv6.
Le démon in.ndpd implémente le protocole IPv6 Neighbor Discovery ainsi que celui de découverte de routeur. Il implémente également la configuration automatique d'adresse IPv6. Les options suivantes sont prises en charge par in.ndpd.
Désactive la configuration automatique d'adresse avec ou sans état.
Active le débogage.
Spécifie un fichier de configuration spécifique à la place du fichier /etc/inet/ndpd.conf.
Active le suivi de tous les paquets sortants et entrants.
Le démon in.ndpd est contrôlé par les paramètres définis dans le fichier de configuration /etc/inet/ndpd.conf et par ceux du fichier de démarrage /var/inet/ndpd_state. interface qui s'appliquent.
Lorsque le fichier /etc/inet/ndpd.conf existe, il est analysé et utilisé pour configurer un noeud en tant que routeur. Le Tableau 8-1 répertorie les mots-clés corrects susceptibles de figurer dans ce fichier. Lors de l'initialisation d'un hôte, les routeurs risquent de ne pas être disponibles immédiatement. Les paquets publiés par le routeur risquent d'être abandonnés. En outre, les paquets risquent de ne pas atteindre l'hôte.
Le fichier /var/inet/ndpd_state.interface est un fichier d'état. Ce fichier est régulièrement mis à jour par chaque noeud. En cas de défaillance et de redémarrage du noeud, ce dernier peut configurer ses interfaces en l'absence de routeurs. Ce fichier contient l'adresse de l'interface, l'heure de la dernière mise à jour du fichier et la durée de validité du fichier. Il contient également d'autres paramètres “hérités” de précédentes publications de routeur.
Remarque - Il est inutile de modifier le contenu des fichiers d'état. Le démon in.ndpd assure la maintenance automatique des fichiers d'état.
Reportez-vous aux pages de manuel in.ndpd(1M) et ndpd.conf(4) pour obtenir des listes des variables de configuration et des valeurs acceptables.
Le démon in.ripngd implémente les informations de RIPng (Routing Information Protocol next-generation, protocole d'informations de routage nouvelle génération) pour les routeurs IPv6. Le RIPng définit l'équivalent IPv6 de RIP (Routing Information Protocol, protocole d'informations de routage). Lorsque vous configurez un routeur IPv6 avec la commande routeadm et activez le routage IPv6, le démon in.ripngd implémente RIPng sur le routeur.
Vous trouverez ci-dessous les options RIPng prises en charge.
n spécifie le numéro de port UDP utilisé pour l'envoi ou la réception de paquets RIPng.
Supprime l'utilisation du mode poison reverse.
Supprime les informations de routage.
Force le routage d'informations même si le démon fait office de routeur.
Imprime tous les paquets envoyés et reçus vers une sortie standard.
Imprime toutes les modifications apportées à la table de routage vers la sortie standard, en incluant les horodatages.
Une application de serveur compatible IPv6 peut gérer les demandes IPv4 et IPv6, ou les demandes IPv6 uniquement. Le serveur gère toujours les demandes par le biais d'un socket IPv6. En outre, le serveur utilise le même protocole qu'utilise le client correspondant.
Pour ajouter ou modifier un service pour IPv6, utilisez les commandes disponibles à partir du service SMF (Service Management Facility, utilitaire de gestion des services).
Pour plus d'informations sur les commandes SMF, reportez-vous à la section Utilitaires d’administration en ligne de commande SMF du manuel Gestion des services et pannes dans Oracle Solaris 11.1.
Pour obtenir une tâche d'exemple utilisant le service SMF pour configurer un manifeste de service IPv4 s'exécutant sur SCTP, reportez-vous à la section Ajout de services utilisant le protocole SCTP.
Pour configurer un service IPv6, vous devez vous assurer que la valeur du champ proto dans le profil inetadm pour ce service répertorie la valeur adéquate :
Pour un service assurant la gestion de demandes IPv4 et IPv6, sélectionnez tcp6, udp6 ou sctp. Une valeur proto de tcp6, udp6 ou sctp6 a pour conséquence de faire passer inetd sur un socket IPv6 vers le serveur. Le serveur contient une adresse mappée IPv4 au cas où un client IPv4 recevrait une demande.
Pour un service qui gère uniquement les demandes IPv6, sélectionnez tcp6only ou udp6only. Si proto a l'une de ces valeurs, inetd passe le serveur à un socket IPv6.
Si vous remplacez une command'Oracle Solaris par une autre implémentation, vous devez vous assurer que l'implémentation de ce service prend en charge le protocole IPv6. Si l'implémentation ne prend pas IPv6 en charge, vous devez spécifier la valeur proto en tant que tcp, udp ou sctp.
Voici un profil qui résulte de l'exécution de inetadm pour un manifeste de service echo prenant IPv4 et IPv6 en charge, et s'exécute sur SCTP :
# inetadm -l svc:/network/echo:sctp_stream SCOPE NAME=VALUE name="echo" endpoint_type="stream" proto="sctp6" isrpc=FALSE wait=FALSE exec="/usr/lib/inet/in.echod -s" user="root" default bind_addr="" default bind_fail_max=-1 default bind_fail_interval=-1 default max_con_rate=-1 default max_copies=-1 default con_rate_offline=-1 default failrate_cnt=40 default failrate_interval=60 default inherit_env=TRUE default tcp_trace=FALSE default tcp_wrappers=FALSE
La syntaxe suivante permet de modifier la valeur du champ proto :
# inetadm -m FMRI proto="transport-protocols"
Tous les serveurs fournis avec le logiciel Oracle Solaris ne nécessitent qu'une entrée de profil spécifiant proto en tant que tcp6, udp6 ou sctp6. Cependant, le serveur shell distant (shell) et le serveur d'exécution distant (exec) sont à présent composés d'une instance de service unique, nécessitant une valeur proto contenant les valeurs tcp et tcp6only. Par exemple, pour définir la valeur proto pour shell, émettez la commande suivante :
# inetadm -m network/shell:default proto="tcp,tcp6only"
Consultez les extensions IPv6 de l'API Socket dans la section Programming Interfaces Guide pour obtenir des informations supplémentaires sur l'écriture de serveurs compatibles IPv6 qui utilisent des sockets.
Gardez les éléments suivants à l'esprit lorsque vous ajoutez ou modifiez un service pour IPv6 :
Vous devez spécifier la valeur proto en tant que tcp6, sctp6 ou udp6 afin d'activer les connexions IPv4 ou IPv6. Si vous spécifiez la valeur pour proto en tant que tcp, sctp ou udp, le service n'utilise qu'IPv4.
Bien qu'il soit possible d'ajouter une instance de service utilisant des sockets SCTP de style un à plusieurs à inetd, il est déconseillé de le faire. inetd ne fonctionne pas avec les sockets SCTP de style un à plusieurs.
Si un service nécessite deux entrées en raison de propriétés wait-status ou exec différentes, vous devez créer deux instances/services à partir du service d'origine.