Difference between revisions of "MOOC:Compagnon Act16"

From Livre IPv6

(Mise en correspondance VLAN-ID et SID)
(Mise en correspondance VLAN-ID et SID)
Line 226: Line 226:
  
 
Tableau récapitulatif des deux approches
 
Tableau récapitulatif des deux approches
<center>
+
<center>                                  
                                   
+
{| border="0" class="wikitable alternance centre" width="90%"
{| border="1"
+
|- align="center"
 +
 
 +
! scope="col" width="10%" align="center"  | '''VLAN-ID'''
 +
! scope="col" width="30%" align="center"  | '''IPv6 vlan-id forme décimale'''
 +
! scope="col" width="30%" align="center" | '''IPv6 vlan-id forme hexadécimale poids faible'''
 +
! scope="col" width="30%" align="center" | '''IPv6 vlan-id forme hexadécimale poids fort'''
 +
 
 
|- align="center"
 
|- align="center"
 
| '''VLAN-ID''' || '''IPv6 vlan-id forme décimale''' || '''IPv6 vlan-id forme hexadécimale poids faible''' || '''IPv6 vlan-id forme hexadécimale poids fort'''
 
| '''VLAN-ID''' || '''IPv6 vlan-id forme décimale''' || '''IPv6 vlan-id forme hexadécimale poids faible''' || '''IPv6 vlan-id forme hexadécimale poids fort'''
Line 234: Line 240:
 
|- align="center"
 
|- align="center"
 
| '''1''' || <tt>2001:db8:cafe:000'''1'''::/64</tt> || <tt>2001:db8:cafe:0'''001'''::/64</tt> || <tt>2001:db8:cafe:'''001'''0::/64</tt>
 
| '''1''' || <tt>2001:db8:cafe:000'''1'''::/64</tt> || <tt>2001:db8:cafe:0'''001'''::/64</tt> || <tt>2001:db8:cafe:'''001'''0::/64</tt>
 
 
   
 
   
 
|- align="center"
 
|- align="center"

Revision as of 13:39, 1 July 2015

Activité 16 : Construction d'un plan d'adressage

Nécessité d'organiser un plan d'adressage

Comme nous l'avons vu dans les activités précédentes, l'espace d'adressage IPv6 est « astronomiquement » grand. Le plan d'adressage unicast global agrégé adopté aujourd'hui sur l'Internet public est organisé hiérarchiquement. A l'instar du réseau téléphonique historique, où les appels sont routés en fonction d'un préfixe national (exemple le +33 pour les appels vers la France), les réseaux IP sont bâtis selon une organisation hiérarchique. Cependant cette hiérarchie n'est pas d'ordre géographique mais plutôt administrative et organisée en « régions » (Amérique du nord, Asie Pacifique, Europe,...), gérées par les registres Internet régionaux (RIR Regional Internet Registry). Cela permet d'acheminer efficacement les datagrammes. Les opérateurs du cœur de l'internet routent (aiguillent) les datagrammes selon les préfixes les plus courts. Les registres régionaux leur attribuent des préfixes courts, car le rôle de ces opérateurs internationaux est d'acheminer les datagrammes vers les grandes zones régionales de l'Internet. Ces opérateurs délèguent ensuite à leur clients, registres locaux (LIR) ou opérateurs, des préfixes un peu plus longs, afin qu'eux même puissent déléguer des préfixes à leurs clients ou organisations utilisatrices pour acheminer les datagrammes vers leurs propres réseaux. Ainsi un utilisateur final : organisation, entreprise ou particulier se verra déléguer par son fournisseur d'accès Internet (FAI) un préfixe d'une longueur comprise, en général, entre 48 et 64 bits. La zone de l'adresse, comprise entre la longueur du préfixe alloué par l'opérateur et la limite du /64 des adresses unicast est parfois qualifiée de SID (Subnet ID). En effet elle permet à l'administrateur, d'adresser entre une unique réseau (cas où le client à obtenu un préfixe /64 de son FAI) et 65536 réseaux (cas où le client a obtenu délégation administrative, de son fournisseur d'accès, sur un préfixe /48 : il dispose alors de 16 bits (entre 48 et 64) pour numéroter 2 puissance 16 soit 65536 réseaux). C'est cet espace de l'adressage, dont l'administrateur réseau a la responsabilité, qu'il s'agit d'organiser pour déployer efficacement les réseaux de son organisation. Nous allons au cours de cette activité, présenter différents modes d'organisation possibles, que nous compléterons par un cas d'école simple.

Politique d'assignation des adresses

Les spécifications primitives, (RFC3177) de 2001, d'assignation des adresses aux utilisateurs finaux recommandaient d'allouer :

  • /48 (655536 sous réseaux) dans le cas général,
  • /64 (un sous réseau unique) lorsqu'un et un seul réseau était nécessaire
  • /128 (adresse unique) lorqu'il était absolument connu qu'un et un seul équipement était connecté

Le RFC6177, de 2011, également connu sous BCP157 (Best Current Practice), est venu remettre en cause les certitudes initiales et le « /48 pour tout le monde » n'est plus la recommandation officielle. La taille du préfixe est maintenant laissée à la discrétion du fournisseur avec la recommandation « floue » d'allouer un bloc d'adresses adapté aux besoins de l'utilisateur en évitant l'allocation d'un réseau unique. Ainsi si un /48 est adapté pour un réseau de campus il est, clairement, surdimensionné dans le cadre d'un usage domestique. Inversement le réseau unique en /64 est notablement insuffisant, les besoins actuels et futurs de le plupart des foyers nécessiteront sans doute quelques réseaux cloisonnés en fonction des usages : réseau général (accès internet, les réseaux sociaux, le multimédia,...), réseau domotique (machine à laver, sèche linge, réfrigérateur, ...), réseau de commande périmétrique (volets, alarme, chauffage, aquarium,...), sans parler des promesses médiatiques de « l'Internet des objets » (IoT Internet of things),… Pour les utilisateurs dits « grand public » ou les sites de taille modeste un préfixe /56 ou /60 semble donc plus approprié.

Préfixes de sous Réseaux

Cas général

Les sous réseaux IPv6 devraient s'aligner sur les préfixes de longueur /64. Des tailles supérieures sont possibles, mais ne sont pas sans poser problème pour les mécanismes de contrôle tels que l'auto-configuration des adresses, couramment utilisée, et qui présupposent des préfixes des sous réseaux alignés sur 64 bits. Ces mécanismes d'auto-configuration seront abordés dans une séquence ultérieure.

Cas particulier des liaisons point à point

Les liaisons point à point, qu'elles soient concrètement louées auprès du service idoine d'un opérateur (liaison spécialisée, fibre noire,...) pour assurer l'interconnexion de deux sites géographiquement distants, ou qu'elles soient logiquement établies sous forme de tunnels (Ip dans IP, VPN MPLS, tunnel IPSec, …) constituent un cas particulier. Comme dans le cas général, on peut allouer un préfixe /64 à chacune des liaisons. Cependant sur des réseaux maillés où le nombre de liaisons point à point est quelconque, attribuer un /64 à chacune de ces liaisons n'est pas efficace. La caractéristique d'une liaison point à point est de relier uniquement une interface à chacune de ses extrémités, ne nécessitant, de fait, que deux identifiants distincts. De plus ces liaisons sont administrées et ne sont, en général, pas tributaires d'un mécanisme d'auto-configuration. Aussi attribuer un /64, offrant la possibilité d'adresser 2 puissance 64 interfaces, à un support limité à deux, et uniquement deux interfaces, conduit à la perte de ((2 puissance 64) - 2) adresses qui resteront non attribuées mais qui peuvent sur certains équipements, limités ou mal configurés, conduire à des situations de surcharge sous forme d'aller retour de datagrammes sur cette liaison (syndrome de la balle de ping pong), ou de tentatives de déni de service par attaque exhaustive de découverte de voisins. A défaut d'un /64, quel est le préfixe approprié pour ce type de liaison ?

  • /127 : serait possible dans la mesure où IPv6 n'a pas d'adresse de diffusion (identifiant de host tout à 1 dans le cas d'IPv4). Cependant l'adresse tout à zéro de chaque sous réseau est réservé comme l'adresse anycast des routeurs (« all routers anycast address »), ce qui signifie que le plupart des routeurs sont susceptibles recevoir des datagrammes de service sur cette adresse.
  • /126 évite le problème de l'adresse anycast tout à zéro. Cependant, les 128 adresses hautes de chaque sous réseaux sont également réservées pour diverses adresses de anycast (RFC2526). Bien que dans la pratique cela ne semble pas poser de problème.
  • /120 permet de s'affranchir des adresses anycast réservées.
  • /112 permet de s'affranchir des adresses anycast réservées et a en plus l'avantage d'être facilement lisibles par les opérateurs humains, car aligné sur le mot de 16 bits final, (celui affiché après le dernier séparateur :, cf activité 12 « Notation d'une adresse IPv6 »)

Représentation des subdivisions

Dans la suite de cette activité, nous raisonnerons sur la base d'un préfixe de 48 bits (espace SID de 16 bits). Les exemples décrits sur la base d'adresses documentaires pourront ainsi illustrer aussi bien un contexte de réseaux publics (un préfixe /48 unicast global) qu'un réseau privatif (préfixe /48 d'adresse locale unique ULA). Cependant les règles d'ingénierie présentées pourront également se décliner de manière plus limitée sur des préfixes plus longs /56 ou /60 avec un espace SID réduit à 8 ou 4 bits.

