Textual Conventions for Internet Network Addresses
obsoletes
- rfc-3291 — Textual Conventions for Internet Network Addresses
Extracted elements (25)
InetAddressIPv6 was split into InetAddressIPv6 and InetAddressIPv6z (and InetAddressIPv4z added) to enable non-global IPv4 address support, align with transport address textual conventions, simplify compliance statements where zone index support is not required, and simplify implementations for host systems that never report zone indices.
InetAutonomousSystemNumber uses Unsigned32 without a range restriction (rather than 0..65535) because AS numbers are expected to be extended from 16 to 32 bits, and forward-compatible type design avoids future MIB revision.
The IpAddress SMIv2 base type is limited to 4-byte IPv4 addresses, making it incompatible with IPv6. This MIB module introduces InetAddressType/InetAddress textual convention pairs to provide a generic, extensible representation of Internet network layer addresses that works across IP versions.
MIB modules of the first type (IP-version-neutral management information currently using IPv4-specific constructs) SHOULD provide new tables using these textual conventions with status 'current', while old IPv4-specific tables SHOULD be changed to 'deprecated'. Multiple parallel tables for different IP versions is strongly discouraged.
The InetAddressType and InetAddress objects SHOULD NOT be sub-typed in object definitions because sub-typing binds the MIB module to specific address formats, which may cause serious problems if new address formats need to be introduced. Compliance statements may restrict supported types.
DNS names MUST be resolved to IP addresses when communication with the named host is required. The DESCRIPTION clause of objects using DNS names SHOULD precisely define how and when name-to-address resolution is done.
Implementations must ensure that InetAddressType objects and any dependent InetAddress objects are consistent. An inconsistentValue error must be generated if an attempt to change an InetAddressType object would lead to an undefined InetAddress value.
MIB developers SHOULD NOT use the textual conventions defined in this document to represent generic transport layer addresses; RFC 3419 defines a separate set of textual conventions for that purpose.
MIB developers who need to represent Internet addresses SHOULD use these definitions whenever applicable, even MIB modules that only need to represent IPv4 or IPv6 addresses SHOULD use the InetAddressType/InetAddress textual conventions.
New MIB definitions that must express network layer Internet addresses SHOULD use the textual conventions defined in this memo. New MIB modules SHOULD NOT use the SMIv2 IpAddress base type anymore.
The InetAddressType textual convention SHOULD NOT be sub-typed in object type definitions. It MAY be sub-typed in compliance statements to require only a subset of address types.
The zone index MUST disambiguate identical address values. The default zone (value 0) SHOULD NOT be used as an easy way out when the zone index for a non-global IPv6 address is known.
When a generic Internet address is used as a table index, both InetAddressType and InetAddress objects MUST be used, with InetAddressType listed before InetAddress in the INDEX clause. The IMPLIED keyword MUST NOT be used for an InetAddress object in an INDEX clause.
InetAddressPrefixLength is an Unsigned32 (0..2040) representing the number of contiguous 1-bits from the MSB of an address mask. Maximum significant values are 32 for IPv4/IPv4z and 128 for IPv6/IPv6z; the maximum for dns(16) is 0.
InetAddressType is an enumeration textual convention with values: unknown(0), ipv4(1), ipv6(2), ipv4z(3), ipv6z(4), and dns(16). It determines how the associated InetAddress value is encoded and interpreted.
InetAutonomousSystemNumber is an Unsigned32 without range restriction to support future expansion of AS number space from 16 to 32 bits. AS numbers are currently limited to 0..65535 but the type is defined to accommodate the larger space.
InetPortNumber is an Unsigned32 (0..65535) representing a 16-bit transport layer port number. The zero value is object-specific and must be defined in the DESCRIPTION clause of each using object.
InetScopeType is an INTEGER enumeration with values interfaceLocal(1), linkLocal(2), subnetLocal(3), adminLocal(4), siteLocal(5), organizationLocal(8), and global(14). Used when a MIB must represent scope types without implicit context from an InetAddress object.
InetVersion is an INTEGER textual convention with values unknown(0), ipv4(1), and ipv6(2) representing the IP protocol version. It SHOULD NOT be used to distinguish different address types; InetAddressType is designed for that purpose.
InetZoneIndex is an Unsigned32 that identifies an instance of a zone of a specific scope. For link-local addresses it is typically the interface index (ifIndex). The special value 0 refers to the default zone.
This MIB module defines only textual conventions and no management objects. Meaningful security considerations can only be written in MIB modules that define management objects using these conventions; this document itself has no direct impact on Internet security.
InetAddress is an OCTET STRING of SIZE (0..255) whose interpretation depends on the associated InetAddressType. When used as an index object, a SIZE clause MUST be included to limit the number of potential instance sub-identifiers due to the SMIv2 128 sub-identifier limit.
InetAddressDNS represents a DNS domain name as an OCTET STRING of SIZE (1..255). The name SHOULD be fully qualified whenever possible, and the DESCRIPTION clause of objects using this convention MUST fully describe how and when names are resolved to IP addresses.
InetAddressIPv4 encodes a 4-octet IPv4 address in network-byte order (OCTET STRING SIZE 4). InetAddressIPv6 encodes a 16-octet IPv6 address in network-byte order (OCTET STRING SIZE 16).
InetAddressIPv4z encodes a non-global IPv4 address with zone index: octets 1-4 are the IPv4 address in network-byte order, octets 5-8 are the zone index in network-byte order (OCTET STRING SIZE 8). InetAddressIPv6z is similar: octets 1-16 IPv6 address, octets 17-20 zone index (OCTET STRING SIZE 20).