MOOC:Support Act46

From Livre IPv6

Revision as of 02:21, 4 November 2015 by Panelli (Talk | contribs) (Activité 46: Faites interopérer des applications IPv6 et IPv4)

> MOOC >Contenu>Ateliers>Activité 46
> MOOC >Contenu>Séquence 4>Activité 46


Activité 46: Faites interopérer des applications IPv6 et IPv4

Dans l'état d'avancement de la migration vers IPv6, des clients IPv6 vont apparaitre dans l'Internet. En vertu de la continuité du service et de l'unité de l'Internet, ces hôtes doivent pouvoir accéder aux contenus disponibles sur l'Internet v4. A ce stade du déploiement nous avons 2 Internets:

  • un Internet en IPv4 encore prépondérant du fait de ses services,
  • un Internet en IPv6 de valeur moindre car il connecte aujourd'hui essentiellement des clients.

L'objectif de cette activité est de présenter les solutions d'interopération d'applications distribuées qui ne fonctionnent pas au dessus de la même version du protocole IP. Comme nous l'avons dit le plan de migration originel en double pile n'est plus applicable à cause du manque d'adresses IPv4 disponibles de nos jours.

Les différentes étapes de cette activité vont représenter une évolution temporel de l'Internet. Pour chacune de ces évolutions nous montrerons quelle technique de transition appliquer et comment l'appliquer.

La plateforme mise en oeuvre dans ce TP est représentée par la figure 1. Elle comporte :

  • Un client IPv6 uniquement disposant uniquement d'une adresse IPv6. Ce client localise sur le noeud pc1 représente les nouvelles machines qui apparaissent dans l'Internet pour former ce que l'on appelé par la suite l'Internet en IPv6,
  • un routeur R1 en double pile. Un noeud qui a une connectivité avec l'Internet en IPv4 et en IPv6,
  • un routeur R2 en IPv4. Un noeud représentant l'Internet en IPv4,
  • Un serveur web IPv4. Ce service sera hébergé sur le noeud PC2 et représenteront les contenus disponibles sur l'Internet IPv4. Ce noeud hébergera également un serveur DNS.
Figure 1: Plateforme de l'activité.

Etape 0 : Situation initiale

Dans la situation initiale, nous nous situons avec un Internet majoritairement en IPv4 et des nouveaux réseaux en IPv6 hébergeant des clients. Le réseau IPv6 symbolise ces nouveaux réseaux de clients. Le coeur de réseau est encore en IPv4 et les services sont accessibles en IPv4.

Dans la phase initiale, l'infrastructure de communication est opérationnelle. Il reste à démarrer les services qui sont sur PC2. Les services sont le DNS pour la résolution de noms et le web.

Activez le service de nommage sur PC2 :

apprenant@MOOCIPv6:~$ sudo named -c /usr/local/etc/bind/named.conf

Activez le service web sur PC2 :

apprenant@MOOCIPv6:~$ sudo nginx

Vérifiez le bon fonctionnement de ces services depuis R1 :

vyos login: root 
Password: root

root@vyos:~# curl http://www.tp
Un contenu HTML doit s'afficher

Problématique : Comment PC1 qui est en IPv6-only peut-il accéder au service web www.tp ?

Etape 1 : Configuration de NAT64 sur R1

Dans cette étape, nous installons la proposition de l'IETF NAT64/DNS64 qui répond à la problématique de l'interopérabilité de systèmes utilisant une version du protocole IP différente.


Mise en oeuvre du DNS64

Sur R1 (en mode root)

Editez le fichier de configuration du démon totd

root@vyos:~# vi /etc/totd.conf

Renseignez les informations suivantes dans le fichier

forwarder 192.0.2.1
prefix fd75:e4d9:cb77:ff::/96
port 53

Lancer le démon

root@vyos:~# /etc/init.d/totd start


Sur PC1, renseignez le serveur de nom :

apprenant@MOOCIPv6:~$ vi /etc/resolv.conf
nameserver fd75:e4d9:cb77:1::1

Testez le bon fonctionnement du DNS64

apprenant@MOOCIPv6:~$ dig www.tp
apprenant@MOOCIPv6:~$ dig -t AAAA www.tp

Observez les échanges en capturant le trafic sur l'interface eth0 et eth1 de R1

Mise en oeuvre de NAT64

Configurez le logiciel tayga sur R1