Nous supposons que le préfixe obtenu soit par allocation de notre fournisseur d'accès dans le cadre d'un adressage unicast global routable sur l'Internet public, soit par algorithme conforme RFC4193 dans la cadre d'un adressage privatif (ULA Unique unicast Local Address) pour notre activité est 2001:db8:cafe::/48. Nous disposons donc d'une zone SID de 16 bits permettant de distinguer 65536 sous réseaux possibles en préfixes de 64 bits (de 2001:db8:cafe::/64 à 2001:db8:cafe:ffff::/64).

convention de notation binaire du champ SID

Dans cette présentation, nous adoptons les conventions de notation suivantes pour les illustrations et exemples : Comme les 48 premiers bits sont administrativement fixés et que les 64 bits de poids faible sont réservés pour l'identification de l'interface, chaque référence de sous réseau sera portée par les bits 48 à 63 (L'IETF numérote les bits en démarrant de zéro de la gauche (most significant : poids fort) à la droite (least significant : poids faible).

Exemple :

2001:db8:cafe:{LLLLTTTTBBBBBBBB}::/64
ou
2001:db8:cafe:ltbb::/64

  • Chaque lettre majuscule encadrée par '{' et '}' représente 1 bit du champ SID. 4 bits successifs représentent un quartet également appelé « nibble » ;
    (Un nibble (ou plus rarement nybble) est, en informatique, un agrégat de 4 bits, soit un demi octet. On trouve aussi les termes francisés semioctet ou quartet , source wikipédia https://fr.wikipedia.org/wiki/Nibble). 1 quartet peut prendre une valeur entre 0 et 15 et peut se représenter par 1 chiffre héxadécimal (0..9, a..f) (cf vademecum de notation hexadécimale) ;
  • Les chiffres et lettres minuscules ['a'..'f'], 'b', 'l', 't', 'v', 'w', 'x', 'y' et 'z' représentent la valeur hexadécimale d'un quartet ;
  • Dans cette présentation nous subdivisons les 16 bits du SID en groupes distingués de la manière suivante :
    • B : bit non défini et assignable ;
    • L : bit assigné à l'identification de la localisation du sous réseau ;
    • T : bit assigné à l'identification du type de sous réseau.

Ainsi l'exemple précédent où les 16 bits SID sont positionnés à la valeur {LLLTTTTBBBBBBBB} produira des préfixes IPv6 du type 2001:db8:ltbb::/64 (inversement de type 2001:db8:tlbb::/64 si l'on choisit de positionner les bits de type de sous réseau sur le quartet de poids fort et les bits de localisation sur le quartet de poids faible du 1er octet SID de cette manière {TTTTLLLLBBBBBBBB}).

Différentes stratégies pour la définition des sous réseaux

Réseau à plat

Les petites entités sans structure organisationnelle bien définie peuvent éventuellement fonctionner sans plan d'adressage structuré. Cependant si l'infrastructure de niveau liaison est cloisonnée en domaines de diffusion distincts (VLAN), il faudra à minima, affecter 1 identifiant de sous réseau par domaine. L'attribution de ces identifiants de sous réseaux pourra être simple, en numérotant éventuellement séquentiellement.
En l'absence de structuration du plan d'adressage, ce type de réseau ne passe pas à l'échelle. Si le nombre de sous réseaux est amené à croître, l'administration et le contrôle de l'infrastructure deviennent rapidement problématiques. Il y a, également, nécessité de conserver dans une table les différents affectations pour localiser le segment réseau ou la machine à l'origine d'un problème ou d'un dysfonctionnement, puisque les adresses sont peu signifiantes.

Correspondance directe entre les identifiants IPv4 et IPv6

Pour les organisations ayant déjà structuré une infrastructure réseau sous le protocole IPv4, et sur laquelle on souhaite faire cohabiter les deux versions du protocole, il est possible d'adopter une stratégie de correspondance des identifiants de sous réseau IPv4 et de sous réseau IPv6. Deux cas peuvent être évalués :

Correspondance directe entre les sous réseaux IPv4 et IPv6

Si les réseaux IPv4 sont structurés uniquement en sous réseaux de préfixe /24 (exemple les réseaux privatifs de la RFC1918, un réseau de classe C 192.168.0.0/24 à 192.168.255.0/24 ou que l'on a « subnetté » en /24 le réseau de classe A 10.0.0.0 ou l'un des 16 classe B 172.16.0.0 à 172.31.0.0), une correspondance directe entre l'identifiant de sous réseau IPv4 peut être envisagée avec l'identifiant SID d'IPv6 par transcription directe. Exemple

Activite-16-img02.png

Dans ce plan d'adressage, le lien direct entre les sous réseaux IPv4 et les sous réseaux IPv6 est directement visible. Pour les équipements d'infrastructure disposant d'une adresse fixe (routeur, serveurs applicatifs,...) on peut également transposer l'identifiant d'hôte (les 4ieme octet d'adresse IPv4 d'un /24) en identifiant d'interface de l'adresse IPv6. Ainsi, par exemple, le serveur web d'adresse IPv4 192.168.1.123 peut être adressé 2001:db8:cafe:1::123 en IPv6.
Cependant cette stratégie ne peut s'envisager uniquement si les sous réseaux IPv4 sont alignés sur 24 bits (/24). En effet des sous réseaux IPv4 de taille plus étendue (préfixe < à /24) ou plus réduite (préfixe > à/24) ne peuvent s'insérer dans le champs SID de 16 bits d'un préfixe IPv6 en /64 (le débordement au delà du /64 posant de problème pour l'auto-configuration). Ainsi :

  • un préfixe IPv4 /28, par exemple les hôtes 172.16.5.14/28 et 172.16.5.18/28 sont dans des sous réseaux IPv4 distincts, le sous réseau 172.16.5.0/28 pour le premier et le sous réseau 172.16.5.16/28 pour le second. Alors que la transposition simple en IPv6 va les placer dans le même sous réseau : les hôtes 2001:db8:cafe:5::14/64 et 2001:db8:cafe:5::18/64 sont tous les deux dans le sous réseau 2001:db8:cafe:5::/64.
  • Un préfixe IPv4 /23, par exemple les hôtes 10.0.8.250/23 et 10.0.9.5/23 sont tous le deux dans le même sous réseau IPv4. Alors que la transposition simple les placera dans des sous réseaux IPv6 distincts : 2001:db8:cafe:8::250/64 et 2001:db8:cafe:9::5/64

