Copyright (C) 2003, Sun Microsystems, Inc. All Rights Reserved
The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
/usr/lib/inet/in.ndpd [-adt] [-f config_file]
router discovery;
prefix discovery;
parameter discovery;
invocation of stateful address autoconfiguration;
stateless address autoconfiguration; and
privacy extensions for stateless address autoconfiguration.
Other aspects of Neighbor Discovery are implemented by ip6(4P), including:
address resolution;
neighbor unreachability detection; and
redirect.
The duplicate address detection function is implemented by the system kernel.
in.ndpd is managed by the service management facility (SMF), by means of the service identifier:
svc:/network/routing/ndp:default
If the /etc/inet/ndpd.conf file does not exist or does not set the variable AdvSendAdvertisements to true for a network interface, then in.ndpd will make the node a host for that interface, that is, sending router solicitation messages and then using router advertisement messages it receives to autoconfigure the node. Note that in.ndpd only autoconfigures the addresses of global or site-local scope from the prefix advertisement.
If AdvSendAdvertisements is set to true for an interface, then in.ndpd will perform router functions on that interface, that is, sending router advertisement messages to autoconfigure the attached hosts, but not use any advertisements it receives for autoconfiguration. However, when sending advertisements, in.ndpd will use the advertisements it sends itself to autoconfigure its prefixes.
Stateless autoconfiguration requires no manual configuration of hosts, minimal (if any) configuration of routers, and no additional servers. The stateless mechanism enables a host to generate its own addresses and uses local information as well as non-local information that is advertised by routers to generate the addresses. in.ndpd will plumb logical interfaces for each of these addresses.
Stateful autoconfiguration involves the dhcpagent(8) daemon and the use of the DHCPv6 protocol. The dhcpagent daemon is responsible for plumbing the logical interfaces for the acquired addresses, maintaining the leases, and handling duplicate addresses. in.ndpd starts the dhcpagent daemon automatically and signals when DHCPv6 should be started. in.ndpd also detects when dhcpagent configures the logical interfaces, and sets the appropriate prefix length on each according to received Routing Advertisement messages. in.ndpd will not stop dhcpagent; use ifconfig(8) to control dhcpagent if necessary.
Temporary addresses that are autoconfigured for an interface can also be implemented. A temporary address token is enabled for one or more interfaces on a host. However, unlike standard, autoconfigured IPv6 addresses, a temporary address consists of the site prefix and a randomly generated 64 bit number. This random number becomes the interface ID segment of the IPv6 address. A link-local address is not generated with the temporary address as the interface ID.
If the kernel detects a duplicate temporary address, in.ndpd will automatically choose another.
Routers advertise all prefixes that have been assigned on the link. IPv6 hosts use Neighbor Discovery to obtain a subnet prefix from a local router. Hosts automatically create IPv6 addresses by combining the subnet prefix with an interface IDs that is generated from an interface's MAC address. In the absence of routers, a host can generate only link-local addresses. Link-local addresses can only be used for communication with nodes on the same link.
For information on how to enable IPv6 address autoconfiguration, see System Administration Guide: IP Services.
# routeadm -m ndp:default key=value
-a
Turn off stateless and stateful address auto configuration. When set, the daemon does not autoconfigure any addresses and does not renumber any addresses. This option does the same thing as the following lines in ndpd.conf(5):
ifdefault StatefulAddrConf off ifdefault StatelessAddrConf offUse of this option is equivalent to setting the stateless_addr_conf property to false.
Turn on large amounts of debugging output on stdout. When set, the program runs in the foreground and stays attached to the controlling terminal. Use of this option is equivalent to setting the debug property to true.
Use config_file for configuration information instead of the default /etc/inet/ndpd.conf. Use of this option is equivalent to setting the config_file property to the configuration file to be used.
Turn on tracing (printing) of all sent and received packets to stdout. When set, the program runs in the foreground and stays attached to the controlling terminal. As such, this option cannot be run under the SMF.
Configuration file. This file is not necessary on a host, but it is required on a router to enable in.ndpd to advertise autoconfiguration information to the hosts.
Narten, T., Nordmark, E., Simpson, W. RFC 2461, Neighbor Discovery for IP Version 6 (IPv6). The Internet Society. December 1998.
Thomson, S., Narten, T. RFC 2462, IPv6 Stateless Address Autoconfiguration. The Internet Society. December 1998.
Narten, T., and Draves, R. RFC 3041, Privacy Extensions for Stateless Address Autoconfiguration in IPv6. The Internet Society. January 2001.
svc:/network/routing/ndp:default
Administrative actions on this service, such as enabling, disabling, or requesting restart, can be performed using svcadm(8) or routeadm(8).