SNMP Research International, Inc.

Secure Your Network

Contents

About SNMP Research

IPv6 Notation in SNMP Research Products

Internet Protocol version 6 (IPv6), the successor of IPv4, provides a much larger address space and greater flexibility when assigning addresses. SNMP Research products can support IPv6 on systems which support IPv6 and can use both IPv4 and IPv6 addresses.

On an IPv6-enabled network, each machine may have multicast, anycast, and unicast addresses. IPv6 is most secure when used in a unicast (one host to another host) situation. Multicast and anycast use one-to-many connections and are not recommended in a SNMPv3 environment.

IPv6 addresses are 128-bits in length and are written as eight groups of four hexadecimal digits. The loopback interface address (or localhost) for IPv4 is 127.0.0.1. This same address in IPv6 notation would be written as 0:0:0:0:0:0:0:1 (or more simply, ::1).

IPv4 addresses can be mapped to IPv6 addresses using several methods. If a server has an IPv4 address of 192.147.142.89, then the IPv4-mapped IPv6 address would be ::CO93:8E59. Other valid IPv4-mapped IPv6 addresses are:

0000:0000:0000:0000:0000:0000:C093:8E50 ::C093:8E50 0000:0000:0000:0000:0000:0000:192.147.142.80 ::192.147.142.80

The same machine might have a link-local address of fe80::203:47ff:feb4:c30. Link-local IPv6 addresses, indicated by the fe80: prefix, are only valid on the immediate network link to which that host interface is connected.