On notera également que la transposition directe des identifiants décimaux des sous réseaux IPv4 dans le champ SID hexadécimal du sous réseau IPv6, si elle facilite la correspondance de lecture pour l'administrateur humain, n'est en revanche pas optimale pour les tables de routage des sous réseaux IPv6. Ainsi le sous réseau IPv4 10.0.23.0/24 est sélectionné (filtré / masqué) sur 1 octet de valeur binaire 0001 0111, alors qu'il sera sélectionné par le SID 0x0023 hexadécimal (0000 0000 0010 0011)

Correspondance directe entre les adresses IPv4 et IPv6

Si le préfixe de sous réseau IPv4 n'est pas aligné sur un /24, il sera impossible de maintenir une relation directe entre les sous réseaux IPv4 et IPv6. Cependant, dans ce cas il peut être envisagé de maintenir une correspondance d'adresse en embarquant la totalité de l'adresse IPv4 dans l'identifiant d'interface de l'adresse IPv6 et en gérant le SID indépendamment du sous réseau IPv4. Par exemple la machine d'adresse IPv4 192.168.1.234 pourrait être adressée en IPv6 2001:db8:café:deca::192.168.1.234. En effet pour les adresses IPv6 embarquant une adresse IPv4, si celle ci occupe les 32 bits de poids faible de l'adresse IPv6 (la partie basse de l'identifiant d'interface) il est autorisé de continuer à la noter en notation décimale pointée. Cependant, si cette commodité facilite la saisie de la configuration d'un système, celui ci l'affichera sous la forme canonique 2001:db8:cafe:deca::c0a8:1ea, notamment dans les journaux et log diverses. . c0a801ea étant la conversion hexadécimale des 32 bits de l'adresse IPv4 écrite 192.168.1.234 en notation décimale pointée, la correspondance de lecture devient tout de suite moins évidente.

