Taille: 10756
Commentaire:
|
← Version 14 à la date du 2018-02-25 16:51:47 ⇥
Taille: 3242
Commentaire: limites
|
Texte supprimé. | Texte ajouté. |
Ligne 1: | Ligne 1: |
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. | <<TableOfContents()>> == Usage d'IPv6 == |
Ligne 3: | Ligne 4: |
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. | |
Ligne 5: | Ligne 5: |
== 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'''. |
* Préfixe assigné par le FAI , MARLINK: 2a02:6600:8001:200::/56 . |
Ligne 10: | Ligne 7: |
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). | |
Ligne 12: | Ligne 8: |
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) |
* extrait fichier d'interfaces sur la passerelle {{{ auto eth0.4 iface eth0.4 inet static address 77.70.182.226 netmask 255.255.255.224 gateway 77.70.182.225 up ip addr add 77.70.182.227/32 dev eth0.4 up ip -6 addr add 2a02:6600:8001:201::2/64 dev eth0.4 up ip -6 route add default via 2a02:6600:8001:201::1 dev eth0.4 |
Ligne 16: | Ligne 19: |
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 ( [[http://wiki.auf.org/wikiteki/DNS/DNSSEC|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 || || || || mail || || || || 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 |
|
Ligne 93: | Ligne 21: |
2A02:6600:0100:1000::2 est l'adresse IPv6 du parefeu 2 (dédié au réseau de test IPv6). | |
Ligne 95: | Ligne 22: |
=== Configuration du parefeu === C'est une machine debian squeeze installé suivant le profil minimal. |
* éviter l'autoconf d'une interface ? Dans `/etc/sysctl.d/local.conf` par exemple {{{ net.ipv6.conf.ethxx.autoconf=0 net.ipv6.conf.ethxx.accept_ra=0 }}} |
Ligne 98: | Ligne 28: |
* Configuration de l'interface réseau Contenu du fichier ''/etc/network/interfaces'': {{{ auto lo iface lo inet loopback |
=== Répartition === |
Ligne 104: | Ligne 30: |
auto eth0 iface eth0 inet static address 193.219.212.4 netmask 255.255.255.248 gateway 193.219.212.1 |
* On prend notre /56 qu'on découpe en plusieurs /60; soit 16 réseaux. * `sipcalc -S 60 2a02:6600:8001:200::/56` |
Ligne 110: | Ligne 33: |
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. |
||Préfixe générique || Réseau || Usage || ||<|8> 2a02:6600:8001:200::/56 ||2a02:6600:8001:200::/60 || WAN || || 2a02:6600:8001:210::/60 ||RPV_SVR , réseau d'administration || || 2a02:6600:8001:220::/60 || DMZ || || 2a02:6600:8001:230::/60 ||(Usagers: personnel, prof,étudiants) || || 2a02:6600:8001:240::/60 || Nomade || || 2a02:6600:8001:250::/60 || ... || || ... || ... || || 2a02:6600:8001:2f0::/60 || ... || |
Ligne 122: | Ligne 43: |
* Configuration du routage | * {i} A l'exception du réseau des usagers et nomades, tous les autres ont ou auront des adresses attribuées statiquement. |
Ligne 125: | Ligne 46: |
* Autoconfiguration stateless On a le choix entre les logiciels: radvd, [[http://www.quagga.net | 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é. |
==== WAN ==== * Préfixe générique : 2a02:6600:8001:200::/60 * préfixe employé : 2a02:6600:8001:201::/64 <<FootNote(MARLINK avait déjà utilisé une adresse dans cette plage pour son routeur)>> ==== DMZ ==== * Préfixe générique : 2a02:6600:8001:220::/60 * préfixe employé : 2a02:6600:8001:220::/64 ==== Réseau Usagers ==== * L'adressage via SLAAC (''radvd'') partout . ||Préfixe générique || Réseau || Usage || ||<|7> 2a02:6600:8001:230::/60 ||2a02:6600:8001:230::/64 || Personnel || || 2a02:6600:8001:231::/64 || infotech || || 2a02:6600:8001:232::/64 || salle réunion || || 2a02:6600:8001:233::/64 || formation || || 2a02:6600:8001:234::/64 || prof || || ... || ... || || 2a02:6600:8001:23f::/64 || || === Firewall === * Le principe étant d'avoir des règles s'appliquant à l'ensemble des groupes de réseaux. Si besoin de régles précises pour un réseau particulier, le déclarer avant les régles plus globales * laisser passer ICMPv6 partout !!(''ou du moins certaines options''<<FootNote(Recommandations du RIPE NCC pour un équipement de bordure Voir «Advanced IPv6 - training course» . Avril 2016. p. 170 . <<BR>>Lire les RFC [[https://tools.ietf.org/html/rfc4890|4890]] et [[https://tools.ietf.org/html/rfc7084 | 7084]] )>> ) C'est pour cela qu'on a ceci dans le script du parefeu |
Ligne 128: | Ligne 76: |
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 |
for t in 'echo-request' 'echo-reply' 'no-route' 'packet-too-big' 'time-exceeded' 'parameter-problem' do $IPF -A INPUT -p icmpv6 --icmpv6-type $t -j ACCEPT $IPF -A FORWARD -p icmpv6 --icmpv6-type $t -j ACCEPT done }}} |
Ligne 138: | Ligne 83: |
# Désactiver le support de la mobilité IPv6 AdvHomeAgentFlag off; |
== Auparavant == |
Ligne 141: | Ligne 85: |
# 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 -A INPUT -p ipv6-icmp -j ACCEPT }}} == Conclusions == |
Auparavant Marlink avait déjà offert un accès IPv6. Mais à cette époque c'était en ''test''; le FAI ne garantissait aucune qualité de service. Une Archive de la page [[https://wiki.auf.org/wikiteki/ZAC/Ndjam%C3%A9na/IPv6?action=recall&rev=11| ici ]] |
Ligne 162: | Ligne 88: |
CatégorieProjet CatégorieProjet CatégorieProjet |
Usage d'IPv6
- Préfixe assigné par le FAI , MARLINK: 2a02:6600:8001:200::/56 .
- extrait fichier d'interfaces sur la passerelle
auto eth0.4 iface eth0.4 inet static address 77.70.182.226 netmask 255.255.255.224 gateway 77.70.182.225 up ip addr add 77.70.182.227/32 dev eth0.4 up ip -6 addr add 2a02:6600:8001:201::2/64 dev eth0.4 up ip -6 route add default via 2a02:6600:8001:201::1 dev eth0.4
éviter l'autoconf d'une interface ? Dans /etc/sysctl.d/local.conf par exemple
net.ipv6.conf.ethxx.autoconf=0 net.ipv6.conf.ethxx.accept_ra=0
Répartition
- On prend notre /56 qu'on découpe en plusieurs /60; soit 16 réseaux.
sipcalc -S 60 2a02:6600:8001:200::/56
Préfixe générique |
Réseau |
Usage |
2a02:6600:8001:200::/56 |
2a02:6600:8001:200::/60 |
WAN |
2a02:6600:8001:210::/60 |
RPV_SVR , réseau d'administration |
|
2a02:6600:8001:220::/60 |
DMZ |
|
2a02:6600:8001:230::/60 |
(Usagers: personnel, prof,étudiants) |
|
2a02:6600:8001:240::/60 |
Nomade |
|
2a02:6600:8001:250::/60 |
... |
|
... |
... |
|
2a02:6600:8001:2f0::/60 |
... |
A l'exception du réseau des usagers et nomades, tous les autres ont ou auront des adresses attribuées statiquement.
WAN
- Préfixe générique : 2a02:6600:8001:200::/60
préfixe employé : 2a02:6600:8001:201::/64 1
DMZ
- Préfixe générique : 2a02:6600:8001:220::/60
- préfixe employé : 2a02:6600:8001:220::/64
Réseau Usagers
L'adressage via SLAAC (radvd) partout .
Préfixe générique |
Réseau |
Usage |
2a02:6600:8001:230::/60 |
2a02:6600:8001:230::/64 |
Personnel |
2a02:6600:8001:231::/64 |
infotech |
|
2a02:6600:8001:232::/64 |
salle réunion |
|
2a02:6600:8001:233::/64 |
formation |
|
2a02:6600:8001:234::/64 |
prof |
|
... |
... |
|
2a02:6600:8001:23f::/64 |
|
Firewall
- Le principe étant d'avoir des règles s'appliquant à l'ensemble des groupes de réseaux. Si besoin de régles précises pour un réseau particulier, le déclarer avant les régles plus globales
laisser passer ICMPv6 partout !!(ou du moins certaines options2 ) C'est pour cela qu'on a ceci dans le script du parefeu
for t in 'echo-request' 'echo-reply' 'no-route' 'packet-too-big' 'time-exceeded' 'parameter-problem' do $IPF -A INPUT -p icmpv6 --icmpv6-type $t -j ACCEPT $IPF -A FORWARD -p icmpv6 --icmpv6-type $t -j ACCEPT done
Auparavant
Auparavant Marlink avait déjà offert un accès IPv6. Mais à cette époque c'était en test; le FAI ne garantissait aucune qualité de service. Une Archive de la page ici