Au CNF de N'Djamena, nous avons mis en place l'infrastructure nécessaire pour conduire des tests de fonctionnement de l'ensemble des services dont nous assurons l'opération dans le cadre de nos activités.
L'objet de cette page est de mettre à disposition de tous les informations sur nos objectifs, la démarche entreprise et les résultats obtenus, en espérant qu'ils serviront dans le cadre d'un déploiement à plus grande échelle à l'AUF.
Les enjeux
- Pénurie d'adresses IPv4:
IPv6 a été conçu à la base à cause de ce problème. Aujourd'hui, le pool d'adresse IPv4 de l'IANA est officiellement épuisé. C'est aussi le cas du pool d'adresses IPv4 de certains RIR (notamment en Asie et en Amérique latine, l'Afrique n'étant pas loin de cette situation). Si cette situation n'a pas d'impact réel sur les implantations existantes de l'Agence bien fournies en adresses IPv4, cela peut devenir un problème pour les nouvelles implantations ou en cas d'épuisement de pool d'adresses IPv4 d'une implantation moins bien lotie.
Fonctionnalités: IPv6 apporte, par rapport à IPv4, un certain nombre de nouveaux services dont il serait dommage de se priver. Voir la section Fonctionnalités.
Ces deux raisons, combinées à de nombreux autres facteurs (boum de l'Internet Mobile, enjeux économiques et industriels, etc) vont contraindre de nombreux opérateurs et entreprises à passer à IPv6. L'Asie et l'Amérique Latine, deux régions où l'Agence est présente, sont les locomotives de ce mouvement qui a connus un développement particulièrement important durant l'année 2011 (entre autre grâce à l'IPv6 World Day ou encore l'annonce de l'épuisement du pool d'adresse IPv4 de l'IANA).
Ainsi, dans un avenir proche, l'Agence devra être capable de communiquer avec ce sous ensemble grandissant de la communauté Internet, et ce de plusieurs façons:
- en leur fournissant du contenu (notamment via nos sites et applications Web) et des services (messagerie, dns, VoIP, Visio, etc)
- en communiquant avec eux (messagerie, messagerie instantanée, etc)
Dans tous les cas, nous devons nous préparer à l'inévitable passage à IPv6. Cette migration a un coût, mais celui-ci augmente avec le temps. Et bientôt (selon moi, dans moins de deux ans), IPv6 ne sera plus une option, mais une obligation technologique.
Fonctionnalités:
- Sécurité
Contrairement à ce que disent beaucoup de personnes, IPv6 n'est pas forcément plus sécurisé qu'IPv4.Cependant, IPv6 offre plus de facilité pour renforcer la sécurité des communications:
- disparition du NAT: l'une des conséquences de cette disparition est la possibilité de sécuriser les communications de bout en bout.
IPsec: s'intègre nativement dans IPv6 (son usage obligatoire au début a été rendu optionnel pour des raisons de ... sécurité ) et donc est plus facile à exploiter qu'en IPv4 (en théorie) dans lequel il est fourni en sur couche. Mais certains problèmes demeurent: la non protection des échanges multicast (à ma connaissance), l'absence d'une infrastructure PKI mondiale (voir la page ( DNSSEC )) ou encore la possibilité d'auto configuration (là encore voir la piste DNSSEC).
- QoS: la gestion de la qualité de service de bout en bout (en théorie). On peut imaginer des applications dans le cas de la VoIP, de la visio, etc (couplé à un outil comme tc, je pense qu'on peut arriver à une gestion de la bande passante plus adaptée qu'avec les delays pools de squid ).
- Le multicast: intéressant pour faire du streaming, peut être utile pour la VoIP, la Visio ou de nouvelles applications (Webradio?, p2p?, travail collaboratif, etc).
- Le anycast: peut être utile pour tout service dont la replication est possible et pour laquelle la répartition géographique peut être envisagée (BD centraliséee des utilisateurs? je refléchis tout haut).
- La mobilité: je ne suis pas sûr de la maturité de cette fonctionnalité dans les implémentations actuelles d'IPv6, mais dans le principe, peut être permettre une gestion plus aisée des utilisateurs nomades (supposition).
- etc.
But et objectifs
But: préparer la migration à IPv6 du réseau informatique du CNF de N'Djamena
Objectifs:
- Tester le bon fonctionnement des services classiques d'un CNF sous IPv6
- Identifier les configurations/changements/évolutions à apporter à nos services pour fonctionner correctement en dual stack (IPv4, v6)
- Etudier et discuter des implications en terme de sécurité (VPN multipoint, filtrage ip6tables, etc)
- Donner quelques indications sur le coût éventuel d'une telle migration
Etape 1: Bilan matériel
Type de matériel |
Support IPv6 |
Commentaires |
Routeur Cisco 1841 |
Oui |
Il a fallu changer de firmware passant de c1841-ipbasek9-mz.151-1.T2.bin à c1841-advipservicesk9-mz.124-3a.bin |
PC (architecture i386) |
Oui |
Pas d'implication directe, tout dépend de l'OS installé |
Serveur Transtec (amd64) |
Oui |
Pas d'implication directe, tout dépend de l'OS installé |
Equipement de visio Polycom QDX 6000 |
Oui |
D'après le guide de l'administrateur, cette version fonctionne sous IPv6, mais seuls les appels SIP peuvent être utilisés. H323 ne fonctionne pas, en plus d'autres limitations non pertinente dans mon cas. |
Etape 2: Bilan des OS
OS |
Support IPv6 |
Commentaires |
Debian Squeeze (amd64) 2.6.32-5-686 |
Oui |
|
Ubuntu Lucid (i386) 2.6.32-35-generic |
Oui |
Support natif du noyau. IPv6 est activé par défaut, ce qui pose un problème de sécurité sur les réseaux IPv4 only ouvert au public |
Windows XP |
Oui |
Nécessite l'installation du pack SP1. |
Windows Vista/7 et plus |
Oui |
Support IPv6 activé par défaut |
N.B: les systèmes Windows ne sont pas recommandés à l'AUF et au CNF de N'Djamena nous ne les utilisons pas sur nos PC/Serveurs. Ils sont cités ici en car ce sont les OS utilisés par quasiment tous nos usagers munis de laptop.
Etape 3: Bilan logiciel
Logiciel/service |
Support IPv6 |
Commentaires |
auf-django-users |
|
|
auf-poste-client |
|
|
nfsv4 |
|
|
filtrage |
Support IPv6 |
Ici on veut étudier les contraintes particulières, les similitudes, les différences et les implications particulières liés à la mise en oeuvre d'ip6tables |
dns |
|
dns et dnssec en double pile. |
web |
|
|
|
|
|
dhcp(v6) |
|
Il s'agit surtout ici d'étudier les opportunités et les solutions de configuration stateful en IPv6 |
ipsec |
|
Etudier la mise en oeuvre d'ipsec dans un contexte de double pile, et notamment la construction d'un pki léger en couplant ipsec + dnssec? |
mysql |
|
|
- Pour les utilitaires classiques tcpdump, netstat, ssh, telnet, ping etc, fonctionnent bien en général avec ipv6.
Etape 4: Obtention d'une plage d'adresses IPv6
- Plage d'adresse: 2A02:6600:0100:1000::/52
- Plan d'adressage - Principe: chaque sous réseau en /64. Voir le schéma de réseau du CNF pour détails.
- Vizada Networks nous fournit ce service et cette plage d'adresse gratuitement mais sans SLA associé. Cela nous convient pour le moment vu que nous n'utilisons ceci que pour les tests pour le moment.
- Le service IPv6 nous est fournie via un tunnel manuel permanent entre le routeur cisco de sortie de réseau du CNF et un routeur cisco coté vizada. Voir les détails de la configuration plus bas.
Etape 5: Configurations
Configuration du routeur Cisco
Sur le routeur Cisco:
cnf-ndjamena#config Configuring from terminal, memory, or network [terminal]? Enter configuration commands, one per line. End with CNTL/Z. cnf-ndjamena(config)#interface tunnel 0 cnf-ndjamena(config-if)#ipv6 enable cnf-ndjamena(config-if)#ipv6 address 2A02:6600:0100:1000::1/64 cnf-ndjamena(config-if)#tunnel source FastEthernet 0/1 cnf-ndjamena(config-if)#tunnel destination 193.219.192.28 cnf-ndjamena(config-if)#tunnel mode gre ip cnf-ndjamena(config-if)# exit cnf-ndjamena(config)#ipv6 unicast-routing cnf-ndjamena(config)#ipv6 route 2A02:6600:0100:1000::/52 2A02:6600:0100:1000::2 cnf-ndjamena(config)#ipv6 route ::/0 tunnel0
2A02:6600:0100:1000::2 est l'adresse IPv6 du parefeu 2 (dédié au réseau de test IPv6).
Configuration du parefeu
C'est une machine debian squeeze installé suivant le profil minimal.
- Configuration de l'interface réseau
Contenu du fichier /etc/network/interfaces:
auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 193.219.212.4 netmask 255.255.255.248 gateway 193.219.212.1 iface eth0 inet6 static address 2a02:6600:0100:1000::2 netmask 64 mtu 1280 gateway 2a02:6600:0100:1000::1
Je décommente la ligne suivante dans /etc/sysctl.conf:
net.ipv6.conf.all.forwarding=1
Sous Debian, ceci a deux effets: activer le forwarding des paquets IPv6, désactiver la configuration automatique des paramètres réseau, ce qui correspond bien à mon besoin.
- Configuration du routage
- Autoconfiguration stateless
On a le choix entre les logiciels: radvd, quagga/zebra. Quagga/zebra sont adaptés si on veut faire le routage dynamique. Pour notre besoin (pour l'instant), radvd qui est un outil léger permettant d'annoncer les préfixes IPv6, les paramètres du lien physique (MTU, nombre maximal de sauts, etc) et de supporter le déploiement d'une infrastructure de mobilité IPv6 est le plus approprié.
nacer@v6:~$ sudo aptitude install radvd nacer@v6:~$ sudo vi /etc/radvd.conf interface eth0 { AdvSendAdvert on; # active l'annonce de routeur MinRtrAdvInterval 3; # duree minimale entre deux annonces MaxRtrAdvInterval 10; # duree maximale entre deux annonces AdvLinkMTU 1280; # le MTU du lien physique, ici Ethernet # Désactiver le support de la mobilité IPv6 AdvHomeAgentFlag off; # Parametres d'auto-configuration d'un sous reseau prefix 2a02:6600:0100:1001::/64 { AdvOnLink on; AdvAutonomous on; }; };
- Le filtrage
Les règles Ip6tables, sont quasiment identiques que pour iptables. Deux différences à relever:
- le trafic ICMP
Avec iptables on dit:
iptables -t filter -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
pour accepter le trafic icmp de type echo, alors qu'avec ip6tables on dira:
ip6tables -t filter -A INPUT -p ipv6-icmp -j ACCEPT
Conclusions
Semaine Tech 2012
Mon intervention sur IPv6 est sur une seule heure. J'ai donc segmenter le contenu en deux parties:
première partie discute du besoin d'IPv6 et de ses principales caractéristiques, sans entrer dans le détail du fonctionnement du protocole: slides
une deuxième partie discutant du fonctionnement du protocole. Sera abordé si le temps le permet, mais les slides sont dispo.