Plan d'adressage structuré

Lorsque que l'on définit un plan d'adressage, il faut décider quelle structure doit être utilisée pour assigner les adresses aux réseaux de l'organisation. Plusieurs stratégies peuvent être envisagées. En nous appuyant sur l'exemple d'architecture suivante, nous allons présenter différents plans possibles.

Activite-16-img03.png

Structuration basique du plan d'adressage

Nous pouvons, par exemple, assigner les adresses des équipements par type d'usage ou par localisation, voire une combinaison des deux. Ainsi nous pouvons choisir d'adresser d'abord par type localisation, puis par type. Une fois les sous-réseaux définis, il restera les bits de poids faible qui pourront être utilisés pour d'autres usages

2001:db8:cafe:{LLLLTTTTBBBBBBBB}::/64

Dans cet exemple , 4 bits sont assignés pour la localisation {L}, les 4 bits suivants sont assignés pour le type d'usage {T}, il reste 8 bits {B} pour d'autres affectations. Ainsi, ce plan d'adressage permet d'addresser une infrastructure qui peut être étendue sur 16 (4 bits) localisations, chacune pouvant déployer 16 (4 bits) types de-réseaux. On dispose encore de 8 bits restants permettant éventuellement 256 sous réseaux différents pour chaque localisation et chaque type.

