![]() |
![]() HP OpenVMS Systems Documentation |
![]() |
Compaq TCP/IP Services for OpenVMS
|
Previous | Contents |
The following are supported IPV6 Request for Comments (RFCs):
The Compaq TCP/IP Services for OpenVMS Management Command Reference decribes the basic management commands, including the UNIX commands, you can use to manage the TCP/IP Services software. The Compaq TCP/IP Services for OpenVMS Tuning and Troubleshooting contains more detailed information on the UNIX management commands. The following sections describe only IPv6 extensions to those UNIX management commands.
To use UNIX management commands at the DCL prompt, execute the following command procedure (or put it into your LOGIN.COM so that it executes each time you log in):
$ @SYS$MANAGER:TCPIP$DEFINE_COMMANDS |
UNIX flags and OpenVMS interface names are case sensitive. When entering UNIX management commands at the DCL prompt, you must enclose uppercase UNIX flags and OpenVMS interface names in quotes to preserve the case of the input. |
For the AF_INET6 address family, use the following syntax:
ifconfig interface_id address_family [[ip6prefix] address[/bitmask] [dest_address]] [parameters] |
For the AF_INET6 address family, the address argument is either a host name or the 128-bit IPv6 address, as follows:
x:x:x:x:x:x:x:x |
In this format, each x is the hexadecimal value of a 16-bit piece of the address.
The ip6prefix argument specifies that the interface identifier is to be appended to the address argument when configuring an address on the interface. The interface identifier uniquely identifies an interface on a subnet and is typically the interface's link-layer address. The following are the parameters for the ifconfig command.
Parameters [AF_INET6 only]:
$ ifconfig "WE0" ipv6 |
$ ifconfig "WE0" ip6interfaceid ::abcd:1234 ipv6 |
The iptunnel command creates configured tunnels for sending and receiving IPv6 or IPv4 packets that are encapsulated as the payload of an IPv4 datagram.
The iptunnel command can perform the following three operations:
iptunnel create [-I int-name] [v4-dest] [v4-src] |
$ ifconfig tunnel name down delete abort |
For related information, see RFC 2003, IP Encapsulation within IP,
Perkins, C., October 1996.
B.1.3 netstat Command
The netstat command displays network-related data in various formats.
The parameters -f address_family limit reports to the specified address family. The address families that can be specified include the following:
To display IPv6 routing entries, enter this command:
$ netstat -rnf inet6 |
To display active IPv6 connections, enter this command:
$ netstat -af inet6 |
The traceroute command with the host argument prints the route that packets take to both IPv4 and IPv6 hosts.
The -G @addr1@addr2... parameters (IPv6 only) specify the source route for packets to travel. The route consists of one or more IPv6 node names or addresses. Use the ampersand character (&) to separate multiple addresses. You can specify up to 10 addresses.
The -V version parameter specifies the Internet Protocol (IP) version number to enable the resolver to return the correct address. Use the -V 4 option if you want to issue a traceroute command to a host name (not an IP address) that has both IPv4 and IPv6 addresses, and you want to trace the route to the IPv4 address.
By default, traceroute tries to resolve destination host names as an IPv6 address. If that fails, it resolves the host name as an IPv4 address. You can override this behavior with the -V option. |
The TCPIP$ND6HOST process receives and processes IPv6 Router Advertisement (RA) packets of the Neighbor Discovery Protocol. This enables a system to autoconfigure itself without manual intervention.
The TCPIP$ND6HOST process performs the following functions, based on the contents of IPv6 Router Advertisements it receives:
Do not run the TCPIP$ND6HOST and TCPIP$IP6RTRD processes on the same host, since this may produce unpredictable results. |
The TCPIP$IP6RTRD process sends IPv6 Router Advertisement (RA) packets of the Neighbor Discovery Protocol. These packets enable any listening host to autoconfigure itself without manual intervention. In addition, you can configure TCPIP$IP6RTRD to send and process RIPng messages.
At startup, the TCPIP$IP6RTRD process reads its configuration file for startup information.
Do not run the TCPIP$ND6HOST and TCPIP$IP6RTRD processes on the same host, since this may produce unpredictable results. |
The TCPIP$IP6RTRD.CONF file contains configuration information that is read by the TCPIP$IP6RTRD process at initialization time. This file contains statements that control information sent in Router Advertisements and RIPng messages.
The TCPIP$IP6RTRD.CONF file consists of structured information for each interface in the following format:
interface interface-name { # interface keyword-value pairs, one per line Prefix prefix/length { # prefix keyword-value pairs, one per line } } |
Comments begin with the pound sign (#) and continue to the end of the
line.
B.2.2.1 Interface Keyword Information
Table B-1 lists the interface keywords and range of accepted values described in RFC 2461.
Keyword | Values | Default |
---|---|---|
AdvSendAdvertisements | YES/NO | YES |
MaxRtrAdvInterval | 4--1800 seconds | 600 |
MinRtrAdvInterval | 3--(0.75 * MaxRtrAdvInterval) | 200 |
AdvManagedFlag | 0/1 | 0 |
AdvOtherConfigFlag | 0/1 | 0 |
AdvLinkMTU | Nonnegative integer | 0 |
AdvReachableTime | 0--3,600,000 milliseconds | 0 |
AdvRetransTimer | Nonnegative integer | 0 |
AdvDefaultLifetime | 0, or MaxRtrAdvInterval - 9000 seconds | 1800 |
In addition, the following interface keywords are accepted:
Each address prefix to be configured on the interface must be defined within a prefix block that begins with the keyword Prefix followed by the prefix and length (separated by a slash [/] and optionally followed by an additional address-prefix information block of keyword-value pairs).
Table B-2 lists address prefix keywords and values that are described in RFC 2461.
Prefix Keyword | Values | Default |
---|---|---|
AdvValidLifetime | Integer | 2592000 seconds |
AdvPreferredLifetime | Integer | 604800 seconds |
AdvOnLinkFlag | 0/1 | 1 |
AdvAutonomousFlag | 0/1 | 1 |
Table B-3 lists address prefix keywords and values that are described in RFC 2080.
Prefix Keyword | Values | Default |
---|---|---|
RouteMetric | 1--16 (inclusive) | 1 |
RouteTag | Integer | 0 |
In addition, you can specify the following address-prefix keywords:
For related information, see the following RFCs:
This appendix describes deprecated library functions that were provided in previous Early Adopter Kits (EAKs). Do not use these functions if you are developing new applications. If your existing applications use these functions, see Chapter 7 for changes you should make to your code.
The following table shows the deprecated functions and their replacements:
Deprecated Function | Replacement Function |
---|---|
getipnodebyname | getaddrinfo |
getipnodebyaddr | getnameinfo |
freehostent | freeaddrinfo |
The getipnodebyname function has the following syntax:
#include <netdb.h> struct hostent *getipnodebyname( const char *name, int addr_family, int flags, int *error_num ); |
Parameters:
Description
The getipnodebyname() routine is an evolution of the gethostbyname() routine that enables name lookups in address families other than AF_INET.
The getipnodebyname() routine returns a pointer to a structure of type hostent . Its members specify data obtained from the local TCPIP$ETC:IPNODES.DAT file, TCPIP$HOSTS.DAT file or from one of the files distributed by DNS/BIND.
If multiple addresses are found, the h_addr_list field in the hostent structure contains the addresses.
The <netdb.h> header file defines the hostent structure.
If you are using DNS/BIND, the information is obtained from a name server as configured. When the name server is not running, the getipnodebyname() routine searches both the local TCPIP$ETC:IPNODES.DAT name file for IPv6 and IPv4 addresses and the hosts name file for IPv4 addresses, if the addresses not are found in the TCPIP$ETC:IPNODES.DAT file.
Table C-1 lists the flags parameters and how the processing is affected by the value of the af parameters.
Flag Value | af Value is AF_NET | af Value is AF_INET6 |
---|---|---|
0 |
Searches for A records.
If found, returns IPv4 addresses (h_length=4). If not, returns a NULL pointer. Provides backward compatibility for existing IPv4 applications. |
Searches for AAAA records.
If found, returns IPv6 records (h_length=16). If not, returns a NULL pointer. |
AI_V4MAPPED | Ignored. |
Searches for AAAA records.
If found, returns IPv6 records (h_length=16). If not, searches for A records. If A records are found, returns IPv4-mapped IPv6 addresses (h_length=16). If no A records are found, returns a NULL pointer. |
AI_ALL | AI_V4MAPPED | Ignored. |
Searches for AAAA records.
If found, returns IPv6 addresses (h_length=16). Then searches for A records. If A records are found, returns IPv4-mapped IPv6 addresses (h_length=16). If no A records are found, returns a NULL pointer. |
All flags can be used in any combination to achieve finer control of the translation process. The AI_ADDRCONFIG flag is typically used in combination with other flags to modify the search based on the source address or addresses configured on the system. Table C-2 describes how the AI_ADDRCONFIG flag works by itself.
Flag Value | af Value is AF_NET | af Value is AF_INET6 |
---|---|---|
AI_ADDRCONFIG | Searches for A records only if an IPv4 source address is configured on the system. |
Searches for AAAA records only if an IPv6 source address is configured
on the system.
Searches for A records only if an IPv4 source address is configured on the system. |
Most applications will use a combination of the AI_ADDRCONFIG and AI_V4MAPPED flags to control their search. To simplify this for the programmer, the AI_DEFAULT symbol, which is a logical OR of AI_ADDRCONFIG and AI_V4MAPPED, is defined. Table C-3 describes how AI_DEFAULT directs the search.
Flag Value | af Value is AF_NET | af Value is AF_INET6 |
---|---|---|
AI_DEFAULT |
Searches for A records only if an IPv4 source address is configured on
the system.
If found, returns IPv4 addresses (h_length=4). If not, returns a NULL pointer. |
Searches for AAAA records only if an IPv6 source address is configured
on the system.
If found, returns IPv6 records (h_length=16). If not found and if an IPv4 address is configured on the system, searches for A records. If A records are found, returns IPv4-mapped IPv6 addresses (h_length=16). If no A records are found, returns a NULL pointer. |
The hostent structure returned by the getipnodebyname function is dynamically allocated. You should free this structure and dynamic storage by using the freehostent function (see Section C.3).
Errors
If the getipnodebyname() routine call fails, error_num is set to one of the following values:
Previous | Next | Contents |