Port numbers are added to IPv6 addresses by enclosing the IP address in square brackets then a colon (:) followed by the port number. Because square brackets can be interpreted as regular expressions, the IP address and port number should be enclosed in double quotes (").

"[fe80::203:47ff:feb4:c30]:280"

Specific requirements for IPv6 addresses may vary depending upon configuration. Please check with a system or network administrator for details.

IPv6 Notation in Dr-Web

IPv6 notation is supported in Dr-Web. However, in URL addresses, a semicolon (`;') must be used instead of a colon (`:'). For example, the IPv6 address fe89::203:baff:fe0f:78ad is represented as follows:

http://localhost:280/subtree:addr=fe89;;203;baff;fe0f;78ad/system

For mibobj tags, a ``normal'' IPv6 address can be used, but brackets (`[' and `]') may not be used because brackets are special in HTML. An example mibobj tag with an IPv6 address is as follows:

<mibobj addr="fe89::203:baff:fe0f:78ad"; port="161'; ... </mibobj>

The use of IPv4 addresses in the URL and mibobj tag should remain unchanged.

IPv6 Talk-Over

The agent now supports IPv6 for communication of SNMP management requests. The agent can be directed to listen for SNMP messages on:

The default behavior for the agent is to bind to port 161 and listen for SNMP messages on both IPv4 and IPv6 addresses. There are two different controls that can modify the default behavior. First, there is a new command-line argument called -bind_ip_proto. Second, the snmpd.cnf configuration file now recognizes an entry type called TransportStack.

The following is a configuration example of an IPv6 address and a sample query from [fe80::a00:20ff:fec0:5b62].

usmUserEntry localSnmpID ipv6V3NoAuthNoPrivUser usmNoAuthProtocol \ usmNoPrivProtocol nonVolatile whereValidRequestsOriginate - - vacmAccessEntry ipv6V3NoAuthNoPrivGroup - usm noAuthNoPriv exact \ All All - nonVolatile vacmSecurityToGroupEntry usm ipv6V3NoAuthNoPrivUser \ ipv6V3NoAuthNoPrivGroupnonVolatile vacmViewTreeFamilyEntry All iso - included nonVolatile snmpTargetAddrEntry ipv6_test transportDomainUdpIpv6 \ [fe80::a00:20ff:fec0:5b62]:0 0 0 whereValidRequestsOriginate none \ nonVolatile [ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff]:0 2048

The following is a sample query using the SNMP Research utility getone from [fe80::a00:20ff:fec0:5b62] with no usmUserEntry in the mgr.cnf file for the user ``ipv6V3NoAuthNoPrivUser.''

% ./getone -v3 -ipv6 fe80::a00:20ff:feff:d674 ipv6V3NoAuthNoPrivUser sysDescr.0 Enter Authentication password : sysDescr.0 = SunOS release:5.8 version:Generic_108528-07 machine:sun4u

For more information and examples, please refer to the product documentation.

IPv6 Talk-About

The implementation of MIB-II supports the following list of RFCs, which define MIB objects capable of representing either IPv4 or IPv6 information:

In previous versions of MIB-II, MIB table definitions were based on the assumption that IP addresses are always 32 bits (4 bytes), which is no longer true. In RFC 2578, an IpAddress is defined as follows:

IpAddress ::= [APPLICATION 0] IMPLICIT OCTET STRING (SIZE (4))

In RFC 4001, an InetAddress is defined like this:

InetAddress ::= TEXTUAL-CONVENTION STATUS current SYNTAX OCTET STRING (SIZE (0..255))

An InetAddress is always used in conjunction with another object that is an InetAddressType, defined as follows:

InetAddressType ::= TEXTUAL-CONVENTION STATUS current SYNTAX INTEGER { unknown(0), ipv4(1), ipv6(2), ipv4z(3), ipv6z(4), dns(16) }

As an example, the previous version of MIB-II defined a table called the ipNetToMediaTable, which is indexed with an object of type IpAddress called ipNetToMediaNetAddress. Here is the definition of an entry in this table from RFC 4293 (originally, RFC 1213):

ipNetToMediaEntry OBJECT-TYPE SYNTAX IpNetToMediaEntry MAX-ACCESS not-accessible STATUS deprecated DESCRIPTION "Each entry contains one IpAddress to `physical' address equivalence." INDEX { ipNetToMediaIfIndex, ipNetToMediaNetAddress } ::= { ipNetToMediaTable 1 }

The latest version of MIB-II replaces the ipNetToMediaTable with an IP version-neutral table called the ipNetToPhysicalEntry. This table is indexed not with an IpAddress, but with a pair of objects that follows the new conventions. The second index, ipNetToPhysicalNetAddressType is an InetAddressType. The third index, ipNetToPhysicalNetAddress is an InetAddress. Here is the definition of an entry in this table from RFC 4293:

ipNetToPhysicalEntry OBJECT-TYPE SYNTAX IpNetToPhysicalEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Each entry contains one IP address to `physical' address equivalence." INDEX { ipNetToPhysicalIfIndex, ipNetToPhysicalNetAddressType, ipNetToPhysicalNetAddress } ::= { ipNetToPhysicalTable 1 }

Here is a demonstration of an SNMP manager (the command-line manager utility getmany) retrieving the same information out of the two different MIB tables mentioned above, both of which are implemented in SNMP Research SNMP agents with IPv6 support enabled.

% getmany -v2c localhost public ipNetToMediaType ipNetToMediaType.2.10.0.1.1 = dynamic(3) ipNetToMediaType.2.10.0.1.2 = dynamic(3) ipNetToMediaType.2.10.0.1.39 = dynamic(3) ipNetToMediaType.2.10.0.1.62 = dynamic(3) ipNetToMediaType.2.10.0.1.89 = dynamic(3) ipNetToMediaType.2.10.0.1.170 = dynamic(3) ipNetToMediaType.2.10.0.1.192 = dynamic(3) ipNetToMediaType.2.10.0.1.234 = dynamic(3) ipNetToMediaType.2.10.0.1.244 = dynamic(3) ipNetToMediaType.2.10.0.1.249 = dynamic(3) % % getmany -v2c localhost public ipNetToPhysicalType ipNetToPhysicalType.1.4.16.254.128.0.2.0.0.0.0.2.224.184.255.254.48.53.45 = dynamic(3) ipNetToPhysicalType.2.1.4.10.0.1.1 = dynamic(3) ipNetToPhysicalType.2.1.4.10.0.1.2 = dynamic(3) ipNetToPhysicalType.2.1.4.10.0.1.39 = dynamic(3) ipNetToPhysicalType.2.1.4.10.0.1.62 = dynamic(3) ipNetToPhysicalType.2.1.4.10.0.1.89 = dynamic(3) ipNetToPhysicalType.2.1.4.10.0.1.170 = dynamic(3) ipNetToPhysicalType.2.1.4.10.0.1.192 = dynamic(3) ipNetToPhysicalType.2.1.4.10.0.1.234 = dynamic(3) ipNetToPhysicalType.2.1.4.10.0.1.244 = dynamic(3) ipNetToPhysicalType.2.1.4.10.0.1.249 = dynamic(3) %

The first execution of getmany retrieves all instances of the ipNetToMediaType object, which is in the ipNetToMediaTable. The first number in the index ('2') refers to the interface number (ipNetToMediaIfIndex). Notice that the remaining numbers in the index form an IPv4 address (ipNetToMediaNetAddress), which always has a length of four so the length is not needed.

The second execution of getmany retrieves all instances of the ipNetToPhysicalType object, which is in the ipNetToPhysicalTable. The first number in the index ('1' or '2') refers to the interface number (ipNetToPhysicalIfIndex). The second number in the index refers to network address type (ipNetToPhysicalNetAddressType), which is '1' for IPv4 and '4' for an autoconfigured IPv6 address. The third number in the index ('4' or '16') is the length of the address that follows. The remaining numbers in the index form the IPv4 or IPv6 address (ipNetToPhysicalNetAddress).

The purpose of this demonstration is twofold:

  1. It shows that the same information for IPv4 and RFC 1213 MIB-II (first getmany) is also represented as new MIB-II objects defined by the new MIB-II RFCs (second getmany).
  2. It shows that the new MIB-II tables (second getmany) also contain information about IPv6. The instance of ipNetToPhysicalType that has an index of ``1.4.16.254.128.0.2.0.0.0.0.2.224.184.255.254.48.53.45'' pertains to an IPv6 address.

Other MIB-II tables defined in RFC 1213 are replaced in the same way as ipNetToMediaTable.

Sales Inquiries

For more information, please call +1 865 579-3311, or send email to info@snmp.com. You can also fill out a Sales Query and one of our sales people will respond to your request quickly.

Licensing terms are available from info@snmp.com.


1. The external links provided on this page are intended for reference and are not necessarily endorsed by SNMP Research International.