Routeur vs firewall : Localisation ou type d'usage d'abord ?

Nous devons dans un premier temps décider quelle affectation nous souhaitons privilégier : localisation d'abord puis type (tels que, public(DMZ), employés, étudiants, invités, switchs, routeurs, serveurs, administration, comptabilité, production, etc,) ou inversement type avant la localisation.

Localisation d'abord

Quand la structuration se fait d'abord sur la localisation, chaque campus, bâtiment, département est administrativement identifié par une référence. Cela permet d'optimiser les tables de routage. A l'instar de l'organisation des opérateurs, tous les réseaux de même destination seront agrégés en une unique route dans les tables de routage. Ce type de structuration du plan d'adressage convient aux organisations qui sont chargées de l'infrastructure globale d'interconnexion, en général de opérateurs ou les entités chargés des réseaux d'interconnexion des grandes organisations.

Type d'usage d'abord

Si le type d'usage des réseaux est d'abord privilégié, l'optimisation des entrées dans les tables de routage n'est alors pas envisageable. Cependant, cela n'est en général pas un problème pour la plupart des routeurs modernes, qui peuvent gérer un nombre conséquent d'entrées de table de routage. L'avantage de grouper les réseaux par catégorie d'usage, est que cela facilite l'application des politiques de sécurité. La plupart des équipements de sécurité (pare-feux, listes de contrôles d'accès, contrôle des autorisations,…) sont régis selon les types d'usage plutôt que sur la localisation des utilisateurs. Les organisations choisissent communément de privilégier les types d'usage sur la localisation pour des raisons pratiques. L'application des politiques de contrôle d'accès et de sécurisation, basées sur des listes de filtres logiques, est généralement déléguée à des équipements spécialisés, de type pare feu, placés frontalement à l'entrée du réseau. Une fois contrôlés les flux sont ensuite acheminés en interne en fonction de leur localisation.

Activite-16-img04.png

Détermination de l'espace nécessaire au plan d'adressage

Nous devons déterminer, quelle proportion des 16 bits du SID sera nécessaire pour chaque partie de cette structuration. Le nombres de bits nécessaires pour coder chacune des catégories de la structuration est conditionné par le nombre de types et de localisations de sous-réseaux de l'infrastructure en ne négligeant pas les évolutions.

  1. Déterminer le nombre de localisations ou types de réseaux de votre organisation,
  2. augmenter le nombre d'une localisation supplémentaire, nécessaire pour le backbone,
  3. augmenter le nombre de localisations pour tenir compte d'éventuels sous-réseaux qui n'ont pas de localisation fixe, tels que les l'infrastructure des tunnels VPN par exemple,
  4. augmenter le nombre de chacune des catégories pour tenir compte des expansions de court et moyen terme,

Pour chacune des catégories déterminer la puissance de deux immédiatement supérieure ou égale, ce qui nous indiquera le nombre de bits nécessaires pour en coder les références.

Activite-16-img03.png
Exemple 1 : sous réseaux basés sur la localisation
  • nombre de localisations : 3
  • backbone d'interconnexion (réseau reliant swithches et routeurs) : 1
  • réseaux non localisés (tunnels VPN) : 1
  • extension future : 2

total : 7 sous réseaux => 3 bits suffisent pour encoder les localisations, le reste pouvant être utilisé pour d'autres référencements

2001:db8:cafe:{LLLBBBBBBBBBBBBB}::/64
Exemple 2 : sous réseaux basés sur le type d'usage
  • nombre de groupes d'usage (personnel, étudiants, invités, serveurs, infra VPN) : 5 sous-réseaux,
  • backbone et infrastructure (réseau reliant swithches et routeurs); 1 sous-réseau,
  • usages futurs : 4 sous-reseaux

total : 10 sous-réseaux => 4 bits suffisent pour encoder les types de sous-réseaux, les 12 bits restants pouvant être utilisés pour d'autre référencements au besoin

2001:db8:cafe:{TTTTBBBBBBBBBBBB}::/64
Hiérarchisation à 2 niveaux

