Académique Documents
Professionnel Documents
Culture Documents
Intégration et implémentation du
protocole IPv6 pour des services Cloud
Filière Télécommunications
Réseaux et Services
Préambule
Ce travail de Bachelor est réalisé en vue de l’obtention du titre de Bachelor of Sciences en Ingénierie.
Son contenu, sans préjuger de sa valeur, n’engage ni la responsabilité de l’auteur, ni celles du jury du
travail de Bachelor et de l’Ecole.
Aucune utilisation, même partielle, de ce travail ne peut être faite sans l’autorisation écrite préalable de la
Direction. Toutefois, l’entreprise ou l’organisation qui a confié un sujet de travail de Bachelor peut utiliser
les résultats du travail pour ses propres besoins.
La cheffe du
Département de la formation En
Emploi
L. Larghi
Résumé
Afin de bénéficier des avantages du protocole IPv6, CISEL souhaite l’intégrer pour les différents services
Cloud qu’elle propose à ses clients. Ce travail de diplôme développe dans un premier temps un concept
de migration incluant les méthodes de transition Dual-Stack et NAT64. Sur cette base un réseau de test
« POC » a été configuré et a permis de confirmer la compatibilité des services de base (routage, DNS,
IPAM, filtrage IP, reverse Proxy) ainsi que deux des principaux services Cloud proposés par le mandant.
Une documentation complète dans le but d’un déploiement futur de la solution a également été
établie.
1.Introduction
1.1. Présentation de l’entreprise
CISEL Informatique SA est une société active dans les prestations de services informatiques. Elle fut
créée en 1971. Le siège de l’entreprise se situe à Matran (FR) et la succursale à Morges (VD). Sur les
deux sites réunis, on dénombre plus de 80 collaborateurs.
La clientèle de CISEL Informatique est essentiellement composée de PME en Suisse romande, de tailles
et de secteurs d’activités différents : de grands comptes tels que Groupe E, Romande Energie, CIMO,
mais également des sociétés plus petites telles que des boucheries, des communes ou encore des
cabinets médicaux.
1.2. Contexte
Afin de bénéficier des avantages du protocole IPv6, CISEL souhaite l’intégrer pour les différents services
Cloud qu’elle propose à ses clients. Dans ce travail de diplôme, il est prévu d’établir dans un premier
temps un concept, sur la base duquel il faudra mettre en place une démonstration représentative de
l’infrastructure actuellement en place chez CISEL informatique.
Une fois la maquette validée, il sera par la suite possible de reprendre ce concept afin de mettre en
place IPV6 pour les services Cloud sur l’infrastructure Cisel. Cisel ayant choisi comme méthode de
transition Dual-Stack, il est également important de confirmer la compatibilité des équipements avec
ce moyen de transition. Les services de base (routage, DNS, IPAM, filtrage IP, reverse Proxy) devront
être évalués et s’il n’est pas possible de configurer Dual-Stack sur les équipements qui fournissent ce
service, il faudra proposer une solution alternative.
Les techniques de transition NAT64 et tunneling over IPv4 seront également utilisées, cela se configure
directement sur les firewalls, il faudra donc vérifier également que ceux-ci sont compatibles avec ces
technologies.
Il est donc important pour Cisel d’intégrer ce nouveau protocole IPv6 progressivement. La méthode
Dual-Stack permet justement de faire coexister sur une longue période IPv4 et IPv6 au sein du même
réseau. De cette manière, il sera possible également pour Cisel de migrer vers IPv6, autre service que
le Cloud et même, à terme, d’avoir une configuration native IPv6 sur tous les équipements. Ce travail
n’est pas le but, mais il permet une introduction d’IPv6 afin de se familiariser avec ce nouveau
protocole et pouvoir ensuite le maîtriser.
1
Source : https://fr.wikipedia.org/wiki/Adresse_IPv6
Sur l’image ci-dessous, on peut constater que la Suisse est bien placée au niveau des pays européens
en termes de déploiement du protocole IPV6. Elle possède l’indice 8.6 sur 10 et compte 28%
d’utilisateurs finaux qui peuvent consulter du contenu avec le protocole IPV6.
2
Source : http://6lab.cisco.com/stats/index.php
La taille de l’entête IPv6 est de 40 octets. Contrairement à IPv4 cette taille est fixe, en effet avec IPv4
la taille de l’entête peut varier de 20 à 60 octets selon l’option, même s’il est rare de voir en pratique
des tailles d’entête différentes de 20 octets pour IPv4.
On peut constater qu’il y a moins de champs utilisés pour l’entête IPv6 que pour IPv4. Voici la
signification des champs pour IPv6 :
• Version (4 bits) : correspond à la version du protocole internet, cette valeur est fixée à 6 pour
IPv6
• Traffic Class (8 bits) : Utilisé pour la qualité de service
3
Source : GRAZIANI, Rick. IPv6 Fundamentals: A Straightforward Approach to Understanding IPv6.
CiscoPress. 2013.
4
Source : GRAZIANI, Rick. IPv6 Fundamentals: A Straightforward Approach to Understanding IPv6.
CiscoPress. 2013.
• Flow Label (20 bits) : Permet de marquer un flux pour un traitement spécial (Paquets voix et
vidéo d’une vidéo-conférence)
• Payload Length (16 bits) : Taille de données utiles du paquet (Entête IPv6 non-compris)
• Next Header (8 bits) : Identifie le protocole de couche supérieure ou une extension de
l’entête IPv6
• Hop Limit (8 bits) : Durée de vie du paquet IPv6
• Source Address (128 bits) : L’adresse IPv6 de l’expéditeur
• Destination Address (128 bits) : L’adresse IPv6 du destinataire
2.1.1. Correspondances
IPv6 IPv4
Traffic Class Type of Service
Payload Length Total Length
Hop Limit Time to live
Next Header Protocol
Tableau 2-1 | correspondances IPv4/IPv6
On peut ajouter que pour le champ « Payload Length » on ne prend pas en compte la taille de l’entête
contrairement à « total Lenght ».
Il est également important de relever que contrairement à «Protocol » qui ne contient uniquement
que la valeur du protocole transporté, « Next Header » peut également contenir la valeur d’une
prochaine en-tête ou extension de l’en-tête IPv6.
Voilà trois exemples pour mieux comprendre le « Next Header » avec à chaque fois une valeur
différente, pour la première du TCP, UDP et pour finir de l’ICMPv6.
5
Source : GRAZIANI, Rick. IPv6 Fundamentals: A Straightforward Approach to Understanding IPv6.
CiscoPress. 2013.
2.1.2. Fragmentation
La différence sur le traitement de la fragmentation avec IPv6 est un point important à expliquer. En
effet, contrairement au Protocol IPv4, seuls les expéditeurs peuvent fragmenter les paquets. Les
équipements intermédiaires (routeurs) ne peuvent pas fragmenter des paquets IPv6. Il est donc
impératif pour l’expéditeur de connaître le MTU (Maximum Transmission Unit) sur tout le chemin
entre la source et la destination. Si un routeur reçoit un paquet IPv6 trop volumineux pour le
transmette, il supprimera le paquet et répondra à l’expéditeur avec un message ICMPv6 « Packet Too
Big ».
Il est possible de supprimer les zéros à gauche dans les hextets, exemple avec l’adresse
On peut aussi écrire « :: » au lieu des blocs de hextet contigus qui ne contiennent que des zéros :
6
Source : GRAZIANI, Rick. IPv6 Fundamentals: A Straightforward Approach to Understanding IPv6.
CiscoPress. 2013.
Attention le « :: » ne peut être utilisé qu’une fois dans le bloc d’adresse, sinon on ne peut pas
reconstruire l’adresse sans ambiguïté.
L’écriture pour le masque de l’adresse IPv6 s’écrit de la même manière que pour CIDR :
2001:0DB8:AAAA:1111:0000:0000:0000:0000/64
• Unicast
• Anycast
• Multicast
Voici un schéma qui résume bien les trois types d’adresses et ses sous-types possibles.
7
Source : GRAZIANI, Rick. IPv6 Fundamentals: A Straightforward Approach to Understanding IPv6.
CiscoPress. 2013.
Ce sont les adresses liées à une interface sur une machine ou un équipement. Quand on envoie un
paquet sur une adresse « Unicast », on cible donc une interface avec une adresse IP.
Global Unicast
Ce sont les adresses Global routables et atteignables via internet en IPv6. Elles équivalent aux adresses
publiques pour IPv4.
On constate que les 48 premiers bits de l’adresse sont utilisés pour être routés sur internet et ne
doivent en principe pas être modifiés. Les 16 prochains bits sont utilisés pour faire les sous-réseaux,
soit un nombre total de de 65 537 sous-réseaux possibles. Les 64 derniers bits sont pour les interfaces
des machines ou équipements. En général une machine aura une adresse de type
2001:DEAD:BEEF::2/64. A savoir que pour utiliser la technologie « SLAAC » que nous verrons par la
suite (auto configuration de l’adresse IP par l’interface), il faut avoir une configuration des adresses en
/64.
8
Source : GRAZIANI, Rick. IPv6 Fundamentals: A Straightforward Approach to Understanding IPv6.
CiscoPress. 2013
On constate que même pour les liaisons inter-routeur on utilise un masque /64. En effet, on dispose
de tellement de sous-réseaux possibles qu’on n’est plus du tout dans la même logique que pour les
plans d’adressage en IPv4 où il faut économiser les adresses.
Pour configurer une adresse « Global » il faut que l’interface ait une adresse Link-Local configurée. On
arrive à configurer une adresse « Global » de manière dynamique ou statique, comme c’est le cas pour
IPv4.
10
Mode manuel
9
Source : GRAZIANI, Rick. IPv6 Fundamentals: A Straightforward Approach to Understanding IPv6.
CiscoPress. 2013
10
Source : GRAZIANI, Rick. IPv6 Fundamentals: A Straightforward Approach to Understanding IPv6.
CiscoPress. 2013
• Static permet de configurer l’adresse et son préfixe de la même manière qu’avec IPv4.
• EUI-64 permet de ne configurer que le préfixe et la longueur du préfixe à 64, le reste de
l’adresse (interface ID) est générée automatiquement via un algorithme qui prend en compte
l’adresse MAC de la carte réseau.
Mode dynamique
Unique local
Il s’agit des adresses équivalentes aux adresses privées sur IPv4. Il n’est pas conseillé d’utiliser ces
adresses.
Link-Local
Chaque interface doit obligatoirement avoir une adresse Link-Local afin d’avoir une adresse Global.
L’adresse Link-Local permet de communiquer sur son réseau local, mais ce n’est pas une adresse
routable, si un routeur reçoit un paquet destiné à une adresse Link-Local, le routeur va soit traiter le
paquet, car il lui est destiné, soit le rejeter.
Unspecified
Loopback
Comme pour IPv4 avec une longueur différente ::1/128. Adresse uniquement utilisée localement par
l’hôte.
Comme pour IPv4 une adresse Anycast est une adresse unicast configurée sur plusieurs équipements.
Quand on envoie un paquet à une adresse anycast, seul l’équipement le plus « proche » configuré avec
l’adresse unicast reçoit le paquet via la méthode de routage.
Une adresse multicast identifie un groupe d’équipements, un paquet envoyé à une adresse multicast
sera reçu par tous les équipements de ce groupe, contrairement à l’adresse unicast. Il faut préciser
qu’il n’y a pas d’adresse broadcast dans IPv6.
Assigned
Il s’agit d’adresses prédéfinies pour des besoins particuliers. Par exemple l’adresse FF01::2 qui
représente l’adresse de tous les routeurs. Voir la RFC 2375 pour plus de détails.
2.3. ICMPv6
On connaît ICMP avec IPv4, très connu pour la commande « Ping » pour vérifier si une machine est
atteignable sur le réseau. Ce protocole permet principalement de connaître la santé du réseau.
Avec ICMPv6 (RFC 4443) il existe de nouvelles fonctionnalités, celle qui nous intéresse particulièrement
permet de faire la liaison entre une adresse de couche 2 et une adresse de couche 3. Pour IPv4 il existe
ARP (Address Resolution Protocol). Avec ICMPv6 cette fonctionnalité est intégrée via le protocole ND
(Neigbhor Discovery Protocol).
11
On peut très clairement observer que les trois premiers champs « Type », « Code » et « Checksum »
restent inchangés de la version ICMP. Il faut cependant préciser que les numéros des types et des
codes des messages sont différents. La taille d’un paquet ICMPv6 ne peut pas être inférieure au
minimum MTU défini pour IPv6 étant de 1’280 Octets. Afin d’identifier un message ICMPv6, nous
aurons la valeur 58 dans le champ « Next Header » de l’en-tête IPv6 qui précède l’en-tête ICMPv6.
11
Source : GRAZIANI, Rick. IPv6 Fundamentals: A Straightforward Approach to Understanding IPv6.
CiscoPress. 2013
Comme indiqué précédemment, le champ « Type » sera compris entre 0 et 127. Le champ code
contient des informations détaillées sur le type de message. Voici les quatre messages d’erreur
ICMPv6 :
On a également un champ MTU qui va s’ajouter dans l’en-tête ICMPv6 afin d’indiquer la valeur MTU
du prochain saut. Le mécanisme « PATH MTU DISCOVERY » utilise ce champ. Je décrirai plus en détail
dans le chapitre 2.4 ce mécanisme.
3. « Time Exceeded » le paquet n’a pas une durée de vie suffisante, ce qui se produit si le
champ « Hop Limit » de l’entête IPv6 ne peut plus être décrémenté, étant donné que chaque
routeur qui traite le paquet décrémente cette valeur de un.
4. « Parameter Problem » on ne peut pas identifier un champ de l’entête IPv6 ou l’entête dans
l’extension.
Valeur Valeur Signification
champ champ
type code
« Erroneous header field encountered » : ce code est visible si la destination a
0
détecté une erreur dans un champ de l’entête IPv6.
« Unrecognized next header type encountered » : ce code est généré si la valeur
4 1
du “Next Header” IPv6 n’est pas reconnue.
« Unrecognized IPv6 option encountered » : ce code est généré si une option IPv6
2
n’est pas reconnue.
Tableau 2-5 | ICMP error valeur type 4
On a également un champ Pointer qui va s’ajouter dans l’entête ICMPv6 afin d’indiquer la position de
l’erreur détectée.
Pour ces messages le champ « Type » sera compris entre 128 et 255. Ces types de message sont utilisés
également pour les technologies « Path MTU Discovery » et « Neighbor Discovery ». Je vais me
concentrer sur les autres types de messages qui ne concernent pas ces deux protocoles, car ceux-ci
seront décrits dans leur chapitre dédié.
12
Le PMTU peut varier, car le chemin entre la source et la destination peut changer, et est donc une
valeur qui peut être changée de manière dynamique.
12
Source : GRAZIANI, Rick. IPv6 Fundamentals: A Straightforward Approach to Understanding IPv6.
CiscoPress. 2013
Le Protocole NDP est également utilisé pour l’autoconfiguration des adresses IPv6 « SLAAC ».
NDP utilise ICMPv6 pour garantir les fonctions décrites ci-dessus. Voici les messages ICMPv6 utilisés
par NDP :
Permet l’autoconfiguration de l’adresse IPv6 via SLAAC, le message envoie le préfixe du réseau, sa
longueur, la passerelle par défaut et d’autres paramètres. Il sera émis par l’interface (l’hôte) pour qu’un
routeur puisse lui répondre avec un message RA. Le message est envoyé à l’adresse FF02::2 qui
correspond à l’adresse multicast de tous les routeurs.
Comme on l’a vu ce message est émis par un routeur en réponse à un message RS, on peut également
configurer le routeur afin qu’il émette périodiquement des messages RS vers les hôtes. Ce message
comprend un champ qui indique si l’hôte doit utiliser un serveur DHCPv6.
Il permet de découvrir l’adresse de couche 2 d’un équipement sur le même lien, il est également utilisé
pour le mécanisme DAD et NUD
Il s’agit de la réponse au message NS, on renvoie l’adresse de couche 2 ainsi que l’adresse IPv6.
Redirect message
Il fonctionne de la même manière que sur IPv4, il permet d’informer d’un meilleur routeur du premier
saut « first-hop routeur »
Voici un schéma qui indique clairement le processus de SLAAC. Dans un premier temps on va attribuer
une adresse Link-Local et ensuite une adresse Global :
13
On peut constater que l’attribution d’une adresse IPv6 Global doit obligatoirement passer par la
réception d’un message RA provenant du routeur afin de connaître le préfixe et sa longueur. Il peut
13
Source : GRAZIANI, Rick. IPv6 Fundamentals: A Straightforward Approach to Understanding IPv6.
CiscoPress. 2013
Le client peut générer seul une adresse de lien local « Link-Local », soit en utilisant un algorithme
pseudo-aléatoire pour l’interface ID, soit en utilisant le mécanisme EUI-64.
Ce moyen de transition permet la coexistence d’IPV4 et d’IPV6 sur une interface, cela peut être un
simple périphérique réseau, un PC, un routeur ou n’importe quel équipement qui supporte le Dual-
Stack. Il est indispensable que l’application soit compatible IPv4/IPv6 pour bénéficier des avantages du
Dual-Stack. Cela permet à l’interface de communiquer soit via IPV4, soit via IPV6. L’interface doit
contenir au moins une adresse IP pour chaque protocole.
Le DNS doit pouvoir résoudre des requêtes DNS via des type d’enregistrements A pour les requêtes
IPV4 et des types AAAA pour des requêtes IPV6. Dès le moment où le serveur DNS retourne une
adresse IPV6, il faut que l’hôte source puisse atteindre la destination via le protocole IPV6. De ce fait,
tout le chemin réseau parcouru entre l’hôte et la destination doit être configuré également avec le
protocole IPV6. Il faut donc configurer les équipements réseau avec les deux protocoles. On peut dire
que c’est le désavantage de cette méthode de transition, puisqu’il y a une double configuration sur les
équipements, une pour le protocole Ipv4 et l’autre pour le protocole IPv6. Par exemple sur les routeurs
il faudra configurer les tables de routage pour IPV4 et IPV6. Pour l’administration du réseau il faudra
utiliser des commandes différentes en fonction du protocole. Tout cela nécessite plus de mémoire et
ressources processeur sur les équipements.
Si l’application gère IPV4 et IPV6, le DNS va retourner une adresse pour chaque protocole, c’est ensuite
le système d’exploitation qui choisira quelle adresse utiliser, dans la plupart des cas cela sera l’adresse
IPv6, mais peut dépendre des systèmes d’exploitation.
14
15
14
Source : GRAZIANI, Rick. IPv6 Fundamentals: A Straightforward Approach to Understanding IPv6.
CiscoPress. 2013
15
Source : GRAZIANI, Rick. IPv6 Fundamentals: A Straightforward Approach to Understanding IPv6.
CiscoPress. 2013
Il s’agit d’une méthode de transition temporaire à utiliser pour au final avoir une configuration native
en IPv6 sur le réseau. On parle ici d’encapsulation des paquets IPv6 dans IPv4 afin de pouvoir
transmettre ces paquets sur un réseau purement IPv4. Le schéma ci-dessous illustre bien ce
fonctionnement :
16
Sur l’image ci-dessus, on constate qu’il y a le « Transport Protocol », le protocole IPv4 dans lequel le
tunnel est créé. On voit que le protocole dans l’entête IP est le 41, ce qui indique l’encapsulation d’IPv6.
Dans le « Passanger Protocol » on retrouve le paquet IPv6 encapsulé.
On constate également que de chaque côté du tunnel, l’équipement qui initie la connexion est
configuré en Dual-Stack. D’un côté il recevra les paquets en IPv6 et va ensuite les encapsuler dans IPv4
afin de les transmettre par le réseau IPv4. De l’autre côté du tunnel, l’équipement doit être configuré
en Dual-Stack afin de pouvoir recevoir le paquet encapsulé via IPv4 et le décapsuler afin de l’envoyer
via IPv6 à la bonne destination.
Il est également possible d’établir ce tunnel entre deux machines, ou entre une machine et un routeur
selon le même principe :
17
16
Source : GRAZIANI, Rick. IPv6 Fundamentals: A Straightforward Approach to Understanding IPv6.
CiscoPress. 2013
17
Source : GRAZIANI, Rick. IPv6 Fundamentals: A Straightforward Approach to Understanding IPv6.
CiscoPress. 2013
Il est possible de configurer le tunnel de manière manuelle pour les petits réseaux. Pour les plus
grandes infrastructures, il est indispensable d’utiliser 6to4 qui permet la création automatique de
tunnels entre les réseaux IPv6 sur une liaison IPv4. La RFC 3056 donne plus de détails sur cette
implémentation.
Pour cette technologie on utilise un préfixe dédié : 2002 ::/16 qu’on complète avec l’adresse IPv4 ce
qui nous donne des adresses en /48 comme on peut le voir ci-dessous :
18
On constate qu’il y a un tunnel créé pour plusieurs destinations. R1 est capable via son tunnel de
communiquer en IPv6 avec R2, R3 ou les autres routeurs. On appelle cette technologie « point-to-
multipoint connexion ».
18
Source : GRAZIANI, Rick. IPv6 Fundamentals: A Straightforward Approach to Understanding IPv6.
CiscoPress. 2013
2.7.4. NAT64
Le NAT pour IPv4 était principalement utilisé pour translater une adresse privée en public, le NAT64
lui permet de manière transparente de faire le lien entre une adresse IPv4 et IPv6, afin de pouvoir
communiquer entre un réseau purement IPv4 vers IPv6. Il s’agit d’une méthode de transition à utiliser
à court terme. Elle permet de fournir des ressources en IPv6 aux clients qui sont en configuration IPv4
de manière transparente.
19
NAT64 est le remplaçant de « NAT-PT », CISCO recommande d’utiliser NAT64 et non « NAT-PT ». Dans
notre cas, nous allons utiliser la translation d’IPv4 vers IPv6, ce qui permettra à un client qui se
connecte en IPv4 d’utiliser les services Cloud en IPv6. Voici un exemple de fonctionnement avec la
description pour chaque étape :
20
19
Source : GRAZIANI, Rick. IPv6 Fundamentals: A Straightforward Approach to Understanding IPv6.
CiscoPress. 2013
20
Source : GRAZIANI, Rick. IPv6 Fundamentals: A Straightforward Approach to Understanding IPv6.
CiscoPress. 2013
Etape 1 : il faut tout d’abord configurer sur le routeur un le lien entre l’adresse IPv4 et IPv6 qu’on
appelle « Static MapPing ». Ici on fait le lien entre l’adresse 2001:DB8:FEED:1::E et 172.16.1.10
Etape 2 : le PC fait une requête au serveur DNS pour résoudre l’adresse www.exemple-v6.com
Etape 4 : la machine A peut maintenant envoyer son paquet avec l’adresse source 192.0.2.10 et son
adresse de destination 172.16.1.10
Etape 5 : le paquet est reçu par le routeur qui constate qu’une « Static MapPing » est configurée pour
l’adresse 172.16.1.10. Il va donc effectuer les étapes suivantes :
Etape 6 : le paquet est routé en utilisant le processus standard de routage IPv6. Il arrive donc
directement sur le serveur 2001:DB8:FEED:1::E
Etape 8 : le routeur effectue cette fois la transition de l’adresse IPv6 en IPv4 selon les étapes suivantes :
Etape 9 : pour terminer le paquet est routé sur la base IPv4 vers le machine A.
Cela permet donc à une machine configurée en IPv4 d’accéder à des services configurés en IPv6 de
manière transparente pour l’utilisateur. Il y a également la possibilité de faire la translation d’adresse
d’IPv6 vers IPv4, cela nécessite un serveur DNS64.
Il y a également ces différentes méthodes de transitions qu’on peut citer, mais que je ne vais pas
développer dans ce document, on peut retrouver plus d’infos dans les RFC :
Le projet a pour but d’évaluer la charge de travail ainsi que les risques et les différentes solutions à
implémenter pour la migration d’une infrastructure Cloud IPv4 vers IPv6 au sein d’une société de
services informatiques.
3.2. Objectifs
Il est nécessaire d’évaluer les services de base afin de s’assurer qu’ils soient bien compatibles en Dual-
Stack. Il est également important de faire en sorte que la partie NAT64 puisse être configurée sur les
firewalls. Pour cela nous allons donc établir un POC « Proof of Concept » qui regroupe ces différents
services, les équipements qui constituent le POC sont le plus semblable possible à ceux qui sont
actuellement en production afin de procéder ensuite à une intégration simplifiée de la solution. Il est
important de préciser que l’intégration dans le réseau de production ne fait pas partie du travail de
diplôme.
• Routeur (ASR1001)
• IPAM (plateforme Infoblox)
• DNS (plateforme Infoblox)
• DHCP (plateforme Infoblox)
• Firewall (Palo-alto et Fortinet)
• Reverse-Proxy (linux)
Un point important qu’on peut relever est que, pour la partie DNS (interne et public) ainsi que pour
l’IPAM, nous avons opté pour la plateforme Infoblox qui n’est actuellement pas utilisée dans notre
environnement. C’est une version d’évaluation étendue qui nous est mise à disposition par l’un de nos
fournisseurs. L’IPAM permet principalement la gestion des adresses IPv4 et IPv6. Il sera également
possible d’utiliser du DNSsec qui permet de résoudre certains problèmes de sécurité liés au protocole
DNS.
Ce travail a donc également comme objectif de mettre en place, configurer et évaluer cette plateforme
Infoblox. Pour cela je vais pouvoir compter sur le support de notre fournisseur qui va m’apporter de
l’aide pour la mise en place de l’équipement et me fournira une rapide formation. Par la suite c’est moi
qui m’occuperai de sa configuration.
Nous n’avons pas la possibilité d’intégrer nos switch layer 3 dans le POC. Il faudra donc évaluer ces
équipements en fonction de leur modèle et version, afin de s’assurer de leur compatibilité. Dans notre
POC, nos deux firewalls nous permettrons de faire du routage interne.
Nos deux firewalls actuellement en production offrent des possibilités de configuration par rapport à
leurs versions de logiciel embarqué et non par rapport au modèle. En effet, avec le firewall Fortigate
et Palo Alto nous avons le même niveau de fonctionnalité d’un modèle à l’autre. Il faudra cependant
veiller à avoir la même version de logiciel sur les firewalls que nous allons utiliser dans notre POC et
également le même type de licence. Les deux firewalls nous parviendront dans le courant du mois de
juin.
Il faut aussi relever que bien qu’ils ne seront pas utilisés dans notre POC, nos deux serveurs DNS public
doivent être migrés avant de mettre en place IPv6 en production dans l’infrastructure Cisel. En effet,
ils sont actuellement en Windows Serveur 2008 et ne supportent pas les entrées AAAA qui
correspondent aux adresses IPv6. Je ne m’occuperai pas de la migration, mais de l’effectuation de la
demande en interne afin qu’une autre ressource de Cisel informatique puisse s’en occuper.
La mise en place de notre réseau de test « POC » me permettra d’acquérir les compétences afin
d’établir une documentation complète dans le but d’un déploiement futur de la solution. Il me
permettra également d’évaluer la compatibilité des équipements. Le réseau de test pourra également
être par la suite utilisé pour valider la compatibilité d’un service Cloud en mode Dual-Stack avant de
procéder à sa configuration en production.
4.Analyse
4.1. Résumé de la situation
Cisel souhaite intégrer IPv6 pour les services Cloud qu’elle fournit à ses clients. Comme le but du projet
est de migrer vers IPv6 pour les services Cloud, nous allons uniquement nous concentrer sur les
équipements et services utilisés par l’infrastructure Cloud. Voici donc les différents services de base à
prendre en compte :
• Routeur (ASR1001)
• Switch layer 3(Cisco 3750-X et Nexus 5548)
• IPAM (pas encore disponible, à évaluer dans le POC)
• DNS (Windows Serveur)
• DHCP (Windows Serveur)
• Firewall (Palo-Alto et Fortinet)
• Reverse-Proxy (linux)
• Service Cloud
Tous ces services sont actuellement configurés en IPv4 exclusivement. Il faut donc que les équipements
soient compatibles IPv4 et IPv6 afin d’avoir une configuration Dual-Stack. Les switch layer 2 ne seront
pas évalués, car ils ne traitent que la couche 2 (adresse physique) et non la couche 3 avec l’adresse IP.
Il n’y a donc pas d’influence pour ces équipements.
Notre nom de domaine cisel-lab.ch aura comme DNS public notre DNS Infoblox qui se trouvera dans
notre réseau de test.
Nous aurons donc la possibilité d’effectuer les tests nécessaires, afin de valider que nos deux firewalls
ainsi que notre routeur ASR1001 sont compatibles avec IPv6 et nous permettent de faire les
configurations nécessaires, afin de les rendre disponibles aux services-Cloud en IPv6. Il faudra
confirmer que ces services sont accessibles depuis internet, mais également depuis l’interne.
La priorité est de tester, dans un premier temps, l’accès depuis l’externe. Afin de pouvoir simuler la
connexion depuis une machine distante connectée à internet, nous utiliserons pour cela une seconde
ligne internet. Afin d’avoir une adresse IPv6 Global sur notre poste de test, nous effectuerons un tunnel
avec le service « Hurricane Electric Free IPv6 Tunnel Broker ».
Par la suite, il sera possible de tester la disponibilité des ressources Cloud depuis l’interne. Nous allons
utiliser le DHCP de l’Infoblox pour distribuer une adresse IPv4 et IPv6 sur un poste de travail qui se
trouvera dans une zone interne, c’est-à-dire derrière le firewall interne (comme c’est le cas pour la
production).
INT_CISEL
IPv6 Tunnel Broker
Firewall Interne Fortigate Firewall Externe Palo Alto Poste test externe
Routeur ASR1001
OUT_DNS_PUB
Palteforme Infoblox
IN_DNS_IPAM_DHCP_PRIV
Voici la liste des services Cloud que nous proposons à nos clients :
• Exchange as a Service
• Lync as a Service
• Téléphonie VOIP as a Service
• File and Backup as a Service
• Desktop as a Service
• SAP B1 as a Service
• Interface console de gestion
Nous n’allons pas intégrer tous ces services Cloud dans notre POC, cela serait un travail trop
conséquent. Nous allons donc prendre nos deux services principaux qui sont « Exchange as a service »
et « File as a Service ». Il est important de valider que la couche application est compatible avec IPv6.
Voici actuellement le schéma qui représente l’ensemble des services Cloud que nous proposons à nos
clients :
DMZ EXTERNES
INT_GW_RDP (DMZ Comm Externe)
FireWall
Internet
•
FW Externe
172.21.71.31/32
• CISSYNC SRVMED001 SRVMED002
Lync
federation
SRVVSS001A SRVVSS001B
• 172.21.54.4 • 172.21.54.4
• •
Serveur connection serveu rServeur connection serveur
SRVRPROXY001 SRVRPROXY002
• 172.xx • 172.xx
• Reverse PRox y • Reverse PRoxy
OUT_CLOUD_PRIV • Apache • Apache
Firewall Interne
FireWall
INT_CLOUD_RDP
SRVLB002B SRVLB002A
SRVDC01 SRVDC02 SRVCAIS001 SRVVCS001A SRVVCS001B
... SRVCP001
• Serveur Cloud Panel
•
•
172.21.54.3
Serveur Activ e Directory
•
•
172.21.54.4
Serveur Activ e Directory
•
•
172.21.54.5
Serveur de certif icats
•
•
172.21.54.4
Serveur connection serveur
•
•
172.21.54.4
Serveur con nection serveur
•
•
172.xx
Reverse PRoxy
•
•
172.xx
Reverse PRox y
• A pache • Apache
...
Dans notre réseau de test nous aurons une zone qui contient les services Cloud configurés en Dual-
Stack. Pour la mise en place d’IPv6 sur la suite de production, il sera possible d’avoir une zone réservée
au service Cloud configuré en IPv4 et une seconde zone contenant uniquement des services Cloud
Dual-Stack. Cela permet, au niveau opérationnel, de distinguer facilement les services disponibles en
Dual-Stack et également de déplacer le serveur d’une DMZ à une autre, une fois la couche application
testée avec IPv6.
Comme c’est le cas en production, un « reverse Proxy» basé sur un OS linux sera utilisé pour terminer
le flux TCP via le port 443 (HTTPS). C’est le « reverse Proxy » qui fait le routage vers le service Cloud et
termine la connexion TCP. Son rôle est de couper le flux qui vient depuis l’externe et d’ouvrir un flux
de la DMZ externe vers l’interne.
Je vais également monter un serveur VMware ESX qui hébergera le « reverse Proxy », le « serveur
exchange » et le « serveur CISsync », afin de se retrouver dans la même configuration que sur le réseau
de production. En effet, tous nos services Cloud sont hébergés sur nos serveurs ESX internes.
Voici le schéma de test complété avec nos deux services Cloud ainsi que notre Proxy linux :
Notre POC respecte ainsi la configuration que nous avons en production. On retrouve les deux niveaux
de firewall et aussi les services Cloud hébergés sur les ESX. Le POC nous permettra également de nous
familiariser avec les règles firewall à créer pour IPv6 ainsi que le routage. Il pourra par la suite être
utilisé pour valider que la couche application d’un service Cloud est bien compatible avec IPv6.
21
Chacun de ces organismes, RIPE pour l’Europe, distribue des adresses à ses LIR (Local Internet
Registries). Les LIR sont en général des fournisseurs d’accès à internet (ISP), comme Swisscom par
exemple mais peut également être une entreprise ou association.
Voici un schéma pour comprendre le découpage des adresses en fonction des différents organismes :
21
Source : https://www.apnic.net/about-APNIC/organization/history-of-apnic/history-of-the-regional-internet-
registries
On peut voir que les RIR comme RIPE pour l’Europe, reçoivent en général un bloc d’adresses en /23.
Les fournisseurs d’accès à internet (ISP) qui sont, comme décrit juste avant, des LIR, reçoivent un bloc
d’adresses de /32. Pour finir les LIR distribuent un bloc d’adresse aux entreprises en /48.
Il est important de signaler que s’il s’agit du minimum d’allocation, par exemple une entreprise qui
justifie un /37 pourrait bien se voir attribuer ce bloc d’adresse.
Nous avons effectué une demande pour un Bloc d’adresse en /48 (recommandation de l’ISEG et IAB
RFC3177). Le bloc d’adresse sera « provider-independant (PI) », ce qui permettra de changer de
provider sans devoir changer de bloc d’adresse IP.
Les 48 premiers bits seront utilisés pour être routés sur interne, comme la partie réseau de IPv6
concerne les 64 premier bits, il nous reste 16 bits pour faire nos sous-réseaux, ce qui nous fait 65535
sous-réseaux qui peuvent contenir chacun un nombre de 8 quintillions d’adresses. Ce qui est largement
suffisant.
Dans un premier temps nous avions pensé demander un bloc d’adresse en /37, afin de pouvoir
proposer nous-même différents bloc /48 à nos clients. Malheureusement, il n’est pas possible de le
faire avec un bloc d’adresse PI (provider-independant). En effet, RIPE refuse de le faire pour éviter de
fragmenter le réseau et de remplir les tables de routages internet.
La seule possibilité aurait été de devenir un membre de RIPE. Les coûts sont de 2000 euros pour la
mise en service et de 1400 euros pour se positionner en tant que LIR (+50 par assignement de PI) par
année.
Dans le cas où il serait possible de bénéficier d’un bloc d’adresse IP en /37, nous pourrions établir 2048
sous-réseaux routables sur internet (2^11). Imaginons que nous recevions le bloc d’adresse suivant :
2001:BEEF::0/37
Nous aurions donc la possibilité d’avoir les plages d’adresses routables sur internet suivantes :
2001:BEEF:2::/48
Ripe met à disposition un fichier pdf22 qui permet de donner des « best practices » sur le concept
d’adressage IPv6. Suite à la lecture de ce document j’ai pu établir le concept suivant :
Nous avons à disposition un bloc d’adresse IPv6 avec un préfixe /48. Ce qui nous laisse 16 bits pour
faire nos sous-réseaux. Il faut donc répartir ces 16 bits de manière réfléchie, afin d’avoir une logique
d’adressage qui permet de localiser ou d’identifier un équipement rapidement. Nous avons la
possibilité de définir trois groupes :
Le type d’équipement (T), on peut réserver un digit pour le type d’équipement, voici une liste de type
d’équipement possible :
D D D D D D D D D D D D D D D D
1ère possibilité :
T T T T V V V V V V V V V V V V
2001:DEAD:BEEF:1100::/64
1 correspondrait par exemple au type backbone, on retrouve également le VLAN 100. L’avantage est
qu’on obtient facilement notre sous-réseau en connaissant le VLAN et le type d’équipement. Connaître
le type peut être intéressant d’un point de vue opérationnel. Par contre, le désavantage est qu’on ne
peut pas avoir des vlan plus grands que 999 si on veut pouvoir les entrer en décimal dans l’adresse
hexadécimale.
22
Source : https://www.ripe.net/support/training/material/IPv6-for-LIRs-Training-Course/Preparing-an-IPv6-
Addressing-Plan.pdf
2ème possibilité :
L L L L T T T T D D D D D D D D
2001:DEAD:1101:/64
La première possibilité reste la plus intéressante. Nous avons déjà une logique de vlan qui correspond
à définir des numéros de VLAN entre 301 et 550 pour les zones internes et entre 551 et 700 pour les
zones externes. Nous allons donc utiliser ce concept d’adressage dans notre POC.
INT_CLOUD_CISEL 172.20.70.16/28
INT_CISEL 172.20.70.32/28
OUT_DNS_PUB 172.20.70.48/28
INT_DNS_IPAM_DHCP_PRIV 172.20.70.64/28
OUT_CLOUD_PUB 172.20.70.80/28
OUT_CLOUD_PRIV 172.20.70.96/28
MANAGEMENT 172.20.70.0/28 VLAN 420
OUTSIDE FORTIGATE / INSIDE PALO ALTO 172.20.70.112/28
172.20.70.113 OUTSIDE FORTIGATE
172.20.70.114 INSIDE PALO ALTO
OUTSIDE PALO ALTO 195.141.249.249
Tableau 4-1 | plan d'adressage IPv4
Nous n’avons pas encore reçu notre bloc d’adresse IPv6, mais j’ai fait le nécessaire pour que le bloc
soit à notre disposition dans le courant du mois de juin. Dans notre plan d’adressage nous allons donc
prendre le bloc d’adresse 2001:DEAD:BEEF::/64. Ainsi je peux déjà concevoir mon plan d’adressage et
remplacer les trois premiers hextet une fois que nous aurons le bloc à disposition. Voici donc le plan
d’adressage IPv6 :
Nous pourrons donc tester l’accès à notre service Cloud depuis notre deuxième ligne internet. Il sera
possible de tester l’accès depuis une configuration IPv4 et une configuration Dual-Stack en établissant
un tunnel IPv6 vers « Hurricane Tunnel Broker ».
Voici donc les différents cas de figure que nous pourrons tester :
• Une machine distante configurée en IPv4 veut utiliser une ressource Cloud IPv6 (méthode
NAT64 configuré sur Firewall)
• Une machine distante configurée en Dual-Stack (via Hurrican Tunnel Broker) veut se connecter
sur une ressource Cloud Cisel configurée en IPv6.
Nous pourrons également valider la distribution d’une adresse IPv6 et IPv4 via le DHCP de la
plateforme Infoblox sur un poste en interne afin de confirmer l’utilisation du service Cloud depuis
l’interne.
5.Analyse de risque
Afin d’assurer la réussite du projet en général et de mener à bien la configuration du réseau de test, il
est important d’évaluer les risques afin de préparer une solution en cas de problème. Voici donc la liste
des problèmes potentiels :
Solution : relancer le fournisseur afin de nous livrer les équipements dans les plus brefs délais.
Problème 2 : Retard dans la mise en place du block IPv6 sur notre ligne internet Sunrise.
Solution : relancer Sunrise afin de leur demander de traiter cette demande au plus vite
Problème 4 : Incompatibilité d’un des services Cloud avec le monde de fonctionnement Dual-Stack
Solution : Le réseau de test a justement comme but de vérifier la compatibilité des services Cloud. Il
faudra donc en tenir compte pour le futur déploiement en production et vérifier auprès du support s’il
y a une solution prévue.
Solution : Chercher une version linux compatible avec le monde de fonctionnement Dual-Stack
Problème 6 : Perturbation sur le réseau de production due à une configuration sur notre réseau de
test
6.Réalisation de la maquette
Nous pouvons donc commencer la mise en place de notre réseau de simulation. Il permettra de
confirmer la compatibilité de nos différents services de base ainsi que nos deux principaux services
cloud. Il pourra par la suite être utilisé pour tester d’autres services Cloud avant leur configuration en
IPv6. En effet ce réseau de simulation a pour principal but de valider le concept établi lors de la pré-
étude afin de pouvoir par la suite le mettre en pratique dans le réseau de production de CISEL. Je vais
détailler avec précision les différentes configurations que je vais effectuer afin d’avoir une
documentation complète pour faciliter le travail des personnes qui s’occuperont des configurations
sur le réseau de production. Voici donc le schéma mis à jour avec les adresses IP et les NAT :
La configuration des interfaces ainsi que le routage BGP en IPv4 est déjà effectuée car il s’agit de notre
routeur de production. Il faut donc effectuer les modifications très prudemment. En cas de problème
nous avons un outil qui permet de revenir à une configuration précédente sur notre routeur.
r-matran-198-7-ASR1001#conf t
r-matran-198-7-ASR10(config)#ipv6 prefix-list sunrise-out_v6 seq 5 permit 2001:678:204::/48
r-matran-198-7-ASR10(config)#ipv6 unicast-routing
r-matran-198-7-ASR10(config)#router bgp 200173
r-matran-198-7-ASR10(config-router)#no bgp default ipv4-unicast
r-matran-198-7-ASR10(config-router)#neighbor 2001:678:204::3 remote-as 200173
r-matran-198-7-ASR10(config-router)#neighbor 2001:1700:2200:6::1 remote-as 6730
r-matran-198-7-ASR10(config-router)#neighbor 2001:1700:2200:6::1 description Connexion vers
Sunrise (IPV6)
r-matran-198-7-ASR10(config-router)#neighbor 2001:1700:2200:6::1 password 7 XXXXXX
r-matran-198-7-ASR10(config-router)#address-family ipv6
r-matran-198-7-ASR10(config-router-af)#network 2001:678:204::/48
r-matran-198-7-ASR10(config-router-af)#neighbor 2001:1700:2200:6::1 activate
r-matran-198-7-ASR10(config-router-af)# neighbor 2001:1700:2200:6::1 prefix-list sunrise-out_v6 out
r-matran-198-7-ASR10(config-router-af)#end
r-matran-198-7-ASR1001#wr
Il s’agit de l’interface connectée à Sunrise, il faut donc activer IPv6 sur cette interface et lui fixer
l’adresse IP fournit pas Sunrise :
r-matran-198-7-ASR1001#conf t
Il faut maintenant configurer l’interface qui sera connectée sur notre PALO ALTO. On va également
ajouter une route static pour que les paquets arrivent sur notre firewall.
r-matran-198-7-ASR1001#conf t
r-matran-198-7-ASR10(config)# ipv6 route 2001:678:204::/48 2001:678:204:1001::2
r-matran-198-7-ASR10(config)#interface giga 0/0/1
r-matran-198-7-ASR10(config-if)#ipv6 enable
r-matran-198-7-ASR10(config-if)# ipv6 address 2001:678:204:1001::1/64
r-matran-198-7-ASR10(config-if)#end
r-matran-198-7-ASR1001#wr
Avec la commande suivante on peut vérifier que les adresses IPv6 soient correctement configurées
On peut faire un Ping sur le DNS Google pour valider la configuration en IPv6 :
Comme notre routeur est connecté sur un switch Cisco 3560, nous pouvons utiliser un port de ce
switch afin de connecter le routeur et le firewall, les deux ports devant être sur le même vlan. J’ai donc
configuré notre switch c-matr-21.198.5-3560 :
c-matr-21.198.5-3560#conf t
c-matr-21.198.5-3560(config)#interface gigabitEthernet 0/2
c-matr-21.198.5-3560(config-if)#no shutdown
c-matr-21.198.5-3560(config-if)#switchport mode access
c-matr-21.198.5-3560(config-if)#switchport access vlan 696
c-matr-21.198.5-3560(config-if)#description *** PALO 200 LAB IPV6 CAN eth4 ***
c-matr-21.198.5-3560(config-if)#end
c-matr-21.198.5-3560#wr
Avec la commande suivante on peut afficher les interfaces et leur description, on retrouve donc
l’interface connectée sur notre firewall et l’interface connectée sur le routeur :
On peut donc vérifier que l’interface Gi0/2 et Gi/27 soit dans le même vlan
PA-200
1 2 3 4 MGT USB CONSOLE
POWER STATUS
FAN HA
ALARM TEMP
J’ai procédé au reset de firewall avant de le configurer. Par défaut l’interface de MGT est configurée
avec l’adresse IP 192.168.1.1. Il faut donc configurer par exemple l’adresse 192.168.1.2 sur le poste
depuis lequel on veut se connecter au PALO ALTO et ensuite on peut se connecter via l’adresse
https://192.168.1.1. Le user et mot de passe par défaut sont admin/admin.
La zone outside sera utilisée pour le réseau d’interconnexion entre le PALO ALTO et le routeur, inside
avec le firewall interne Fortigate. Enfin, il y a trois zones pour les DMZ externes :
Nous pouvons maintenant passer à la configuration des interfaces physiques. Afin de pouvoir faire un
Ping ou se connecter sur une interface pour l’administration du firewall, il est nécessaire de créer des
profils de management que nous allons par la suite appliquer aux interfaces. Voici comment créer des
profils de management :
Par la suite nous procèderons à la configuration des interfaces (une interface par zone). Dans un
premier temps nous allons configurer l’interface Ethernet1/1 qui sera l’interface inside, elle sera
directement connectée sur l’interface outside du Fortigate. On peut constater qu’on sélectionne le
« default virtual Router » : il serait possible d’en créer plusieurs mais ça ne sera pas utile dans notre
cas.
Pour la configuration de l’adresse IPv6 nous n’activons pas les messages RA ni la détection de
duplication d’adresse. En effet nous n’allons pas utiliser de DHCP sur les zones externes ni la
configuration SLAAC. Nous allons fixer les adresses IPv6 sur les serveurs manuellement.
On va également sélectionner le profil, ici on choisit allow-MGMT car on veut pouvoir se connecter
depuis le réseau interne qui se trouvera sur le Fortigate.
Même principe pour la configuration de l’interface ehternet1/4 qui est connectée sur le routeur via le
switch 3560. Pour l’adresse IPv4 on lui fixe l’adresse public 195.141.249.249, le routeur, lui, possède
l’adresse IP 195.141.249.27 comme on l’a déjà vu dans le précédent schéma.
Comme c’est le cas en production sur notre PALO ALTO, nous allons créer trois sous-interfaces pour
nos DMZ. Ces sous interfaces se trouveront toutes sur le même port physique qui sera connecté sur
notre switch SW01. Il faudra donc configurer le port du switch en mode trunk et accepter ces trois
vlan. Nos Serveurs sont installés sur l’ESX qui est directement connecté à un switch, nous pourrons
ainsi connecter le switch ESX à notre switch pour transmettre le flux au PALO ALTO. Ceci permet
également de n’utiliser qu’un seul port physique sur le PALO ALTO.
Pour créer les sous-interfaces, aller dans « Network », « Intefaces », sélectionner l’interface
ethernet1/2 et cliquer sur « Add Subinterface », ensuite la configuration s’effectue comme une
interface physique à l’exception du TAG qu’il faut renseigner, il s’agit du numéro VLAN :
Il faut maintenant créer nos objets, pour pouvoir créer nos règles. Pour cela j’ai mis en place une
nomenclature à respecter afin de faciliter la lecture des règles. Cette nomenclature ne se base pas sur
ce qui est en place sur le réseau de production. Elle pourrait éventuellement être mise en place par la
suite.
On peut donc maintenant créer les objets correspondant comme par exemple ext.v4.dnspub.net :
Dans un premier temps nous allons ouvrir tout le flux depuis et vers toutes les zones afin de ne pas
perdre de temps pour la mise en place de nos services. Par la suite nous allons restreindre au strict
nécessaire. On peut donc voir ci-dessous qu’on autorise le flux depuis toutes nos zones vers toutes les
zones. Attention nous ne mettons pas la zone Outside dans les zones source, sinon cela voudrait dire
que tout le monde pourrait se connecter depuis l’externe. De plus, nous spécifions tout de même en
IP source nos blocs d’adresse IPv4 et IPv6, soit 172.20.70.0/24 et 2001:678:204:/64
Il faut également créer une règle de NAT afin de pouvoir accéder à internet. Pour l’instant nous allons
limiter cette règle de NAT à notre zone cisel-lab. C’est la plage qui sera attribuée au PC de test connecté
sur le Fortigate.
Tout d’abord nous allons configurer la route pour notre réseau IPv4. Elle sera utilisée si le routeur ne
connait pas le réseau de destination. Il va donc transmettre au « Next Hop » qui est, dans notre cas, le
routeur ASR1001. Voici donc la configuration de la route par défaut:
Il faut ensuite créer une route pour les zones internes qui se trouvent sur le Fortigate. On indique tout
le bloc 172.20.70.0/24. De cette manière, s’il ne s’agit pas d’un sous-réseau connecté directement sur
le PALO ALTO, mais qui fait partie du bloc 172.20.70.0/24. Dans ce cas le firewall va envoyer le paquet
sur le « NEXT HOP » 172.20.70.113 qui est l’adresse outside du Fortigate :
On effectue la même configuration pour IPv6, créer la route par défaut avec le « Next Hop » l’adresse
du routeur :
RESET
USB
DC + 12V MGMT USB W AN2 W AN1 DMZ 7 6 5 4 3 2 1
La version du Firmware préinstallée est la 5.2.5, il faut vérifier l’ « upgrade path » dans la
documentation Fortigate, ceci indique les étapes à respecter afin de procéder à une mise à jour de
Firmware propre. Voici donc le chemin de version à respecter :
J’ai donc effectué dans un premier temps la mise à jour vers la version 5.4.0 pour ensuite passer vers
la version 5.4.1. Une fois la version 5.4.0 installée, on peut cliquer sur update et lancer la mise à jour.
J’ai rencontré un problème lors de la mise à jour vers la version 5.4.1. Ce problème est connu et
documenté chez Fortinet. Il concerne bien notre modèle 60D. Pour résoudre le problème, j’ai dû
connecter un câble console sur l’équipement, le redémarrer et restaurer le Firmware précédent :
Nous n’allons pas configurer de zone sur le Fortigate. Il est possible de le faire mais comme nous ne le
faisons pas en production. Je vais rester sur le même principe de configuration. Nous allons donc
appeler nos interfaces avec le nom des zones que nous avions défini.
Afin de pouvoir configurer des adresse IPv6 il faut activer la fonctionnalité suivante :
Par la suite on peut configurer l’interface de la façon suivante : aller dans « Network », « Interfaces »,
et double cliquer sur internal3 (qui correspond au port numéro 3), ensuite entrer les infos comme ci-
dessous :
L’interface outside du Fortigate et l’interface inside du PALO ALTO peuvent maintenant communiquer
en Dual-Stack IPv4/IPv6.
Comme c’est le cas en production sur notre Fortigate, nous allons créer 4 sous-interfaces pour nos
réseaux internes. Ces sous interfaces se trouveront toutes sur le même port physique (internal2) qui
sera connecté sur notre switch. Il faudra donc configurer le port du switch en mode trunk et accepter
ces quatre vlan. Nous pourrons ainsi connecter le switch ESX à notre switch pour transmettre le flux
au Fortigate. Comme nous l’avons vu précédemment dans la configuration du PALO ALTO, il y aura des
VLAN internes et externes qui seront gérés sur le même switch, il faudra donc bien définir quel VLAN
est accepté dans chaque trunk configuré sur le switch. Dans notre réseau de production nous avons
un switch pour l’externe et un pour l’interne. Pour des raisons de matériel nous n’allons utiliser qu’un
seul switch.
Voici donc la configuration de notre réseau INT_CISEL, on sélectionne les accès à l’interface, dans notre
cas on veut accéder à l’administration du firewall via https et SSH et pouvoir également faire des Ping
sur l’interface :
La nomenclature a déjà été définie lors de la configuration du PALO ALTO. Pour le Fortigate il est plus
simple de créer les objets en exportant la configuration, ensuite on peut modifier le ficher de
configuration et l’importer à nouveau :
On peut ainsi ajouter facilement des objets sans renseigner le UUID car il sera généré
automatiquement à l’importation du fichier de configuration.
Comme c’est le cas pour notre PALO ALTO nous allons dans un premier temps ouvrir tout le flux et par
la suite restreindre au strict nécessaire. Contrairement au PALO ALTO la configuration des règles pour
IPv6 et IPv4 ne se fait pas au même endroit.
Sur le Fortigate on peut se permettre d’accepter dans un premier temps ce qui vient de l’outside car
le flux qui vient d’internet est bloqué par le PALO ALTO, mais par la suite bien évidement il faudra
restreindre les accès sinon il n’est pas utile d’avoir deux niveaux de firewall. On désactive le NAT dans
toutes nos règles car nous n’avons pas besoin de NAT sur le Fortigate.
Même chose pour IPv6 mais cette fois depuis « IPv6 Policy » comme on peut le voir ci-dessous :
Voici donc les deux routes à créer. Il s’agit de la route par défaut en IPv4 et IPv6. Elle indique à quelle
IP « gateway » transmettre les paquets si la destination n’est pas connue par le Fortigate.
On peut voir ci-dessous toutes les « route », on retrouve bien nos deux « route » static plus les
réseaux directement connectés sur le Fortigate.
Depuis le menu Dashboard du Fortigate, on peut détacher la console web afin de faire nos tests.
Ensuite entrer les commandes suivantes :
Dans un premier temps j’ai effectué un reset du switch via le câble console. Voici les commandes à
exécuter :
Write erase
Confirm
Dir flash
delete flash:vlan.dat
relad
conf t
hostname SW01
Afin de pouvoir se connecter en telnet, on va définir un mot de passe, activer l’encryption des mots de
passe et également définir un mot de passe pour le mode privilégié (enable).
SW01#conf t
SW01(config)#service password-encryption
Switch(config)#line vty 0 15
Switch(config-line)#password ***
Switch(config-line)#login
Switch(config-line)#exit
Switch(config)#enable password ***
Switch(config)#exit
SW01#wr
SW01(config)#interface vlan420
SW01(config-if)#ip address 172.20.70.3 255.255.255.240
SW01(config-if)#exit
SW01(config)#ip default-gateway 172.20.70.1
SW01(config)#exit
SW01#wr
Il faut donc configurer le port 1 en trunk et accepter les vlan 390 (cloud_cisel) et 420 (management) :
SW01(config-if)#end
SW01#wr
Le port 2 doit être configuré en trunk et accepter les vlan 680 (cloud_pub), 690 (cloud_priv) :
Il faudra par la suite configurer les switch c-matran-34.220-3020 et c-matran-4.52.3020, ceci est
développé dans le chapitre « configuration de l’environnement VMware ».
L’interface 3 sera connectée directement sur le port 2 du Fortigate et permettra de transporter tous
les vlan configurés sur le Fortigate. Voici donc la configuration à effectuer sur le port 3 :
Les trois ports doivent donc être en mode access avec le bon vlan taggé :
L’interface 7 sera connectée directement sur le port 2 du PALO ALTO et permettra de transporter tous
les vlan configurés sur le PALO ALTO. Voici donc la configuration à effectuer sur le port 7 :
SW01(config)#interface f0/8
SW01(config-if)#shutdown
L’interface gigabit sera utilisée pour connecter le poste de test dans le réseau cisel-lab. Il faut donc
tagger le vlan 400 sur l’interface.
Pour des raisons de confort, j’ai placé le Fortigate, le PALO ALTO, l’Infoblox et le switch dans une
armoire qui se trouve dans notre DataCenter. Par la suite j’ai pu connecter un câble sur l’interface
gigabit du switch vers l’armoire de patch qui possède une liaison sur l’armoire de patch à l’étage où se
trouvent nos bureaux. J’ai ainsi pu « patcher » ce renvoi à ma boite de sol afin d’avoir une connectivité
depuis mon bureau sur le résau cisel-lab. À ce stade je peux donc fixer une adresse IP (v4 et v6)
manuellement sur mon PC et accéder à tous mes équipements depuis mon bureau. Je peux également
accéder à internet en IPv4 et IPv6.
Dans le menu « Grid » et son sous onglet « Grid Manager » dans l’onglet « Visualization » se trouve
l’option « Grid Prorpieties ». On peut y définir le nom de notre Grid :
On peut ensuite donner un nom de domaine à notre Grid en cliquant sur edit :
Il faut également configurer les adresses IPv6 sur les deux interfaces LAN :
Nous pouvons maintenant connecter chaque interface de l’Infoblox sur le port du switch défini lors
de sa configuration et ainsi pouvoir accéder à Infoblox via l’url https://172.20.70.4 depuis notre PC
de test.
Nous allons maintenant créer un pool DHCPv6 pour le subnet INT_CISEL afin de recevoir une adresse
ipv6 automatiquement sur les PC de test. Il faut tout d'abord configurer le « DHCP RELAY » sur le
Fortigate avec les commandes suivantes:
Ensuite on peut configurer Grid. Il faut ajouter la plage réseau qu'on veut administrer:
Ici on ajoute les adresses DNS, dans notre cas on va donc entrer l’adresse IP de l’interface LAN1 de
notre Infoblox et le DNS de google :
Maintenant on peut créer la plage d'adresse qu'on veut distribuer par DHCP :
La communication pour le DHCPv6 se fait via le port udp 546 et 547. Il faut donc créer la règle comme
ci-dessous. Le service DHCP6 comprend le port UDP 546 et 547 :
On peut maintenant tester la distribution d’adresse. Ci-dessous on peut voir que l'adresse n'est pas à
jour, le PC a conservé l'adresse qui avait été définie dans une précédente configuration de test. On
peut voir en première ligne que le poste envoie un message « confirm » à tous les serveurs DHCP
(adresse multicast ff02::1:2) pour savoir si son adresse est encore valide :
Dans un premier temps je pensais que l’adresse ne se mettait pas à jour car elle existait toujours
dans le neighbor-cache du Fortigate. Comme on peut le voir ci-dessous :
Cependant même avec la commande flush pour supprimer toutes les entrées du cache, l'adresse IPv6
n'est toujours pas mise à jour.
Pour corriger ce problème, j’ai effectué la commande suivante qui va libérer l’adresse IP et demander
une nouvelle adresse au serveur DHCPv6:
Après un certain temps d’investigation, j’ai pu trouver la source du problème. Il s’agissait d’une
configuration sur le Grid qui conserve les adresses attribuées jusqu’à une semaine après la
suppression de la plage d’adresse:
On peut donc analyser maintenant l’attribution de notre nouvelle adresse IPv6 dans wireshark:
Cette fois l'adresse obtenue est bien dans le range du DHCP. On constate dans la capture Wirehsark
que l'adresse Link-Local client envoie une requête « solicit » à l'adresse mulitcast ff02::1:2. Cette
adresse correspond à tous les serveurs DHCP. Comme le dhcp relay est configuré sur le Fortigate, c'est
bien son adresse link-local qu'on voit dans les captures wireshark, en effet c'est le Fortigate qui va
questionner le DHCPv6 et renvoyer les informations au PC, comme on peut le voir dans le schéma ci-
dessous :
23
La création du réseau et de la plage d’adresse s’effectue selon le même principe que pour IPv6. J’ai
donc créé le réseau et la plage d’adresse suivants :
23
Source : GRAZIANI, Rick. IPv6 Fundamentals: A Straightforward Approach to Understanding IPv6.
CiscoPress. 2013.
Il y a tout de même une différence importante avec le DHCPv4 : il faut lui fournir la passerelle par
défaut qui permet de transférer les paquets vers les autres réseaux. Avec IPv6 nous n’avons pas besoin
de la définir car c’est l’adresse Link-Local qui doit communiquer avec les équipements qui se trouvent
sur le même segment réseau.
Comme on peut le voir ci-dessous nous avons bien tous les paramètres qui remontent en IPv4 et IPv6
sur notre carte réseau. On peut voir également que la passerelle par défaut est l’adresse Link-Local
de notre Fortigate :
Comme expliqué précédemment la plateforme Infoblox permet également la gestion des adresses IP
via IPAM. L’avantage est que la gestion du DNS du DHCP et IPAM se fait sur la même plateforme. Quand
nous avons créé notre réseau et range dans le DHCP ceci a automatiquement créé la vue de notre
réseau dans l’IPAM :
On retrouve notre poste de test dans le préfixe 2001:678:204::4400:/64. Comme on peut le voir ci-
dessous :
L’IPAM nous permet donc d’avoir un affichage centralisé de toutes nos adresses configurées et
d’afficher si un enregistrement DNS est lié à l’adresse IP. Nous avons également la possibilité de
réserver une adresse pour une machine. Sur IPv4 la réservation d’adresse se fait avec l’adresse
physique de la carte réseau « MAC ADDRESS », avec IPv6 la réservation se fait via le DUID (DHCP
Unique IDentifier). Voici comment j’ai pu créer une réservation :
• On récupère le DUID avec la commande « ipconfig /all » sur le poste de test et on copie sa
valeur dans l’assistant de création :
On peut ensuite facilement créer une entrée DNS après avoir sélectionné l’adresse IPv6, puis en
ajoutant une entrée « AAAA Record » :
Nous allons maintenant configurer les deux vues DNS dans l'Infoblox, une vue « default » qui sera notre
vue pour l'interne (DNS_PRIV) et une vue « External » qui sera pour l'externe (DNS_PUB). La vue
« default » est celle par défaut elle est donc déjà créée.
Tout le monde depuis l'externe doit pouvoir résoudre des noms sur cette zone car il s'agit de notre
DNS Public :
On doit entrer l'adresse IP de l'interface LAN2 pour la vue external. Il n'y a pas besoin de spécifier
l'adresse IPv6, elle est automatiquement activée. LAN1 sera donc pour notre DNS privé comme
expliqué précédemment :
Un « restart » des services est nécessaire pour que les modifications soient appliquées :
Nous pouvons maintenant configurer notre nom de domaine acheté chez switch. Il est nécessaire de
créer l'entrée ns1 avec l'adresse IP public IPv4 et IPv6, pour l'adresse IPv6 il s'agit de l'IP attribué sur
l'interface LAN2 de l'Infoblox, pour l'adresse IPv4 il va falloir créer par la suite une règle de NAT sur le
firewall externe. Dans un premier temps on configure donc notre entrée ns1 :
Par la suite il faut compléter dans l'onglet serveur de nom l'entrée ns1 qu'on vient de créer. Il est
obligatoire de spécifier deux serveurs de nom. Pour le deuxième serveur de nom nous allons utiliser
un serveur DNS mis gratuitement à disposition par Hurricane Electric. Les entrées nous permettent de
spécifier quelle est l'adresse du serveur de nom qui fait autorité pour ce nom de domaine. Voici donc
les deux entrées NS configurées.
Reste à configurer notre serveur DNS « slave » sur lequel toutes les entrées DNS seront répliquées.
Depuis dns.he.net il faut sélectionner l’option suivante :
On ajoute les deux adresses IP comme indiqué dans la capture d'écran précédente afin de pouvoir
autoriser le transfert de zone de notre DNS public Infoblox vers notre DNS public he.net:
Ainsi qu'une règle pour autoriser le flux de l'externe vers l'interne pour les requêtes DNS. Attention,
dans la règle on spécifie bien l'adresse IP public pour IPv4 et non l'adresse privée.
On peut voir sur le site de dns.he.com comme notre DNS « slave » est bien connecté à notre Infoblox:
Il faut spécifier les clients qui peuvent effectuer des requêtes sur cette vue. Dans ce cas,
comme il s’agit du DNS interne, on va donc spécifier la plage IPv4 et IPv6 qui englobe toutes
nos adresses internes.
On spécifie « any » pour la destination car on aimerait pouvoir résoudre n’importe quel nom depuis
l’interne.
On va spécifier les adresses IP de nos « forwarders ». Quand notre serveur DNS ne sera pas capable de
résoudre des noms de domaine, il va transmettre la requête aux « forwarders ». On spécifie ici les
adresses des serveurs DNS de Google.
Ensuite sélectionner la zone et cliquer sur « edit ». Nous avons déjà défini l’adresse IPv6 et v4 de notre
contrôleur de domaine, il faut donc spécifier qu’il sera possible de mettre à jour cette zone depuis les
adresses IPv6 et v4 de celui-ci, afin que les entrées DNS soient automatiquement créées lorsqu’on
ajoute une machine dans le domaine par exemple.
Nous avons terminé avec la configuration de notre zone mais il faut cependant encore créer une règle
sur notre Fortigate et sur notre PALO ALTO qui permet l’utilisation des « forwarder » pour résoudre
les noms de domaines externes.
Il faut également créer une règle pour autoriser le flux depuis notre réseau cisel-lab vers l’outside.
Création de la règle sur le Fortigate :
Pour IPv6 :
Nous pouvons donc maintenant tester la résolution de nom depuis l’interne sur notre poste de test :
On retrouve bien dans les log du PALO ALTO la connexion depuis notre DNS Infoblox vers le
«forwarder » qui est le DNS de google afin de pouvoir résoudre le nom de domaine test.ch
Et également par la suite, le Ping vers l’adresse IP public du serveur où est hébergé le site internet
www.test.ch:
Et également par la suite le Ping vers l’adresse IP public d’un des serveurs où est hébergé
youtube.com :
Voici la face arrière du boitier qui contient 4 switch Cisco 3020 ainsi que deux switch Brocade pour la
partie SAN
Les switch 3020 possèdent 24 ports Gigabit, les 16 enclosures sont connectées directement sur les 16
premiers ports de chaque switch en respectant la logique (numéro enclosure = numéro port du
switch). Ce sont des ports internes connectés directement sur le blade, on ne les voit pas sur la face
arrière du châssis. Les deux premiers switch du haut sont utilisés pour les VLAN internes et les deux
switch du bas pour les VLAN externes. Les deux switch sont doublés pour la redondance. Dans mon
réseau de simulation je n’ai pas besoin de redondance, car dans le pire des cas, si un switch tombe en
panne, je peux connecter mon câble sur le port du deuxième switch. Je dois donc configurer le port 4
connecté sur mon serveur blade ainsi que le port 24 qui sera utilisé pour connecter mon switch de lab.
Tout d’abord je vais effectuer la configuration sur les switch internes c-matran-34.220-3020 et c-
matran-34.221-3020 :
c-matran-34.220-3020#conf t
c-matran-34.220-3020(config)#vlan 390
c-matran-34.220-3020(config-vlan)#name IPV6CAN_INT_CLOUD_CISEL
c-matran-34.220-3020(config-vlan)#ex
c-matran-34.220-3020(config)#vlan 420
c-matran-34.220-3020(config-vlan)#name IPV6CAN_MANAGEMENT
c-matran-34.220-3020(config-vlan)#end
c-matran-34.220-3020#wr
VTP est activé sur les deux switch je n’ai donc pas besoin de créer les vlan sur le deuxième switch
interne.
c-matran-34.220-3020#conf t
c-matran-34.220-3020(config)#interface gigabitEthernet 0/4
c-matran-34.220-3020(config-if)#switchport mode trunk
c-matran-34.220-3020(config-if)#description ***** Lame de test pour CAN / PROJET IPV6 / DMZ
Internes ****
c-matran-34.220-3020(config-if)#switchport trunk allowed vlan 390,420
c-matran-34.220-3020(config-if)#end
c-matran-34.220-3020#wr
c-matran-4.52.3020#conf t
c-matran-4.52.3020(config)#vlan 680
c-matran-4.52.3020(config-vlan)#name IPV6CAN_OUT_CLOUD_PUB
c-matran-4.52.3020(config-vlan)#ex
c-matran-4.52.3020(config)#vlan 690
c-matran-4.52.3020(config-vlan)#name IPV6CAN_OUT_CLOUD_PRIV
c-matran-4.52.3020(config-vlan)#end
c-matran-4.52.3020#wr
c-matran-4.52.3020#conf t
c-matran-4.52.3020(config)#interface gigabitEthernet 0/4
c-matran-4.52.3020(config-if)#switchport mode trunk
c-matran-4.52.3020(config-if)#description ***** Lame de test pour CAN / PROJET IPV6 / DMZ
Externes ****
c-matran-4.52.3020(config-if)#switchport trunk allowed vlan 680,690
c-matran-4.52.3020(config-if)#end
c-matran-4.52.3020#wr
On peut maintenant connecter les deux switch c-matran-34.220-3020 (port 24) et c-matran-4.52.3020
(port 24) sur notre switch SW01, respectivement port 1 et 2.
La commande show cdp neighbors permet d’afficher les switch connectés. J’effectue cette commande
sur notre switch SW01 afin de contrôler que les switch soient connectés correctement.
Avec la commande show interfaces trunk on peut s’assurer qu’on permet les même vlan dans le
trunk que sur les configurations des switch c-matran :
Le serveur possède deux disques durs de 300 GB chacun que j’ai configurés en raid0. Nous avons donc
une capacité de 600GB. Pour installer vmware ESXi 6.0, j’ai connecté une clé USB dans le serveur afin
d’effectuer l’installation sur cette clé. Une fois installée j’ai configuré l’interface de management afin
de pouvoir me connecter via le client vSphere. Voici donc la configuration effectuée :
Notre Virtual switch VMware doit être configuré afin de connecter les cartes réseau de nos machines
virtuelles sur les bons vlan. Après installation du client vsphere sur notre machine de test, on peut se
connecter à l’ESX via l’adresse IP de management 172.20.70.8 que nous avons configurée
précédemment. Une fois connecté il faut se rendre dans les menus suivants :
Nous pouvons maintenant installer nos machine virtuelles et sélectionner les bon vlan pour nos carte
réseaux.
Pour configurer l’espace de stockage sur l’ESX il faut se rendre dans « Configuration » et dans
« stockage » :
Il faut également créer les règles pour autoriser le flux de la machine virtuelle vers l’externe. Nous
allons également configurer les règles pour le serveur exchange SVEXCLOUD02.
Modifier la règle de Nat sur le PALO ALTO pour avoir accès à internet en IPv4 :
Ajouter une règle pour autoriser l’accès vers l’externe via les ports utilisés :
Et pour IPv6 :
Il est également nécessaire de créer une règle sur le Fortigate pour accéder via le bureau à distance
sur les serveurs. Nous pouvons donc par la suite configurer les adresses IP du serveur depuis la console
VMware :
Test de résolution
Maintenant que la configuration réseau est effectuée, on peut se connecter à distance sur le serveur
et ajouter le rôle Active directory :
Il faut ensuite redémarrer le serveur. On peut vérifier que les entrées soient bien créées dans Infoblox :
Comme nous allons ajouter notre domaine public cisel-lab.ch il faut l’ajouter dans nos suffixes afin de
pouvoir se connecter avec les comptes au format compte@cisel-lab.ch :
Ensuite on peut créer une structure de base dans notre Active Directory ainsi que des utilisateurs pour
effectuer des tests par la suite. On voit ci-dessous que j’ai créé une OU Cisel, avec trois OU; Computers
pour les postes de travail, Servers pour les serveurs et Users pour les utilisateurs. Je vais utiliser le
compte admincan pour me connecter sur les serveurs et gérer le serveur exchange par la suite. Voici
donc la vue de notre Active Directory:
Comme pour le serveur SVAD01, on sélectionne le bon vlan pour notre carte réseau :
Nous avons déjà configuré précédemment les règles sur le Fortigate et le PALO ALTO. Nous pouvons
donc passer directement à la configuration de la carte réseau :
Test de résolution
Après avoir redémarré le serveur, Il faut vérifier que les entrées AAAA pour IPv6 et A pour IPv4 ont
bien été créées dans Infoblox :
Avant tout, il faut préparer notre AD. Pour cela il faut exécuter le setup d’exchange 2013 cu12 avec les
paramètres suivants depuis une fenêtre PowerShell démarrée en administrateur :
Ceci est indispensable afin de préparer le schéma d’Active Directory ainsi que les différents groupes
de sécurité et autres. Après l’installation, il faut redémarrer le serveur. Ensuite nous pouvons effectuer
l’installation des différents prérequis à télécharger et à installer :
Et pour finir les modules nécessaires sur notre serveur exchange, il faut également faire l’installation
via une fenêtre PowerShell démarrée en administrateur :
Après redémarrage on peut exécuter le setup d’exchange 2013 cu12, mais, attention ! Il faut
l’exécuter en administrateur. À l’étape suivante il faut sélectionner ce qu’on veut installer :
On peut aussi le configurer depuis l’interface web de management du serveur. L’adresse est
https://localhost/ecp. Par défaut le compte « admincan » possède un accès administrateur à
exchange car c’est avec ce compte que j’ai effectué l’installation d’exchange. Voici comment
configurer l’autorisation sur le domaine cisel-lab.ch depuis l’interface web de management :
Il faut également modifier le format des adresses de messagerie par défaut au format
prenom.nom@cisel-lab.ch pour tous les comptes mail créés dans notre serveur Exchange :
On peut maintenant créer une boite aux lettres pour notre compte admin :
Une fois créée on voit que notre adresse de messagerie est bien au format voulu, admin@cisel-lab.ch
Pour que notre serveur exchange soit atteignable depuis l’interne comme depuis l’externe, on va lui
donner le FQDN mail.cisel-lab.ch. Il faudra donc configurer notre DNS interne et public. Dans un
premier temps nous allons déjà nous assurer que tous les répertoires virtuels d’exchange soient
atteignables depuis l’interne. Pour cela on crée la zone cisel-lab.ch sur notre Infoblox avec les entrées
A et AAAA mail.cisel-lab.ch, avec les adresses IP du serveur Exchange :
On peut donc tester maintenant de faire un Ping de mail.cisel-lab.ch depuis notre poste de test. On
constate ci-dessous que mail.cisel-lab.ch répond en IPv4 et en IPv6 :
Nous pouvons donc maintenant configurer les adresses interne et externe de nos répertoires virtuels
avec notre nom FQDN mail.cisel-lab.ch. On peut le faire depuis la console d’administration mais il est
plus rapide de le faire depuis la console Exchange :
Get-OABVirtualDirectory|Set-OABVirtualDirectory -InternalUrl https://mail.cisel-lab.ch/OAB ExternalUrl https://mail.cisel-lab.ch/OAB
Voici le rôle de différents répertoires virtuels qui sont tous accessible en HTTPS :
Il faut également créer un enregistrement sur notre DNS public afin que l’autodiscover fonctionne
depuis l’externe. Lors de l’utilisation d’Outlook depuis le réseau interne, Outlook va se connecter au
contrôleur de domaine pour obtenir les informations sur l’autodiscover et ainsi se connecter au
serveur Exchange. Depuis l’externe, Outlook va envoyer une requête DNS sur le nom de domaine mail-
cisel-lab.ch et grâce à l’enregistrement « SRV » ci-dessous, il aura les informations pour joindre
l’autodiscover.
Nous avons besoin d’un certificat délivré par une autorité de certification afin de pouvoir utiliser nos
services Exchange depuis l’externe. Nous allons donc faire une demande de certificat chez Comodo qui
délivre gratuitement un certificat pour 90 jours. Pour la demande de certificat, il faut générer un
« certifcat request » via Exchange. Ci-dessous la ligne de commander à exécuter depuis la console
Powershell Exchange, la ligne permettant de générer une clé privée et un crt pour le FQDN mail.cisel-
lab.ch :
Ensuite il faut copier-coller la chaine de caractères que contient le fichier csr dans le formulaire de
comodo :
Pour vérifier par la suite que le nom de domaine est bien légitime, il faut choisir une adresse email
sur laquelle Comodo va envoyer un mail avec un lien pour valider que nous gérons bien ce nom de
domaine. J’ai indiqué l’adresse admin@cisel-lab.ch comme adresse email de vérification. Cependant
nous n’avons pas encore créé de connecteur de réception sur notre serveur exchange afin de
recevoir des mails depuis l’externe.
Nous allons utiliser Le Default frontend écoute sur le port 25 pour recevoir nos emails. Il faut donc
sélectionner et éditer les paramètres :
On peut ainsi spécifier notre FQDN mail.cisel-lab.ch pour notre connecteur de réception :
Il faut maintenant configurer nos entrées A et AAAA sur notre DNS public. Pour cela, nous allons
temporairement utiliser l’adresse IPv4 public 195.141.249.224 qui était réservée pour notre Proxy. En
effet par la suite, pour des raisons de sécurité, le flux va passer par le Proxy mais comme il n’est pas
encore configuré, nous allons déjà effectuer le test sans passer par le Proxy.
Figure 6-171 | Infoblox DNS public création entrées A et AAAA pour serveur Exchange
Pour configurer notre connecteur de réception, il faut également définir l’entrée MX (Mail
eXchanger). Cette entrée permet le routage des emails sur internet. Voici donc notre entrée MX:
Il faut maintenant configurer le NAT de l’adresse public 195.141.249.224 vers l’adresse IPv4 privée du
serveur exchange :
Et supprimer l’adresse du serveur exchange dans le NAT que nous avions configurée pour l’accès à
Internet :
Figure 6-174 | PALO ALTO modification règle de NAT pour accès vers l’externe
Également ajouter une règle pour accepter le port 25 de l’externe vers notre serveur Exchange
Voici donc le mail reçu pour confirmation de notre FQDN mail.cisel-lab.ch après configuration du
connecteur de réception :
Après réception du mail de Comodo, j’ai pu télécharger le certificat. Il est nécessaire d’installer le
certificat sur notre serveur exchange. Pour cela il faut le copier dans un répertoire et lancer la
commande depuis la console PowerShell du serveur Exchange :
Il est maintenant possible de tester la connexion au serveur exchange en Dual-Stack. Les données
entre le client et le serveur seront cryptées par le certificat.
Une fois connecté sur le site de tunnelbroker, créer le tunnel de la manière suivante : entrer l’adresse
IP public et cliquer sur « Create Tunnel » :
Il s’agit d’un firewall SonicWALL TZ 215 qui est configuré sur l’accès internet de test pour CISEL. Le
firewall est donc déjà configuré en IPv4. Il faut donc maintenant configurer la partie IPv6 sur le firewall.
Il faut configurer l’interface « Tunnel » pour la connexion vers TunnelBroker :
Il faut également configurer notre port X0 sur lequel sera notre poste de test :
Nous activons l’écoute des messages « Routeur Advertisement » afin de répondre aux requêtes qui
proviennent des équipements connectés sur le réseau lan :
Il faut également spécifier le préfixe afin que le poste de travail de test puisse recevoir une adresse
IPv6 automatiquement :
Pour finir, il faut créer les règles afin de permettre le flux IPv6 :
On peut maintenant valider que notre poste de test soit bien configuré en Dual-Stack et qu’il puisse
bien résoudre des noms de domaines en IPv6. Tout d’abord on peut vérifier sa configuration réseau :
On constate que nous avons deux adresses IPv6, une temporaire et une adresse préférée. Elle sont
bien les deux le block fourni par TunelBroker, c’est à dire 2001:470:26:16d::/64. L’adresse temporaire
est utilisée pour attribuer une adresse préférée aléatoire. Elle ne se base donc pas sur l’adresse MAC
et ceci pour garder l’anonymat sur internet, voir RFC 3041.
I
Figure 6-196 | Reverse-Proxy installation
Il faut également définir les cartes réseau que l’on veut utiliser. Dans notre cas, nous aurons besoin
d’une carte réseau dans la zone PROXY_PUB et une autre dans la zone PROXY_PRIV qui fera le lien vers
le serveur Exchange. Je vais également définir une interface sur le vlan de management afin de pouvoir
me connecter au serveur en ssh.
Une fois la machine démarrée, on peut y accéder via la console depuis Vsphere. Il est également
possible d’y accéder en ssh en éditant le fichier de configuration de ssh. Pour cela il faut taper la
commande « nano /etc/ssh/sshd_config ».
ListenAddress 172.20.70.9
Après avoir configuré les interfaces réseau, on peut se connecter au serveur depuis un client ssh
comme putty par exemple.
Il faut ensuite procéder à la configuration des interfaces réseau. Pour afficher le nom des interfaces
réseau sur notre serveur linux, on peut taper la commande « ifconfig ». La commande nous retourne
le nom des interfaces :
Ens192 Management
Ens224 Proxy_pub
Ens256 Proxy_priv
Tableau 6-2 | Reverse-Proxy interfaces
nano /etc/network/interfaces
commande après démarrage du serveur, on ajoute une route qui définit la passerelle de réseau
management. On ajoute également une route pour le réseau cisel-lab.
auto ens192
iface ens192 inet static
address 172.20.70.9
netmask 255.255.255.240
post-up route add -net 172.20.70.0 netmask 255.255.255.240 gw 172.20.70.1
post-up route add -net 172.20.70.32 netmask 255.255.255.240 gw 172.20.70.1
auto ens224
iface ens224 inet static
address 172.20.70.82
netmask 255.255.255.240
gateway 172.20.70.81
post-up ip -6 addr add 2001:678:204:2680::5/64 dev ens224
post-up ip -6 route add default via 2001:678:204:2680::1
post-up route add -net 172.20.70.16 netmask 255.255.255.240 gw 172.20.70.97
auto ens256
iface ens256 inet static
address 172.20.70.98
netmask 255.255.255.240
post-up ip -6 addr add 2001:678:204:2690::5/64 dev ens256
post-up ip -6 route add default via 2001:678:204:2690::1 dev ens256 table 101
post-up ip -6 rule add from 2001:678:204:2390::/64 lookup 101
post-up ip -6 rule add to 2001:678:204:2390::/64 lookup 101
Le Proxy est utilisé pour terminer le flux TCP via le port 443 (HTTPS). On peut dire qu’il s’agit d’un
« reverse Proxy » car il configuré pour établir un lien entre le réseau externe (internet) et le réseau
local. C’est donc lui qui va rediriger le flux TCP vers le service cloud. Il est important de comprendre
qu’il ne redirige pas seulement le flux. En effet, il établit une connexion TCP depuis son interface
Proxy_pub avec l’externe et crée un nouveau flux TCP depuis son interface Proxy_priv vers le serveur
exchange. Comme la communication est cryptée, il faut importer le certificat ainsi que la clé primaire
sur le Proxy pour qu’il puisse crypter lui aussi la communication avec le serveur exchange, sans quoi la
connexion sera rejetée par le serveur. Voici donc un schéma qui représente le fonctionnement de notre
Proxy :
Il est important de signaler que pour des raisons de sécurité, nous avons sur le réseau de production,
un serveur Exchange qui fait relais dans une DMZ externe. Ceci pour éviter les connexions depuis
l’externe sur le serveur Exchange. Pour notre labo cet aspect n’est pas important car nous voulons
uniquement valider la compatibilité d’une configuration Dual-Stack. Cependant, Il ne faudrait pas avoir
ce type de configuration pour une installation à long terme.
nano /etc/haProxy/haProxy.cfg
Ci-dessous la configuration à effectuer afin d’écouter sur le port 443 en IPv4 et IPv6. On donne
également le chemin du certificat en format pem. Celui-ci doit contenir le certificat délivré par Comodo
ainsi que le certificat intermédiaire et la clé privée. Dans la dernière ligne, on renseigne l’adresse IPv4,
IPv6 du serveur exchange afin d’ouvrir le flux TCP.
listen CLOUD_MAIL_HTTP_V6
bind 2001:678:204:2680::5:443 defer-accept ssl crt /etc/haProxy/ssl/mail.cisel-lab.ch.full.pem
mode http
http-request set-header X-Forwarded-Port %[dst_port]
http-request add-header X-Forwarded-Proto https if { ssl_fc }
server SRVEX002Adiscoverv6 2001:678:204:2390::7:443 ssl
listen CLOUD_MAIL_HTTP_V4
bind 172.20.70.82:443 defer-accept ssl crt /etc/haProxy/ssl/mail.cisel-lab.ch.full.pem
mode http
http-request set-header X-Forwarded-Port %[dst_port]
http-request add-header X-Forwarded-Proto https if { ssl_fc }
server SRVEX002Adiscoverv4 172.20.70.20:443 ssl
Pour finir, il faut définir un mot de passe et sélectionner l’endroit où on veut stocker le fichier exporté
au format pfx. On peut maintenant transférer ce fichier ainsi que le certificat et également le certificat
intermédiaire fourni par COMDO. Voici donc les trois fichiers sur le Proxy :
La première commande ci-dessous permet de générer le certificat. Comme nous l’avons déjà, nous
n’avons pas besoin d’exécuter cette commande. La deuxième commande permet d’extraire la clé
privée. C’est donc cette commande que nous allons exécuter. Il faut également entrer le mot de passe
que nous avions défini lors de l’export.
On peut maintenant générer notre certificat mail.cisel-lab.ch.full.pem avec la commande cat qui
permet de concaténer des fichiers :
Une fois le certificat placé dans le répertoire /etc/haProxy/ssl/ on peut redémarrer le serveur. La
configuration du Proxy est terminée.
Une commande auprès de notre fournisseur Numvision a été nécessaire pour obtenir la configuration
d’un nouveau serveur CISSYNC. Le fournisseur n’a jamais eu de projet en IPv6, c’est donc également
intéressant pour lui de connaître sa compatibilité avec le mode Dual-Stack.
J’ai tout d’abord dû installer un serveur linux « SVCISSYNC » et configurer un accès SSH afin de
permettre au support Numvision de paramétrer le serveur CISSYNC. J’ai donc repris mon linux de base
contenu dans mon fichier ova et j’ai ajouté la machine virtuelle sur mon Server ESX. J’ai ajouté deux
cartes réseau sur le serveur, une pour l’accès web et l’autre pour le client de synchronisation :
Il faut ensuite créer deux entrées sur notre DNS public, pour le serveur WEB : cissync.cisel-lab.ch et
pour le logiciel de synchronisation : syncfile.cisel-lab.ch :
Il est nécessaire de configurer notre Firewall PALO ALTO afin d’effectuer le NAT pour les adresses
IPv4 et les règles pour l’accès au serveur depuis l’externe. Voici donc le premier NAT pour l’accès
web :
Le support Numvision m’a également demandé d’ouvrir un certain nombre de ports pour l’accès au
serveur Cissync. J’ai donc créé une règle pour autoriser les adresses IPv4 publics de Numvision ainsi
que les adresses IPv4 publics et IPv6 de notre réseau de test client vers le serveur Cissync avec les
ports demandés par Numvision. Voici donc la règle :
auto ens192
iface ens192 inet static
address 172.20.70.83
netmask 255.255.255.240
gateway 172.20.70.81
auto ens256:0
iface ens256:0 inet static
address 172.20.70.84
netmask 255.255.255.240
gateway 172.20.70.81
Après avoir configuré l’accès SSH pour écouter sur l’adresse 172.20.70.83, le support NumVision a pu
se connecter au serveur et établir les configurations nécessaires.
Il faut également créer un certificat pour la connexion sur l’accès web cissync-cisel-lab.ch. L’accès pour
le client syncfile.cisel-lab.ch se base également sur ce certificat afin de crypter la connexion. J’ai donc
créé une clé privée et une une requête de signature depuis le site internet www.trustico.fr :
Par la suite, à l’aide de la requête, j’ai pu effectuer une demande de certificat pour une durée de 30
jours sur le site www.geotrust.com. Une fois l’adresse email admin@cisel-lab.ch validée, j’ai reçu le
certificat ainsi que le certificat intermédiaire par email. J’ai donc fourni ces deux certificats ainsi que la
clé privée à Numvision pour qu’il puisse l’installer sur le serveur CISSYNC.
Il faut par la suite modifier notre règle de NAT sur le PALO ALTO ; en effet l’adresse IP public
195.141.249.224 qui correspond à notre entrée A pour mail.cisel-lab.ch sur notre DNS est configurée
en « NAT » avec l’IP de notre serveur exchange. Il faut donc effectuer le NAT sur le Proxy_pub :
Il faut également configurer les règles sur le PALO ALTO et le Fortigate. Comme nous l’avons vu
précédemment, Exchange utilise le port 443 pour la connexion entre le client et le serveur Exchange.
Sur le PALO ALTO on doit donc créer une règle qui accepte le flux https ou ssl (port TCP 443) depuis
l’externe vers les adresses IPv4 et IPv6 du Proxy :
Nous devons encore ajouter une règle qui permet le flux entre Proxy_priv et inside. En effet le Reverse-
Proxy ouvre un nouveau flux TCP depuis l’interface Proxy_priv :
Il faut également créer une règle sur le Fortigate qui accepte le flux ssl de l’adresse IP du Proxy_priv
vers le serveur Exchange :
Configuration d’Outlook :
On peut afficher les logs sur le Proxy afin de s’assurer que le flux a bien été reçu en IPv6. Ci-dessous on
retrouve bien l’adresse IPv6 de notre poste de test :
En capturant les paquets à l’aide de wireshark sur le serveur Exchange, on peut confirmer que la
communication se fait bien en IPv6. On constate que l'adresse IPv6 source est bien celle de l'interface
Proxy_priv. On peut également constater que l'échange de clé pour crypter la communication ne se
fait pas car il a déjà été fait auparavant. C’est le mécanisme « Resume » (RFC5246) qui permet de ne
pas échanger la clé pour chaque connexion. On inclut un identifiant de session qui sera envoyé avec le
"client Hello".
Nous avons donc pu nous connecter sur notre service cloud depuis une configuration Dual-Stack. On
constate que le protocole IPv6 a été privilégié par la couche application.
On peut valider en effet que l’accès sur notre serveur Exchange est maintenu et qu’il n’y a plus de
message d’alerte sur le certificat :
On constate également que dans les logs du Proxy on retrouve l’IPv4 public de notre réseau test client :
Notre entrée « A record » sur notre DNS public pour l’accès à notre service exchange mail.cisel-lab.ch
pointe sur l’IP 195.141.249.224. C’est donc cette adresse IPv4 qu’il faut convertir en IPv6. Sur notre
PALO on spécifie donc que tout paquet qui provient de l’externe avec l’adresse IP de destination
195.141.249.224 doit être converti avec l’adresse IPv6 de notre Proxy_pub, autrement dit
195.141.249.224 est convertie en 2001:678:204:2680::5. Pour compléter le paquet il faut également
convertir l’adresse IP source. La RFC 6052 stipule qu’il faut utiliser le préfixe 64:ff9b::/96 pour effectuer
la translation d’adresse IPv4 vers IPv6.
Il faut ensuite supprimer la règle de NAT que nous avions créée pour notre service exchange en IPv4.
Il faut également ajouter une route pour que le PALO ALTO redirige les paquets vers le NAT64
On peut donc maintenant désactiver IPv4 sur notre serveur exchange et désactiver IPv6 sur notre poste
de test qui se trouve sur notre réseau de test client. Voici donc le résultat dans les logs du Proxy quand
on se connecte sur Outlook avec succès :
On peut confirmer que l’adresse source à bien été convertie avec le préfixe 64:ff9b::/96. Le dernier
32 bits de l’adresse 555a:418 correspondent donc à l’adresse IPv4 du public de notre réseau de test
qui est 85.90.4.24. Voici donc comment la conversion est effectuée :
On peut également voir dans le log du PALO ALTO que le NAT64 est bien effectué :
On laisse IPv6 désactivé sur le poste de test et on réactive IPv4 sur notre serveur Exchange. Ensuite si
on se reconnecte sur Outlook depuis le poste de test, on peut confirmer avec les logs du Proxy que la
connexion se fait bien en IPv4 :
On va donc maintenant modifier la configuration de notre Proxy pour rediriger le flux provenant
d’adresses IPv4 vers l’adresse du serveur en IPv6 :
listen CLOUD_MAIL_HTTP_V4_REDIRECTV6
bind 172.20.70.82:443 defer-accept ssl crt /etc/haProxy/ssl/mail.cisel-lab.ch.full.pem
mode http
http-request set-header X-Forwarded-Port %[dst_port]
http-request add-header X-Forwarded-Proto https if { ssl_fc }
server SRVEX002Adiscover_IPv6 2001:678:204:2390::7:443 ssl
Après le redémarrage sur Proxy, on désactive IPv4 sur le serveur Exchange afin de s’assurer que la
communication se fait bien en IPv6 entre le Proxy et le serveur Exchange. Voici donc les logs du Proxy
après s’être connecté sur exchange avec succès :
Le flux arrive donc bien en IPv4 et il est redirigé en IPv6 sur le serveur Exchange. Cela fonctionne car le
flux est fermé et ré-ouvert depuis l’interface Proxy_priv qui possède une adresse Dual-Stack. La
communication entre le Proxy et le serveur sera donc faite entre l’adresse IPv6 de l’interface Porxy-
priv du Proxy et l’adresse IPv6 sur Serveur exchange.
On peut donc valider l’accès à l’interface web de management du service cloud en IPv6 ; comme on
peut le voir ci-dessous, on arrive bien à afficher la page web :
Pour s’assurer que la connexion est bien établie en IPv6, dans le menu on peut afficher les adresses
IPv6 connectées :
On constate donc que l’adresse est bien au format IPv6 et qu’elle appartient à notre bloc IPv6 attribué
à notre réseau client qui est le 2001:470:26:16d::/64. Cela valide donc que la connexion au serveur
CISSYNC s’effectue bien en IPv6.
On peut également voir sur la capture wirehsark ci-dessous que la communication entre le serveur et
le poste de travail s’effectue bien en IPv6. On retrouve également l’adresse IPv6 du serveur
2001:678:204:2680::10. La capture a été effectuée sur le poste client :
Une fois le client installé, on peut contrôler dans l’onglet « Activités » que les synchronisations se sont
déroulées correctement :
Comme on peut le voir, la synchronisation s’effectue, on peut donc valider avec les captures wireshark
que la communication se fait bien en IPv6 :
On retrouve donc bien notre bloc IPv6 client ainsi que l’adresse 2001:678:204:2680::10 qui correspond
bien à l’adresse de synchronisation cissync.cisel-lab.ch.
On peut également voir en se connectant en ssh sur le serveur CISSYNC, dans les logs de
synchronisation, l’adresse IP du client :
Comme on peut le voir ci-dessous, on accède bien à l’interface web en IPv4, on retrouve l’adresse IPv4
public dans les logs du serveur :
24
Source: http://www.cisco.com/c/en/us/td/docs/switches/lan/catalyst3750x_3560x/software/release/12-
2_53_se/configuration/guide/3750xscg/swv6mld.html
Le service IPAM est à mon avis indispensable pour gérer les adresses IPv6. La solution proposée pour
Infoblox est conviviale, on retrouve rapidement nos adresses. On peut également générer directement
des entrées DNS ou des réservations sur celle-ci sans devoir taper toute l’adresse. Il faut cependant
connaitre DUID de la carte réseau pour établir une réservation d’adresse, ce qui peut être contraignant
pour les imprimantes par exemple. Ceci n’est cependant pas lié à l’utilisation d’Infoblox mais au
protocole IPv6.
Nous avons aussi pu constater que la plateforme permet de gérer à la fois un DNS privé et un DNS
public. Cela se configure via les vue DNS et permet de définir une carte réseau par vue. La mise en
place de ces vues n’a également pas été facile, j’ai dû avoir recours aux supports qui ont également
passé du temps sur ce problème pour finalement se rendre compte que les vues n’avaient pas été
déclarées sur le Grid Master. Cela montre qu’il faut une certaine expérience pour maitriser cette
plateforme.
J’ai également pu valider le fonctionnement du DHCP pour les adresses IPv6 et IPv4. Avec le seul
problème déjà développé lors du chapitre « configuration DHCPv6 ». Il s’agit d’une option qui conserve
les attributions d’adresse même après avoir supprimé la plage d’adresse.
Au vu d’une éventuelle implémentation dans le réseau de production, il serait dans un premier temps
possible d’intégrer le DNS Infoblox en transférant les zones sur celui-ci. C’est-à-dire qu’on garderait le
DNS microsoft et Infoblox en parallèle. Afin de pouvoir évaluer plus précisément la plateforme et par
la suite préparer une migration complète vers Infoblox, également pour la partie DHCP et IPAM.
Le plan d’action est décrit dans les grandes lignes, il faudra donc une planification plus précise. Il est
également important en parallèle de conserver le réseau de test ainsi que le réseau de test client afin
de pouvoir continuer à tester nos services Cloud en IPv6 et valider leur fonctionnement avant de passer
à leur intégration en production.
12. Conclusion
J’ai eu beaucoup de plaisir à découvrir le protocole IPv6 ainsi que les nombreux points positif liés aux
nouveautés qu’il apporte. Ce projet m’a permis de mettre en pratique ce que j’ai pu voir pendant mes
4 années de cours. En effet j’ai pu toucher à la partie système avec linux pour le Reverse Proxy et
Windows Serveur pour la partie exchange. J’ai également pu mettre en place un serveur ESX et
découvrir la plateforme Infoblox. La partie réseau m’a beaucoup intéressé avec la configuration de
deux firewalls et du routage, la création de VLAN, la création des règles de filtrage, l’utilisation du
NAT64 et tout ce qui est lié à la configuration du Dual-Stack.
La partie concept a également été une partie très intéressante. J’ai d’abord dû recueillir un maximum
d’informations sur l’infrastructure en place. Par la suite, j’ai pu établir les concepts de réseau et
d’adressage IPv6 sur la base de la configuration déjà en place chez CISEL et grâce au document fourni
par RIPE. J’ai également dû réfléchir aux besoins pour la mise en place du réseau de test, comme la
demande du bloc IPv6 ou encore le nom de domaine de test.
Le réseau de test « POC » a permis de confirmer la compatibilité des services de base (routage, DNS,
IPAM, filtrage IP, reverse Proxy) ainsi que deux des principaux services Cloud proposés par CISEL
Informatique. Le principal attrait d’IPv6 pour le mandant est de résoudre son problème de manque
d’adresse public IPv4. Il ne faut cependant pas perdre de vue que si un service doit être disponible en
Dual-Stack sur internet, il doit avoir une adresse publique IPv4. Pour Cisel, il ne serait pas envisageable
dans l’immédiat de rendre disponible un service uniquement en IPv6. En effet, cela impliquerait que
tous les clients qui si connectent devraient avoir également une configuration en IPv6. En effet, même
avec une configuration NAT64 il faut que les postes client puissent résoudre une entrée DNS en IPv4
avant d'être redirigés vers l'équipement qui va effectuer le NAT64. Il faut aussi mentionner que IPv6
permet d'éliminer le NAT, ce qui permet également une simplification pour les administrateurs réseau
et une connexion directe du client au serveur.
La mise en place d’IPv6 pour ses services Cloud permettra à Cisel d'anticiper et de montrer une image
de société dynamique et proactive. Cela nous permettra également d’avoir des connaissances
nécessaires pour établir des concepts de configuration Dual-Stack chez nos clients. Le but est donc,
dans cette logique, d’être porté vers l’avenir et montrer l’exemple à nos clients, afin qu’ils puissent
eux aussi profiter des avantage d’IPv6. Dans ce sens nous pouvons donc imaginer supprimer la
configuration en IPv4 sur nos services cloud d’ici quelques années et ainsi nous débarrasser de ce
problème récurrent de manque d’adresse.
Notre Proxy Linux permet d’apporter une solution au manque d’adresse Cisel. Il permet de ne définir
qu'une seule adresse IPv4 publique pour plusieurs entrées DNS différentes. On effectue un NAT avec
cette adresse publique et l'adresse privée de l'interface du Proxy qui se trouve dans la zone Proxy_pub.
Ensuite le flux est ré-ouvert depuis l'interface qui se trouve dans la zone Proxy_priv en fonction de l'url,
par exemple:
Si ces deux services sont accessibles via le port 443, il est possible de configurer le Proxy pour écouter
sur ce port, et en fonction du FQDN, rediriger vers une adresse IP et un port spécifique. Par exemple :
Dans mon réseau de tests, j'ai pu valider le fonctionnement du Proxy (HAPROXY) en dual-Stack. Il est
donc tout à fait envisageable d'appliquer ce mode de fonctionnement et d'économiser des adresses
IPv4 publiques tout en activant la configuration IPv6 sur nos services Cloud.
Il est également important de relever que nous n’avons pas parlé de l’aspect sécurité autour de
l’intégration d’IPv6 dans ce travail. Il faudra donc prendre en compte cet aspect important lors de la
mise en place en production afin d’éviter par exemple des attaques de type MITM (Man-In-The-
Middle).
13. Remerciements
Je souhaite dans un premier temps remercier Javier Pose de CISEL Informatique qui m’a permis
d’effectuer ce travail de Bachelor sur un sujet très intéressant et porteur pour l’avenir.
Je remercie également mes collègues Victor Torrent et Etienne Brodard qui ont pu répondre à mes
questions sur la partie réseau. Je remercie également mes collègues Frédéric Marchand pour la partie
Linux, Richard Déglise pour la partie Cloud et Yaroslaw Dafflon pour la configuration ESX.
Je remercie Sebastien Chacon de la société Eb-Qual qui m’a donné une rapide formation et du support
sur la plateforme Infoblox.
Je souhaite également remercier mon conseiller et professeur Pierre Füllemann pour m’avoir guidé et
accompagné durant les différentes parties de ce travail.
Pour conclure je remercie Catherine Seydoux pour ses corrections d’orthographe et de grammaire.
Également je remercie les personnes de mon entourage, qui m’ont épaulé dans cette période intense.
16. Annexes
16.1. Planification
Temps 4 heures
Temps 8 heures
Temps 8 heures
Temps 8 heures
Jour 14 juillet 2016
Intervenant Action
Configuration du Foritgate, Mise à jour du Firmware, configuration des
interfaces, configuration des sous-interfaces, configuration des règles
Christophe Andres de base, test de connexion
Temps 8 heures
Temps 8 heures
Temps 8 heures
Temps 8 heures
Temps 8 heures
Temps 8 heures
Temps 8 heures
Temps 8 heures
Temps 8 heures
Temps 8 heures
Temps 8 heures
Temps 8 heures
Temps 8 heures
Temps 8 heures
Temps 8 heures
Temps 8 heures
Temps 8 heures
Temps 8 heures
Temps 8 heures
Le soussigné, Christophe Andres, atteste par la présente avoir réalisé seul ce travail et n’avoir utilisé
aucune autre source que celles expressément mentionnées, si ce n’est les connaissances acquises
durant ses études et son expérience acquise dans une activité professionnelle.
Villars-sur-Glâne, le 23.09.2016
Christophe Andres