Je suis Charlie

Autres trucs

Accueil

Seulement les RFC

Seulement les fiches de lecture

Mon livre « Cyberstructure »

Ève

RFC 4001: Textual Conventions for Internet Network Addresses

Date de publication du RFC : Février 2005
Auteur(s) du RFC : M. Daniele, B. Haberman, S. Routhier, J. Schoenwaelder
Chemin des normes
Première rédaction de cet article le 9 mars 2009


Il y a plein de normes Internet dans lesquelles il faut représenter sous forme texte des adresses IP. Parmi elles, les MIB, normalisées dans le RFC 2578 pour la gestion des réseaux (cf. section 2 du RFC et le RFC 3410). Comment représenter une adresse ? La question est un peu plus difficile que cela ne parait et méritait une norme.

Notre RFC spécifie donc à quoi doit ressembler une adresse IP dans une MIB. Par exemple, le RFC 4292 normalise une MIB pour le routage des paquets IP et doit donc indiquer des adresses, par exemple pour les objets inetCidrRouteNextHop qui indiquent l'adresse du « routeur suivant ». Notez que notre RFC 4001 peut même être utilisé en dehors du monde des MIB comme dans le RFC 5388 qui décrit un schéma XML pour les résultats d'un traceroute et qui doit donc également contenir des adresses IP.

Contrairement à une croyance répandue, il n'existe pas de norme générale pour la représentation des adresses IPv4. Le RFC 791 est muet à ce sujet et, bien qu'il y ait une représentation courante (192.0.2.134), d'autres représentations sont possibles. Pour IPv6, en revanche, il existe une représentation texte normalisée, dans le RFC 5952.

Notez bien que le RFC 4001 ne normalise que la représentation d'adresses IP « pures » sans les informations liées à la couche transport comme le port. Pour des adresses généralisées, voir le RFC 3419.

C'est la section 3 qui contient les définitions des représentations des adresses IP en ASN.1. On note que les noms de domaine sont inclus comme alternative :

InetAddressType ::= TEXTUAL-CONVENTION
...
         ipv4(1)     An IPv4 address as defined by the
                     InetAddressIPv4 textual convention.

         ipv6(2)     An IPv6 address as defined by the
                     InetAddressIPv6 textual convention.
...
         dns(16)     A DNS domain name as defined by the
                     InetAddressDNS textual convention.
...
InetAddressIPv4 ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "1d.1d.1d.1d"
    STATUS       current
    DESCRIPTION
        "Represents an IPv4 network address:
           Octets   Contents         Encoding
            1-4     IPv4 address     network-byte order
...
InetAddressIPv6 ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "2x:2x:2x:2x:2x:2x:2x:2x"
    STATUS       current
    DESCRIPTION
        "Represents an IPv6 network address:

           Octets   Contents         Encoding
            1-16    IPv6 address     network-byte order

         The corresponding InetAddressType value is ipv6(2).
...
    SYNTAX       OCTET STRING (SIZE (16))

La section 4, quant à elle, donnant des indications sur l'usage de ces variables. On trouve aussi des adresses munies d'un zone index, qui indique le réseau auquel elles appartiennent, pour le cas d'adresses locales au lien par exemple celles du RFC 3927 pour IPv4 ou du RFC 4007 pour IPv6 (section 4.2).

Enfin, le RFC se conclus sur un exemple d'utilisation (section 5) pour une MIB imaginaire de peerAddress :

peerTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF PeerEntry
...
    ::= { somewhere 1 }

peerEntry OBJECT-TYPE
    SYNTAX      PeerEntry
...
    INDEX       { peerAddressType, peerAddress }
    ::= { peerTable 1 }

PeerEntry ::= SEQUENCE {
    peerAddressType     InetAddressType,
    peerAddress         InetAddress,
...
}

peerAddressType OBJECT-TYPE
    SYNTAX      InetAddressType
...
    ::= { peerEntry 1 }

peerAddress OBJECT-TYPE
    SYNTAX      InetAddress (SIZE (1..64))
...
    DESCRIPTION
        "The Internet address for the peer.  The type of this
         address is determined by the value of the peerAddressType
         object.  ...
    ::= { peerEntry 2 }

Ce RFC remplace le RFC 3291 avec peu de changements (détaillés en section 8).


Téléchargez le RFC 4001

Version PDF de cette page (mais vous pouvez aussi imprimer depuis votre navigateur, il y a une feuille de style prévue pour cela)

Source XML de cette page (cette page est distribuée sous les termes de la licence GFDL)