Dans les deux exemples précédents les bits restants peuvent être utilisés pour numéroter un second niveau de sous-réseaux. Si la numérotation primaire est basée sur la localisation, plusieurs sous-réseaux peuvent être adressés sur chaque site. Si la numérotation primaire est par type d'usage, alors plusieurs réseaux de chaque type peuvent être crées (par les réseaux internes réservés au personnel peuvent être décliné pas service ou fonction : comptabilité, RH, direction, production,...). Les deux types de structuration, localisation / type d'usage, peuvent également se combiner. Si on choisit de privilégier la location en structure primaire

2001:db8:cafe:{LLLTTTTBBBBBBBBB}::/64

Il reste alors 9 bits pouvant coder 512 instances de sous-réseaux de chaque type sur chaque site. Le fait de privilégier la localisation, en positionnant sa référence sur les bits de poids fort du SID facilitera l'optimisation des tables de routage de l'infrastructure d'interconnexion des sites. Cependant elle alourdira les politiques de sécurisation, en multipliant les filtres, si la fonction de sécurisation (firewal)l est centralisée, ou elle imposera de disposer d'une fonction de sécurisation (firewall) sur chaque site entraînant des difficultés de cohérence de déploiement des politiques de sécurité. Inversement privilégier le type d'usage sur la localisation

2001:db8:cafe:{TTTTLLLBBBBBBBBB}::/64

réduira le nombre de filtres de la politique de sécurisation, au détriment du nombre d'entrées dans les tables de routage de l'interconnexion. Cependant, cela ne pose en général pas de difficultés majeures compte tenus des capacité des routeurs modernes.

Latitude

Dans le exemple précédent, 4 bits sont utilisés pour les types de sous-réseaux et 3 pour la localisation, laissant 9 bits soit 512 (2 puissance 9) sous réseaux possibles par type et par site. Cela sera suffisant dans la plupart des cas. Cependant, imaginons qu'il faille 2048 tunnels VPN par site pour accueillir les connexions sécurisées des personnels nomades. On pourrait envisager de modifier les tailles de champs de structuration primaire et secondaire, mais cela nécessiterait une reconfiguration globale de l'architecture. Une autre option consiste à répartir les tunnels sur 4 types distincts, chacun pouvant gérer 512 tunnels. De cette manière on conserve politique de sécurité simple et cohérente

Type Usage
0 Backbone, infrastructure
1 Serveurs
2 Réservé expansion future
3 Réservé expansion future
4 personnels
5 étudiants
6 invités
7 Réservé expansion future
8 VPNs
9 VPNs
a VPNs
b VPNs
c Réservé expansion future
d Réservé expansion future
e Réservé expansion future
f Réservé expansion future
Lisibilité

Lorsque que l'on dispose d'un espace d'identification suffisamment large, dans notre cas de champ SID sur 16 bits nous laissant 9 bits 'B' de marge, il est de bonne pratique d'aligner les identifiants sur des frontières de mots de 4 bits (quartet) pour faciliter la lisibilité des préfixes notés en hexadécimal. Ainsi dans notre exemple si on étend l'identifiant de la localisation sur 4 bits au lieu de 3, elle sera visuellement facilement identifiée par un opérateur humain lors de la lecture des adresses. Le format des adresses de nos exemple devient donc :

2001:db8:cafe:{LLLLTTTTBBBBBBBB}::/64
2001;db8:cafe:{TTTTLLLLBBBBBBBB:}:/64

soit en notation canonique des adresses rescpectivement

2001:db8:cafe:wxyz::/64
2001:db8:cafe:xwyz::/64

avec les "nibbles" w pour identifier la localisation et x pour le type sous réseau.

Extensibilité

Si le nombre de localisations ou de types de sous réseaux, n'est pas à priori connu au moment de l'établissement du plan d'adressage, il est recommandé de conserver des frontières flexibles entre les différents groupes de bits identifiants les différents niveaux de la structuration. Cela peut être réalisé en adoptant une des stratégies décrites dans les RFC1219 et 3531. La contrepartie de cette approche est qu'il q'une certaine aisance dans la manipulation des bits doive être acquise, dans la mesure ou les frontières des zones d'identification peuvent être amenées à évoluer, ce qui peut nécessiter des mises à jour des règles et filtres de la politique de sécurité. Ainsi, par exemple, en assumant une structuration où l'on privilégie d'abord la localisation des sous-réseaux, assignée aux bits de poids fort, sur le type assigné au bits intermédiaire, un plan d'adressage flexible initialement conçu pour 5 localisations, 3 types et 2 sous-réseaux par localisation/type :

2001:db8:cafe:{LLL*****TT*****B}::/64

Pourrait évoluer selon le scénario hypothétique suivant : passant de 2 à 10 sous-réseaux nécessitant 4 bits B

2001:db8:cafe:{LLL*****TT**BBBB}::/64

