Allocation Adresse IPv6 INT : ----------------------------- draft-ph-ip6int-02.txt (15 janv 2004, pascal hennequin) Contents : Elements sur adresses IPv6 Principes Allocation INT: regles generiques Allocation des numeros de Subnet Allocation des host-Id Annexe: I Tables d'allocation des subnets II Subnets Actifs III Complements sur subnet v6-only IV Subnetting v4 non-standard Elements sur les adresses IPV6 (ref RFC3513): --------------------------------------------- - Adresse sur 16 octets en notation hexadecimal : PPPP:PPPP:PPPP:SSSS:HHHH:HHHH:HHHH:HHHH P-> Prefixe delegué /48 S-> Subnet ; P + S -> Reseau IPv6 /64 H-> Host-ID ; P + S + H -> Host IPv6 /128 - Prefixe (6 octets) Prefixe INT : 2001:660:3203::/48 Prété par Renater et non pas donné par IANA comme en IPv4 Plusieurs prefixes simultanement, ex : Lien-local et global, phase de transition si nouveau prefixe, plusieurs providers, . Préfixes particuliers: FE80::/10 + H -> Adresses lien-local (même reseau) FEC0::/10 + S + H -> Adresses site-local (usage mal défini) FF00::/8 ... -> Adresses Multicast 2000::/3 ... -> Prefixe unicast courant (dont INT, ou Mbone=3ffe::) - Subnet (2 octets) Allocation Interne INT A priori S fixe même si plusieurs prefixes P. - Host-ID (8 octets) Les stategies non exclusives sont : - Configuration automatique par defaut a partir adresses MAC ou autres identifiants universelles du host - Imposer (manuellement) une valeur WellKnown ("H=::1" mon routeur par defaut) ou lisible et memorisable pour des machines importantes ("H=::1012" le DNS diamant) ou anycast (...) - Tirage aleatoire (pour usage temporaire dans l'optique de protection de la vie privée rfc3041) - ... - AutoConfiguration De facon generale, H est determiné de maniere autonome par le host, l'unicite sur le lien-local est verifiée dans ICMPv6. Les prefixes P+S sont statiquement (pour le moment) configurés sur les routeurs et exportés vers les hosts avec ICMPv6 (router advertisement,..). DHCP est ainsi peu utile pour la configuration d'adresses IPv6. Principes Allocation INT : Regles generiques -------------------------------------------- #REGLE 1 : ## Pour satisfaire au principe de rénumérotation requis dans IPv6, ## l'écriture numérique des adresses IPv6 (configuration, identification,...) ## et en premier lieu du prefixe /48 est à limiter au plus strict minimum. #REGLE 1bis : ## Les exceptions a la regle 1 doivent etre inventoriées. - Les exceptions "naturelles" sont : * le DNS bien sur, et pour les memes raisons les pages jaunes ou LDAP. * La Configuration des routeurs IPv6 (adresse d'interface et annonce des prefixes) - D'autres exceptions rencontrées en pre-experimentation : * /etc/resolv.conf pour reference d'un DNS accessible en IPv6 * /var/yp/securenets (filtrage d'acces YP) * ~/.ssh/ pour identifiant host dans ssh * /etc/hosts (ou /etc/ipnodes) dans certains cas particuliers comme par exemple l'adresse IPv6 du serveur YP (meme en ypbroadcast,bug de solaris8?) * A priori beaucoup d' "access-list" vont géner... * A completer... NB: Les protocoles et les outils sont en gestation pour réduire au maximum l'ecriture statique des prefixes. #REGLE 2 : ## On alloue sur des tranches minimales de 4 bits, ## c'est à dire 1 chiffre hexadecimal et 16 valeurs - Lisibilité par rapport à la notation standard IPv6 - Simplification du reverse DNS IPv6 #REGLE 3 ## On evitera les chiffres hexadecimaux non decimaux : ABCDEF. - tranche minimale = 10 valeurs utilisables + 6 valeurs reservées - Interet : lisibilité , pb minuscule/majuscule, on garde de la marge.. - Exceptions : les standards , (les "funs" "H = ::BDE" pour le BDE ?) la coherence en cas de subnetting (?) Allocation des numéros de Subnet S : ------------------------------------ #REGLE 11 ## La construction respecte l'héritage des sous-réseaux IPv4 existants ## Chaque Subnet IPv4 a automatiquement un numero de Subnet IPv6 ## "naturel". Ce couple définit les 2 adressses IPv4 et IPv6 du reseau ## dans le cas ou celui-ci est en double pile IPv4/IPv6 natif. #REGLE 12 ## Pour un Subnet IPv4 traditionel (masque=255.255.255.0 ou /24), ## le Subnet IPv6 (/64) "naturel" est obtenu en multipliant par 10 ## la valeur du Subnet IPv4 (toutes les valeurs sont lues en decimal) ex : 157.159.12. /24 <--> 2001:660:3203:0120: /64 157.159.101. /24 <--> 2001:660:3203:1010: /64 #REGLE 13 ## Les subnets IPv4 avec masques differents de /24 seront ## traités ulterieurement en fonction des besoins (Cf. Annexe IV) -besoins connus : ? #REGLE 14 ## Les subnets IPV6-only (reseaux sans IPv4) seront ## traités ulterieurement en fonction des besoins (Cf. Annexe III) - besoins connus : identification de tunnels, ...? Allocation des Host-ID "Wellknown" ----------------------------------- #REGLE 21 ## pas de regles formalisées pour le moment - Inventorier les usages, les standards, les anycasts ... - Tunnels, point-a-point entre routeurs :"H=::1" et "H=::2" ? -NB : contrainte EUI-64 : le premier octet du host-ID termine par les bits 00 (non global, individuel), ou le 2eme chiffre hexa du host-ID est 0,4,8,ou C. - contrainte Anycast : les hostID ::0 et :fdff:ffff:ffff:ffff:ffff:ffxx sont reservés pour anycast (aussi ffff:ffff:ffff:ffff:ffff:ffxx !) ANNEXE I : Tables generiques Allocation des Subnets ------------------------------------------------- TABLE 0 : general ----------------- :0000:-:3FFF: Mapping V4/V6 decimal (cf TABLE1) :4000:-:7FFF: non alloué V6-only large :8000:-:9FFF: non alloué V6-only medium :A000:-:AFFF: non alloué V6-only small :B000:-:BFFF: non alloué V6-only small :C000:-:DFFF: non alloué V6-only medium :E000:-:EFFF: Experimentation :F000:-:FFFF: Special use (cf TABLE2) TABLE 1 : IPv4/IPv6 - par entité INT ------------------------------------ # :0000:-:3FFF: Repartition par tranches # de 10 subnet v4 (x) et 100 v6 (xy) :00xy: RANGE_0 ? TABLE 11 (** cas particulier x=0 TABLE2) :01xy: RANGE_10 MCI TABLE 11 ... (completer avec info MCI) :10xy: RANGE_100 LOR-RST TABLE 11 :11xy: RANGE_110 INF TABLE 11 ... (completer avec info MCI) :25xy: RANGE_250 ? TABLE 11 (** x <5 !) ## hors IPv4 ou Non Decimal :255y:-:299y: non alloué :300y:-:399y: non alloué :0Axy:-:0Fxy: RANGE_0X Reservé (subsubnetting algo2 ?) :1Axy:-:1Fxy: RANGE_1X Reservé (subsubnetting algo2 ?) :2Axy:-:2Fxy: RANGE_2X Reservé (subsubnetting algo2 ?) :3Axy:-:3Fxy: RANGE_3X Reservé TABLE 11 : IPv4/IPv6 - dans chaque entité INT --------------------------------------------- # xyz = octet decimal de subnet IPv4 0 :xyzn: = 9 (+ 6) subnets v6 par subnet v4 existant - subnet v6 associé en une entite v4 xy mais a aucun subnet v4 xyz (cousins) -> :xyZT: avec Z lettre = 60 (+36) subnets v6 par entite - subnet v6 totalement independant des v4 mais vision decimale -> tranche 300 (1000 subnets) ; tranches 270,280,290 (3*100) ( + 3E experimentation, 3F special) - subnet v6 totalement independant des v4 mais vision binaire -> :4000: a :DFFF: (a preciser...) - subnet v6 totalement independant des v4 a usage special -> :E000: a :EFFF: experimentation (temporaire). -> :F000: a :FFFF: a definir a l'usage ANNEXE IV : Algo pour REGLE 13 sur Subnet v4 non-standard # PRINCIPE 1 # Pour un (Sub)Subnet IPv4 avec un masque plus grand que /24, # a) la lisibilité n'existe alors plus en IPv4, # b) l'utilisation est tres marginale a l'INT, # le traitement est donc alors fait sur mesure selon l'un # des 2 Algorithmes qui suivent. # PRINCIPE 2 # Surnetting (masque IPv4 <24) : Inutile (!); l'algo2 pourrait convenir Algo1 : 1) on prends le numero de subnet IPv4 traditionnel en /24 2) on multiplie par 10 et on reserve le subnet IPv6 "naturel" 3) on alloue dans l'ordre les numeros de subnet IPv6 suivants ("associes") a chaque subsubnet v4 Algo2: 1) on utilise une plage IPv6 specifique avec un mapping respectant les masques binaires : 157.159.xxx.yyy/24+N -> prefixe/48:nnzz:/56+N avec xxx->nn allocation fixe au cas par cas et yyy/N = zz/N (y decimal, z hexadecimal) Exemples: -Algo1 quand cela marche: 157.159.102.xxx/26 donne 4 subsubnets IPv4/IPv6 157.159.102.0-63 --> prefixe/48:1021: 157.159.102.64-127 --> prefixe/48:1022: 157.159.102.128-191 --> prefixe/48:1023: 157.159.102.192-255 --> prefixe/48:1024: si retour du 102 a /24 --> prefixe/48:1020: -Ce qui ne marche pas avec Algo1: -le sub-sub-sub-netting (ex : 157.159.102.64-127/28), -modif frequente du masque, -trouver le masque v4 a partir du numero v6, -/28 sauf en prenant une lettre hexa, -/29, /30 et /31. - Algo2: allocation fixe .102. -> :1A..: (au cas par cas) Ipv4 /26 : .102.0-63/26 -> :1A00:/58 .102.64-127/26 -> :1A40:/58 .102.128-191/26 -> :1A80:/58 .102.192-255/26 -> :1AC0:/58 Ipv4 /25 : .102.0-127/25 -> :1A00:/57 .102.128-255/25 -> :1A80:/57 cela marche tout le temps mais necessite une calculatrice hexa et la gestion de l'allocation fixe...