@node IPv6 Support
@chapter IPv6 Support

Quagga fully supports IPv6 routing.  As described so far, Quagga supports
RIPng, OSPFv3 and BGP-4+.  You can give IPv6 addresses to an interface
and configure static IPv6 routing information.  Quagga IPv6 also provides
automatic address configuration via a feature called @code{address
auto configuration}.  To do it, the router must send router advertisement
messages to the all nodes that exist on the network.

@menu
* Router Advertisement::        
@end menu

@node Router Advertisement
@section Router Advertisement

@deffn {Interface Command} {no ipv6 nd suppress-ra} {}
Send router advertisment messages.
@end deffn

@deffn {Interface Command} {ipv6 nd suppress-ra} {}
Don't send router advertisment messages.
@end deffn

@deffn {Interface Command} {ipv6 nd prefix @var{ipv6prefix} [@var{valid-lifetime}] [@var{preferred-lifetime}] [off-link] [no-autoconfig] [router-address]} {}
Configuring the IPv6 prefix to include in router advertisements. Several prefix
specific optional parameters and flags may follow:
@itemize @bullet
@item
@var{valid-lifetime} - the length of time in seconds during what the prefix is
valid for the purpose of on-link determination. Value @var{infinite} represents
infinity (i.e. a value of all one bits (@code{0xffffffff})).

Range: @code{<0-4294967295>}  Default: @code{2592000}

@item
@var{preferred-lifetime} - the length of time in seconds during what addresses
generated from the prefix remain preferred. Value @var{infinite} represents
infinity.

Range: @code{<0-4294967295>}  Default: @code{604800}

@item
@var{off-link} - indicates that advertisement makes no statement about on-link or
off-link properties of the prefix.

Default: not set, i.e. this prefix can be used for on-link determination.

@item
@var{no-autoconfig} - indicates to hosts on the local link that the specified prefix
cannot be used for IPv6 autoconfiguration.

Default: not set, i.e. prefix can be used for autoconfiguration.

@item
@var{router-address} - indicates to hosts on the local link that the specified 
prefix 
contains a complete IP address by setting R flag.

Default: not set, i.e. hosts do not assume a complete IP address is placed.
@end itemize
@end deffn

@deffn {Interface Command} {ipv6 nd ra-interval SECONDS} {}
@deffnx {Interface Command} {no ipv6 nd ra-interval} {}
The  maximum  time allowed between sending unsolicited multicast router
advertisements from the interface, in seconds. Must be no less than 3 seconds.

Default: @code{600}
@end deffn

@deffn {Interface Command} {ipv6 nd ra-interval msec MILLISECONDS} {}
@deffnx {Interface Command} {no ipv6 nd ra-interval msec} {}
The  maximum  time allowed between sending unsolicited multicast router
advertisements from the interface, in milliseconds. Must be no less than 30 milliseconds.

Default: @code{600000}
@end deffn
@deffn {Interface Command} {ipv6 nd ra-lifetime SECONDS} {}
@deffnx {Interface Command} {no ipv6 nd ra-lifetime} {}
The value to be placed in the Router Lifetime field of router advertisements
sent from the interface, in seconds. Indicates the usefulness of the router
as a default router on this interface. Setting the value to zero indicates
that the router should not be considered a default router on this interface.
Must be either zero or between value specified with @var{ipv6 nd ra-interval}
(or default) and 9000 seconds.

Default: @code{1800}
@end deffn

@deffn {Interface Command} {ipv6 nd reachable-time MILLISECONDS} {}
@deffnx {Interface Command} {no ipv6 nd reachable-time} {}
The value to be placed in the Reachable Time field in the Router Advertisement
messages sent by the router, in milliseconds. The configured time enables the
router to detect unavailable neighbors. The value zero means unspecified (by
this router). Must be no greater than @code{3,600,000} milliseconds (1 hour).

Default: @code{0}
@end deffn

@deffn {Interface Command} {ipv6 nd managed-config-flag} {}
@deffnx {Interface Command} {no ipv6 nd managed-config-flag} {}
Set/unset flag in IPv6 router advertisements which indicates to hosts that they
should use managed (stateful) protocol for addresses autoconfiguration in
addition to any addresses autoconfigured using stateless address
autoconfiguration.

Default: not set
@end deffn

@deffn {Interface Command} {ipv6 nd other-config-flag} {}
@deffnx {Interface Command} {no ipv6 nd other-config-flag} {}
Set/unset flag in IPv6 router advertisements which indicates to hosts that
they should use administered (stateful) protocol to obtain autoconfiguration
information other than addresses.

Default: not set
@end deffn

@deffn {Interface Command} {ipv6 nd home-agent-config-flag} {}
@deffnx {Interface Command} {no ipv6 nd home-agent-config-flag} {}
Set/unset flag in IPv6 router advertisements which indicates to hosts that
the router acts as a Home Agent and includes a Home Agent Option.

Default: not set
@end deffn

@deffn {Interface Command} {ipv6 nd home-agent-preference} {}
@deffnx {Interface Command} {no ipv6 nd home-agent-preference} {}
The value to be placed in Home Agent Option, when Home Agent config flag is set, 
which indicates to hosts Home Agent preference.

Default: 0
@end deffn

@deffn {Interface Command} {ipv6 nd home-agent-lifetime} {}
@deffnx {Interface Command} {no ipv6 nd home-agent-lifetime} {}
The value to be placed in Home Agent Option, when Home Agent config flag is set, 
which indicates to hosts Home Agent Lifetime. A value of 0 means to place Router Lifetime value.

Default: 0
@end deffn

@deffn {Interface Command} {ipv6 nd adv-interval-option} {}
@deffnx {Interface Command} {no ipv6 nd adv-interval-option} {}
Include an Advertisement Interval option which indicates to hosts the maximum time, 
in milliseconds, between successive unsolicited Router Advertisements.

Default: not set
@end deffn

@example
@group
interface eth0
 no ipv6 nd suppress-ra
 ipv6 nd prefix 2001:0DB8:5009::/64
@end group
@end example

For more information see @cite{RFC2462 (IPv6 Stateless Address Autoconfiguration)}
, @cite{RFC2461 (Neighbor Discovery for IP Version 6 (IPv6))}
and @cite{RFC3775 (Mobility Support in IPv6 (Mobile IPv6))}.