Après cela, le nombre de types d'usage pourrait passer à 5, nécessitant un troisième bit T

2001:db8:cafe:{LLL****TTT**BBBB}::/64

Puis suite à une expansion géographique, le nombre de sites passerait à 50, portant à 6 le nombres de bits L

2001:db8:cafe:{LLLLLL*TTT**BBBB}::/64

Si ensuite le nombres de types d'usage passait à 13, on étendrait le champ type par un quatrième bit pris sur la droite où il reste plus de bits disponibles

2001:db8:cafe:{LLLLLL*TTTT*BBBB}::/64

Nota 1 : Les champs dont l'agrandissement s'effectue par la droite ({L} et {T} dans notre exemple) encodent les nombres selon un ordonnancement inhabituel. Le RFC3531 décrit précisément les référencements de croissance gauche (les bits {B} dans notre exemple) centrale (les bits {T} dans notre exemple) ou droite (les bits {L} dans notre exemple).
Nota 2 : Cette stratégie prenant en compte les besoins d'extensibilité peut s'avérer difficilement conciliable avec l'objectif de lisibilité préconisant un alignement sur les quartets tel que décrit dans le paragraphe précédent.

Identification des sous-réseaux d'après les VLAN

Confinement des domaines de diffusion de niveau 2 : les VLAN

Ethernet est le protocole dominant de niveau liaison de données (niveau 2 de la pile protocolaire), support du niveau réseau IPv6, des infrastructures de réseaux de la plupart des organisations. Les architectures Ethernet modernes, constituées de commutateurs (switch ethernet) sont généralement subdivisées en différents domaines de diffusion étanches, couramment dénommés VLAN. Cette structuration en VLAN permet de constituer des groupes logiques de machines partageant un même support de diffusion. Chaque VLAN ethernet dispose d'un identifiant propre (VLAN-ID). Au niveau réseau (niveau 3 de la pile protocolaire), où opère le protocole IPv6, chaque VLAN se voit affecter un (ou plusieurs) identifiants de sous réseaux distincts. En effet deux postes, localisés dans des VLAN distincts ne peuvent échanger directement des données et doivent passer une une fonction de routage inter-réseaux (routeur) pour pouvoir communiquer.

Mise en correspondance VLAN-ID et SID

Une autre approche de structuration du plan d'adressage, sur ce type d'infrastructure, est de dériver l'identifiant de sous-réseau IPv6 (SID) de l'identifiant du domaine de diffusion (VLAN-ID). Les identifiants de VLAN ethernet (VLAN-ID) ont une taille de 12 bits, 4094 VLAN distincts (les valeurs 0 et 4095 étant réservées) peuvent être créés sur une infrastructure locale. Dans notre cas de figure (préfixe en /48) où nous disposons de 16 bits pour identifier nos sous réseaux IPv6, on peut envisager de faire coïncider VLAN-ID et SID soit sous leur forme hexadécimale soit sous leur forme décimale.

  • forme hexadécimale : en convertissant la valeur décimale de l'identifiant de VLAN en hexadécimale pour le transposer en identifiant de sous-réseau sur trois quartets (nibble). Dans ce cas, il reste un quartet du champ SID libre, qui peut être utilisé pour éventuellement coder 16 localisations ou 16 types. Il faut alors décider la position du quartet libre, soit sur le quartet de poids fort, soit sur le quartet de poids faible

VLAN-ID sur les bits de poids fort du SID 2001:db8:cafe:{VVVVVVVVVVVVBBBB}::/64 ou VLAN-ID sur les bits de poids faible du SID 2001:db8:cafe:{BBBBVVVVVVVVVVVV}::/64

Cependant, si les adresses IPv6 sont en notation hexadécimale (cf activité 12), les identifiants de VLAN sont en notation décimale, ce qui ne facilite pas la lisibilité de correspondance lors de la lecture de l'adresse IPv6.

  • forme décimale : Afin de conserver une correspondance lisible, entre identifiant de sous réseau IPv6 et l'identifiant de VLAN on peut conserver la valeur décimale du VLAN-ID et l'utiliser directement en lieu et place de l'identifiant SID hexadécimal. La correspondance est alors directement lisible. Ainsi le sous réseau IPv6 2001:db8:cafe:4321::/64 sera affecté au VLAN 4321. On remarquera que les identifiants de sous réseaux supérieurs à 4095 ainsi que ceux comportant une ou plusieurs lettres hexadécimales (a..f) sont disponibles pour d'autres sous-réseau logiques non liés à un VLAN.

Tableau récapitulatif des deux approches

