Modifications entre les versions 12 et 13
Version 12 à la date du 2015-09-17 15:10:45
Taille: 11286
Éditeur: WillyManga
Commentaire: Bogue avec l'apostrophe
Version 13 à la date du 2018-02-25 16:27:58
Taille: 3151
Éditeur: WillyManga
Commentaire: liaison IPv6 native
Texte supprimé. Texte ajouté.
Ligne 1: Ligne 1:
## page was renamed from ZAC/N'djaména/IPv6
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 4: 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 6: 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 11: 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 13: 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 17: 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 94: Ligne 21:
2A02:6600:0100:1000::2 est l'adresse IPv6 du parefeu 2 (dédié au réseau de test IPv6).
Ligne 96: 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 99: Ligne 28:
 * Configuration de l'interface réseau
Contenu du fichier ''/etc/network/interfaces'':
{{{
auto lo
iface lo inet loopback
=== Répartition ===
Ligne 105: 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 111: 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 ||
||<|7> 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 || ... ||
|| ... || ... ||
Ligne 123: Ligne 42:
 * 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 126: Ligne 45:
 * 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 ||
||<|6> 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 ||


=== 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 129: Ligne 73:
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 139: Ligne 80:
 # Désactiver le support de la mobilité IPv6
 AdvHomeAgentFlag off;
== Auparavant ==
Ligne 142: Ligne 82:
        # 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 ==
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 163: Ligne 84:
== 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: [[attachment:IPv6 partie 1 | slides]]
 * une deuxième partie discutant du fonctionnement du protocole. Sera abordé si le temps le permet, mais les [[attachment:IPv6 partie 2 | slides]] sont dispo.
Ligne 168: Ligne 85:
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

...

...

...

  • {i} 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

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


  1. MARLINK avait déjà utilisé une adresse dans cette plage pour son routeur (1)

  2. Recommandations du RIPE NCC pour un équipement de bordure Voir «Advanced IPv6 - training course» . Avril 2016. p. 170 .
    Lire les RFC 4890 et 7084 (2)

ZAC/Ndjaména/IPv6 (dernière édition le 2018-02-25 16:51:47 par WillyManga)