root@vyos~# vi /etc/tayga.conf
...
ipv4-addr 192.0.3.1
...
prefix fd75:e4d9:cb77:ff::/96
... 
dynamic-pool 192.0.3.0/24

Configurez le réseau pour tayga sur R1

root@vyos~# tayga --mktun
root@vyos~# ip link set nat64 up
root@vyos~# ip addr add 192.0.3.1 dev nat64
root@vyos~# ip route add 192.0.3.0/24 dev nat64
root@vyos~# ip -6 addr add fd75:e4d9:cb77:ff::c000:301 dev nat64
root@vyos~# ip -6 route add fd75:e4d9:cb77:ff::/96 dev nat64

Sur R2, ajoutez la route vers le préfixe utilisé pour représenter les postes du IPv6 en IPv4

vyos@vyos:~$ vtysh
vyos# configure terminal
vyos(config)# ip route 192.0.3.0/24 192.0.2.130

PC1 n'a pas besoin de route spécifique pour le préfixe IPv6 NAT64, puisque la passerelle de traduction est elle même le routeur par défaut pour R1.

Lancez le démon tayga sur R1

root@vyos~# tayga -d

Testez la connectivité vers le serveur web depuis PC1

apprenant@MOOCIPv6:~$ ping www.tp
apprenant@MOOCIPv6:~$ curl http://www.tp

Etape 2 : Mise en oeuvre d'un tunnel IPv6 sur IPv4

Sur R1, configurer le point d'entrée du tunnel

vyos@vyos:~$ configure
vyos@vyos:~# set interfaces tunnel tun0 address 'fd75:e4d9:cb77:fff::1/64'
vyos@vyos:~# set interfaces tunnel tun0 encapsulation 'sit'
vyos@vyos:~# set interfaces tunnel tun0 local-ip '192.0.2.130'
vyos@vyos:~# set interfaces tunnel tun0 remote-ip '192.0.2.129'
vyos@vyos:~# set interfaces tunnel tun0 mtu '1480'
vyos@vyos:~# commit


Sur R2, configurer le point de sortie du tunnel

vyos@vyos:~$ configure
vyos@vyos:~# set interfaces tunnel tun0 address 'fd75:e4d9:cb77:fff::2/64'
vyos@vyos:~# set interfaces tunnel tun0 encapsulation 'sit'
vyos@vyos:~# set interfaces tunnel tun0 local-ip '192.0.2.129'
vyos@vyos:~# set interfaces tunnel tun0 remote-ip '192.0.2.130'
vyos@vyos:~# set interfaces tunnel tun0 mtu '1480'
vyos@vyos:~# commit


Vérifiez la connectivité depuis R1

vyos@vyos:~# ping6 fd75:e4d9:cb77:fff::2/64

Observez les paquets sur une capture réseau entre R1 et R2

Vérifiez la connectivité depuis PC1

apprenant@MOOCIPv6:~$ ping6 fd75:e4d9:cb77:fff::2/64

Quel est le problème ?

Ajouter la route sur R2

vyos@vyos:~$ vtysh
vyos# configure terminal
vyos(config)# ipv6 route ::/0 tun0

Vérifiez la connectivité depuis PC1

Etape 3 : Configurer un reverse proxy web sur R2

Sur R2, éditez la configuration du serveur nginx pour activer la redirection des requêtes vers le serveur

login: root
password: root
vyos# vi /etc/nginx/sites-available/default
...
location / {
         proxy_pass http://192.0.2.1/;
}

Sur PC2, modifiez la configuration du DNS pour enregistrer l'adresse IPv6 du proxy

apprenant@MOOCIPv6:~$ sudo vi /usr/local/etc/bind/db.tp
...
www             IN              A               192.0.2.1
                IN              AAAA            fd75:e4d9:cb77:fff::2

Relancez le serveur named

apprenant@MOOCIPv6:~$ sudo killall named
apprenant@MOOCIPv6:~$ sudo named -c /usr/local/etc/bind/named.conf

Sur PC1, vérifiez que la nouvelle adresse IPv6 a bien été prise en compte

 apprenant@MOOCIPv6:~$ host www.tp

Vérifier que l'accès est maintenant possible à travers le proxy, en capturant le trafic entre R1 et R2, et entre R2 et PC2.

apprenant@MOOCIPv6:~$ curl http://www.tp
Personal tools