Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédente | |||
| 999-archives:tcp-ip:020tcp6ip:910_bonus_revolution [le 30/05/2025 à 13:47] – supprimée - modification externe (Date inconnue) 127.0.0.1 | 999-archives:tcp-ip:020tcp6ip:910_bonus_revolution [le 30/05/2025 à 13:47] (Version actuelle) – ↷ Page déplacée de 040-adresses:001-archives:020tcp6ip:910_bonus_revolution à 999-archives:tcp-ip:020tcp6ip:910_bonus_revolution prof | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | ====== Il était une fois... ====== | ||
| + | ===== La Freebox «Révolution» ===== | ||
| + | |||
| + | {{ 060-ipv6: | ||
| + | |||
| + | Cette page, accessible dans Freebox OS à partir du mode avancé des paramètres de la Freebox, au chapitre «Configuration IPv6» permet de définir un «next hop» pour chaque sous-réseau supplémentaire. L' | ||
| + | |||
| + | Nous allons exploiter deux sous-réseaux supplémentaires. | ||
| + | < | ||
| + | ====== La manip pour les Geeks ====== | ||
| + | Voici ce que nous allons faire: | ||
| + | {{ 060-ipv6: | ||
| + | Pourquoi pour les Geeks ? | ||
| + | |||
| + | Parce-qu' | ||
| + | |||
| + | * dans le sous-réseau de base, directement servi par la Freebox, nous avons: | ||
| + | * un serveur «ns1» qui nous sert de DNS-qui-ne-ment-pas pour nos recherches récursives et qui peut éventuellement gérer des domaines ou sous-domaines intranet. Il a aussi quelques autres fonctions, mais qui ne nous intéressent pas ici; | ||
| + | * un «routeur1» qui a un pied dans le sous-réseau de base et un pied dans chaque sous-réseau supplémentaire; | ||
| + | * ce qu'il peut y avoir de plus dans ce sous-réseau ne concerne pas cette étude; | ||
| + | * dans chaque sous-réseau supplémentaire, | ||
| + | ===== Sur la Freebox ===== | ||
| + | Il faut indiquer le routeur suivant (next hop) qui sera utilisé pour chaque sous-réseau que l'on désire exploiter, ici '' | ||
| + | |||
| + | Dans notre cas, comme c'est le même routeur qui va se taper le travail, le «next-hop» est le même dans les deux cas. | ||
| + | |||
| + | Du côté de la Freebox, il n'y a rien de plus à faire. | ||
| + | ===== Sur le routeur ===== | ||
| + | Le routeur est une machine Debian Jessie et là, pour faire quelque chose qui aille bien, il va y avoir un peu de travail. Comme c'est ici IPv6 qui nous intéresse, nous n' | ||
| + | |||
| + | ==== Sois un routeur ! ==== | ||
| + | En v6 comme en v4, le kernel ne routera pas par défaut. Il faut agir en dé-commentant dans ''/ | ||
| + | < | ||
| + | et rendre actif tout de suite: | ||
| + | < | ||
| + | ==== Les interfaces Ethernet ==== | ||
| + | Nous considérons ceci: | ||
| + | * eth0 sur 2a01: | ||
| + | * eth1 sur 2a01: | ||
| + | * eth2 sur 2a01: | ||
| + | |||
| + | En ce qui concerne les adresses de lien local, il n'y a pas de mystère, elle seront auto-configurées dans fe80::/64 avec un jeton calculé en mode EUI-64. | ||
| + | |||
| + | Ceci nous donne le fichier ''/ | ||
| + | < | ||
| + | auto lo | ||
| + | iface lo inet loopback | ||
| + | |||
| + | iface eth0 inet6 auto | ||
| + | |||
| + | auto eth1 | ||
| + | iface eth1 inet6 static | ||
| + | address 2a01: | ||
| + | |||
| + | auto eth2 | ||
| + | iface eth2 inet6 static | ||
| + | address 2a01: | ||
| + | </ | ||
| + | Après démarrage du routeur nous devons avoir sur les interfaces: | ||
| + | < | ||
| + | <pre class=" | ||
| + | < | ||
| + | eth0 Link encap: | ||
| + | <span class=" | ||
| + | <span class=" | ||
| + | UP BROADCAST RUNNING MULTICAST | ||
| + | RX packets: | ||
| + | TX packets:157 errors:0 dropped:0 overruns:0 carrier:0 | ||
| + | collisions: | ||
| + | RX bytes: | ||
| + | |||
| + | eth1 Link encap: | ||
| + | <span class=" | ||
| + | <span class=" | ||
| + | UP BROADCAST RUNNING MULTICAST | ||
| + | RX packets:73 errors:0 dropped:0 overruns:0 frame:0 | ||
| + | TX packets:266 errors:0 dropped:0 overruns:0 carrier:0 | ||
| + | collisions: | ||
| + | RX bytes:10893 (10.6 KiB) TX bytes:45488 (44.4 KiB) | ||
| + | |||
| + | eth2 Link encap: | ||
| + | <span class=" | ||
| + | <span class=" | ||
| + | UP BROADCAST RUNNING MULTICAST | ||
| + | RX packets:79 errors:0 dropped:0 overruns:0 frame:0 | ||
| + | TX packets:266 errors:0 dropped:0 overruns:0 carrier:0 | ||
| + | collisions: | ||
| + | RX bytes:11361 (11.0 KiB) TX bytes:45676 (44.6 KiB) | ||
| + | |||
| + | lo Link encap: | ||
| + | inet adr: | ||
| + | adr inet6: ::1/128 Scope:Hôte | ||
| + | UP LOOPBACK RUNNING | ||
| + | RX packets:56 errors:0 dropped:0 overruns:0 frame:0 | ||
| + | TX packets:56 errors:0 dropped:0 overruns:0 carrier:0 | ||
| + | collisions: | ||
| + | RX bytes:3582 (3.4 KiB) TX bytes:3582 (3.4 KiB) | ||
| + | </ | ||
| + | et si l'on recherche les routes: | ||
| + | < | ||
| + | <b>ip -6 route ls</ | ||
| + | 2a01: | ||
| + | 2a01: | ||
| + | 2a01: | ||
| + | fe80::/64 dev eth0 proto kernel | ||
| + | fe80::/64 dev eth1 proto kernel | ||
| + | fe80::/64 dev eth2 proto kernel | ||
| + | <span class=" | ||
| + | </ | ||
| + | La route par défaut pointe sur l' | ||
| + | |||
| + | Le problème c'est qu'il faudra s' | ||
| + | |||
| + | ==== Un proxy DNS ==== | ||
| + | C'est certes du luxe, puisque nous avons déjà un serveur DNS qui nous donne entière satisfaction, | ||
| + | |||
| + | '' | ||
| + | server=2a01: | ||
| + | Après avoir relancé le service, il devrait être opérationnel. | ||
| + | ==== Le «Router ADVertisement Daemon» ==== | ||
| + | Il s'agit de la pièce principale, celle qui va permettre à notre routeur d’envoyer les bonnes répondes aux requêtes ICMP6 des futurs clients. Il faut installer le paquet «radvd» dont la description est tout-à-fait explicite: | ||
| + | |||
| + | // | ||
| + | |||
| + | //Démon d' | ||
| + | IPv6 a beaucoup plus de capacité pour l' | ||
| + | | ||
| + | | ||
| + | |||
| + | // Sur Linux, ce programme est appelé radvd, qui signifie « Router ADVertisement Daemon », démon d' | ||
| + | | ||
| + | | ||
| + | |||
| + | L' | ||
| + | < | ||
| + | <span class=" | ||
| + | | ||
| + | | ||
| + | | ||
| + | { | ||
| + | | ||
| + | }; | ||
| + | |||
| + | | ||
| + | { | ||
| + | | ||
| + | }; | ||
| + | |||
| + | | ||
| + | { | ||
| + | | ||
| + | }; | ||
| + | |||
| + | }; | ||
| + | |||
| + | <span class=" | ||
| + | | ||
| + | | ||
| + | | ||
| + | { | ||
| + | | ||
| + | }; | ||
| + | |||
| + | RDNSS 2a01: | ||
| + | { | ||
| + | AdvRDNSSLifetime 120; | ||
| + | }; | ||
| + | |||
| + | DNSSL mondomaine.local | ||
| + | { | ||
| + | AdvDNSSLLifetime 120; | ||
| + | }; | ||
| + | |||
| + | }; | ||
| + | </ | ||
| + | La première chose à constater, c'est que les paragraphes concernant les deux interfaces '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * DNSSL annonce le ou les noms de domaines à utiliser par défaut dans les recherches DNS, si le domaine n'est pas indiqué dans la requête; | ||
| + | * '' | ||
| + | Nous aurions en réalité pu écrire un fichier plus simple, '' | ||
| + | |||
| + | Du côté du routeur, tout est normalement en ordre. Il faut juste s' | ||
| + | service radvd status | ||
| + | ===== Les clients ===== | ||
| + | pour tester le tout, nous ajoutons deux nouveaux nœuds comme ceci: | ||
| + | {{ 060-ipv6: | ||
| + | Les nœuds '' | ||
| + | < | ||
| + | auto lo | ||
| + | iface lo inet loopback | ||
| + | |||
| + | auto eth0 | ||
| + | iface eth0 inet6 auto | ||
| + | </ | ||
| + | ==== Divination ==== | ||
| + | Nous connaissons: | ||
| + | * l' | ||
| + | * le préfixe IPv6 normalement attribué à chacun d'eux. | ||
| + | Nous allons deviner leurs adresses IPv6. | ||
| + | === Pour host1 === | ||
| + | Dispose de l' | ||
| + | < | ||
| + | ipv6calc --action geneui64 --in mac --out eui64 00: | ||
| + | <span class=" | ||
| + | </ | ||
| + | Le préfixe de sons sous-réseau étant '' | ||
| + | * son adresse de «scope link» sera '' | ||
| + | * son adresse de «scope global» auto-configurée sera '' | ||
| + | === Pour host2 === | ||
| + | * adresse MAC : '' | ||
| + | * convertie EUI-64 : '' | ||
| + | * préfixe : '' | ||
| + | Donc: | ||
| + | * adresse «link» : '' | ||
| + | * adresse globale : '' | ||
| + | ==== Vérifications ==== | ||
| + | === Sur host1 === | ||
| + | Pour les adresses: | ||
| + | < | ||
| + | < | ||
| + | |||
| + | eth0 Link encap: | ||
| + | adr inet6: <span class=" | ||
| + | adr inet6: <span class=" | ||
| + | UP BROADCAST RUNNING MULTICAST | ||
| + | RX packets:103 errors:0 dropped:0 overruns:0 frame:0 | ||
| + | TX packets:9 errors:0 dropped:0 overruns:0 carrier:0 | ||
| + | collisions: | ||
| + | RX bytes:17433 (17.0 KiB) TX bytes:806 (806.0 B) | ||
| + | </ | ||
| + | |||
| + | Pour les routes: | ||
| + | < | ||
| + | <b>ip -6 route ls</ | ||
| + | |||
| + | 2a01: | ||
| + | fe80::/64 dev eth0 proto kernel | ||
| + | <span class=" | ||
| + | </ | ||
| + | Comme d' | ||
| + | |||
| + | Et tout ceci est obtenu par la découverte du voisinage qui est automatiquement menée au démarrage du nœud, mais que l'on peut forcer manuellement: | ||
| + | < | ||
| + | < | ||
| + | |||
| + | Solicitation de ff02::2 (ff02::2) sur eth0... | ||
| + | |||
| + | Limite de saut (TTL) : 64 ( 0x40) | ||
| + | Conf. d’adresse par DHCP : Non | ||
| + | Autres réglages par DHCP : Non | ||
| + | Préférence du routeur | ||
| + | Durée de vie du routeur | ||
| + | Temps d’atteinte | ||
| + | Temps de retransmission | ||
| + | <span class=" | ||
| + | Durée de validité | ||
| + | Durée de préférence | ||
| + | <span class=" | ||
| + | | ||
| + | Validité des serveurs | ||
| + | | ||
| + | de fe80:: | ||
| + | </ | ||
| + | |||
| + | === Sur host2 === | ||
| + | Pas la peine de tout détailler, si ça fonctionne pour host1, ça fonctionne aussi pour host2. Il va tout de même apparaître comme un défaut dans les recherches DNS: | ||
| + | < | ||
| + | < | ||
| + | <span class=" | ||
| + | </ | ||
| + | La résolution ne se fait pas, aucun serveur ne peut-être atteint ! Pourtant nous savons que NBD fait son travail et annonce deux serveurs DNS... | ||
| + | |||
| + | Sachant que sur Debian, les serveurs DNS sont référencés dans le fichier ''/ | ||
| + | |||
| + | En réalité, il manque probablement le service spécialisé qui doit récupérer l' | ||
| + | ==== Le service " | ||
| + | < | ||
| + | < | ||
| + | |||
| + | Paquet : rdnssd | ||
| + | <span class=" | ||
| + | Version : 1.0.1-1+b1 | ||
| + | Priorité : | ||
| + | Section : net | ||
| + | Responsable : | ||
| + | Architecture : | ||
| + | Taille décompressée : | ||
| + | Dépend: libc6 (>= 2.4) | ||
| + | Pré-dépend: | ||
| + | Recommande: resolvconf | ||
| + | Suggère: ndisc6 | ||
| + | <span class=" | ||
| + | | ||
| + | | ||
| + | </ | ||
| + | |||
| + | C'est exactement ce qu'il nous faut et ce n'est pas installé. Ce paquet recommande '' | ||
| + | aptitude install -R rdnssd | ||
| + | Bien entendu, il faut s' | ||
| + | |||
| + | Après résolution de la résolution des noms et installation du paquet, un: | ||
| + | rdisc6 eth0 | ||
| + | devrait permettre à '' | ||
| + | ===== Et ça marche ? ===== | ||
| + | Ping depuis '' | ||
| + | < | ||
| + | < | ||
| + | |||
| + | PING 2a01: | ||
| + | 64 bytes from 2a01: | ||
| + | 64 bytes from 2a01: | ||
| + | |||
| + | --- 2a01: | ||
| + | 2 packets transmitted, | ||
| + | rtt min/ | ||
| + | </ | ||
| + | Résolution d'un nom: | ||
| + | < | ||
| + | < | ||
| + | |||
| + | orange.kame.net has address 203.178.141.194 | ||
| + | orange.kame.net has IPv6 address 2001: | ||
| + | </ | ||
| + | Itinéraire: | ||
| + | < | ||
| + | < | ||
| + | |||
| + | traceroute vers orange.kame.net (2001: | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | 10 ae-2.r01.tokyjp01.jp.bb.gin.ntt.net (2001: | ||
| + | 11 ge-0-7-0-18.r01.tokyjp01.jp.ce.gin.ntt.net (2001: | ||
| + | 12 ve44.foundry6.otemachi.wide.ad.jp (2001: | ||
| + | 13 2001: | ||
| + | </ | ||
| + | - c'est notre routeur; | ||
| + | - c'est la Freebox. | ||
| + | Tout est en ordre. | ||
| + | ====== Conclusion ====== | ||
| + | Tous laisse penser que l' | ||
| + | |||
| + | En attendant, il faut continuer à maintenir les configurations IPv4 et leur parfois multiples translations d' | ||
| + | |||
| + | Le filtrage de paquets IPv6 n'a pas été abordé, mais il est bien sûr fonctionnel et se manipule avec la commande '' | ||
Il était une fois...: Dernière modification le: 01/01/1970 à 00:00 par