VLAN-ID IPv6 vlan-id forme décimale IPv6 vlan-id forme hexadécimale poids faible IPv6 vlan-id forme hexadécimale poids fort
VLAN-ID IPv6 vlan-id forme décimale IPv6 vlan-id forme hexadécimale poids faible IPv6 vlan-id forme hexadécimale poids fort
1 2001:db8:cafe:0001::/64 2001:db8:cafe:0001::/64 2001:db8:cafe:0010::/64
12 2001:db8:cafe:0012::/64 2001:db8:cafe:000c::/64 2001:db8:cafe:00c0::/64
2783 2001:db8:cafe:2783::/64 2001:db8:cafe:0adf::/64 2001:db8:cafe:adf0::/64
4094 2001:db8:cafe:4094::/64 2001:db8:cafe:0ffe::/64 2001:db8:cafe:ffe0::/64


Cette approche introduit une certaine cohérence entre l'infrastructure de niveau 2 et l'adressage de niveau 3, et simplifie la numérotation des sous-réseau IPv6 dans la mesure où une seule numération doit être gérée. Cependant elle n'est pas optimale pour minimiser le nombre d'entrees dans les tables de routage ou pour optimiser les politiques de contrôle d'accès basées sur le filtrage des préfixes.

Identification des VLAN selon la localisation ou le type d'usage

Il est possible d'envisager un codage des VLAN-ID intégrant la localisation ou le type d'usage. Dans ce cas il est souhaitable de conserver un alignement sur frontières de quartet (nibble), de ce fait on peut choisir de coder la localisation sur 4 ou 8 bits {W} et coder respectivement le type sur 8 ou 4 bits {V} ou inversement. De même, comme pour la hiérarchisation à deux niveaux vue précédemment) il faudra choisir de privilégier soit la localisation ou le type en le positionnant sur les bits de poids fort.

  • forme hexadécimale : dans cette forme sur un SID long de 16 bits, on conserve 4 bits utilisables pour coder 16 instances de chaque localisation/type.

VLAN-ID sur les bits de poids fort du SID
localisation {W} sur 4 bits (1 quartet) privilégiée
2001:db8:cafe:{WWWWVVVVVVVVBBBB}::/64
ou
VLAN-ID sur les bits de poids fort du SID
localisation {W} sur 8 bits (2 quartets) privilégiée
2001:db8:cafe:{WWWWWWWWVVVVBBBB}::/64
inversement, si on privilégie le type d'usage
VLAN-ID sur les bits de poids fort du SID
type d'usage {V} sur 4 bits (1 quartet) privilégié
2001:db8:cafe:{VVVVWWWWWWWWBBBB}::/64
ou
VLAN-ID sur les bits de poids fort du SID
type d'usage {V} sur 8 bits (2 quartets) privilégié
2001:db8:cafe:{VVVVVVVVWWWWBBBB}::/64

Quelques exemples illustratifs de la forme hexadécimale
(localisation sur 1 quartet, type d'usage sur 2 quartets)

VLAN-ID localisation Type d'usage IPv6

(VLAN-ID hexadécimal)

décimal


hexa


décimal


hexa


décimal


hexa


0001


(001)


0


(001)


1


(001)


2001:db8:cafe:0010::/64


0529


(211)


2


(211)


17


(211)


2001:db8:cafe:2110::/64


4094


(ffe)


15


(ffe)


254


(ffe)


2001:db8:cafe:ffe0::/64


  • forme décimale : La lisibilité directe est alors conservée, mais chaque quartet (nibble) ne peut prendre qu'une valeur numérique (0..9), il ne reste plus de bits du SID disponibles pour coder d'éventuelles instances de chaque type/localisation. Cependant on pourra choisir d'affecter un, deux ou trois quartet pour coder 10, 100, ou 1000 localisations, avec respectivement 1000, 100, 10 types d'usage.

2001:db8:cafe;1025::/64
VLAN 1025, localisation (1) type d'usage (025)
cas de la localisation sur 1 quartet et type d'usage sur 3 quartets
ou
VLAN 1025, localisation (10) type d'usage (25)
cas de la localisation sur 2 quartets et type d'usage sur 2 quartets
ou
VLAN 1025, localisation (102) type d'usage (5)
cas de la localisation sur 3 quartets et type d'usage sur 1 quartet

Quelques exemples illustratifs de la forme décimale
(localisation sur 2 quartets, type d'usage sur 2 quartets)


VLAN-ID


Localisation


Type d'usage


IPv6
(VLAN-ID forme décimale)


0001


00


01


2001:db8:cafe:0001::/64


0529


05


29


2001:db8:cafe:0529::/64


4094


40


94


2001:db8:cafe:4094::/64



Ce document est librement inspiré des sources suivantes :

Autres lectures complémentaires recommandées :

Personal tools