@node IPv6 Support
@chapter IPv6 Support

Frr fully supports IPv6 routing.  As described so far, Frr supports
RIPng, OSPFv3, and BGP-4+.  You can give IPv6 addresses to an interface
and configure static IPv6 routing information.  Frr 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.

Previous versions of Frr could be built without IPv6 support.  This is
no longer possible.

@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 <1-1800>} {}
@deffnx {Interface Command} {no ipv6 nd ra-interval [<1-1800>]} {}
The  maximum  time allowed between sending unsolicited multicast router
advertisements from the interface, in seconds.

Default: @code{600}
@end deffn

@deffn {Interface Command} {ipv6 nd ra-interval msec <70-1800000>} {}
@deffnx {Interface Command} {no ipv6 nd ra-interval [msec <70-1800000>]} {}
The  maximum  time allowed between sending unsolicited multicast router
advertisements from the interface, in milliseconds.

Default: @code{600000}
@end deffn

@deffn {Interface Command} {ipv6 nd ra-lifetime <0-9000>} {}
@deffnx {Interface Command} {no ipv6 nd ra-lifetime [<0-9000>]} {}
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 <1-3600000>} {}
@deffnx {Interface Command} {no ipv6 nd reachable-time [<1-3600000>]} {}
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).

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 <0-65535>} {}
@deffnx {Interface Command} {no ipv6 nd home-agent-preference [<0-65535>]} {}
The value to be placed in Home Agent Option, when Home Agent config flag is set, 
which indicates to hosts Home Agent preference. The default value of 0 stands
for the lowest preference possible.

Default: 0
@end deffn

@deffn {Interface Command} {ipv6 nd home-agent-lifetime <0-65520>} {}
@deffnx {Interface Command} {no ipv6 nd home-agent-lifetime [<0-65520>]} {}
The value to be placed in Home Agent Option, when Home Agent config flag is set, 
which indicates to hosts Home Agent Lifetime. The default value of 0 means to
place the current 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

@deffn {Interface Command} {ipv6 nd router-preference (high|medium|low)} {}
@deffnx {Interface Command} {no ipv6 nd router-preference [(high|medium|low)]} {}
Set default router preference in IPv6 router advertisements per RFC4191.

Default: medium
@end deffn

@deffn {Interface Command} {ipv6 nd mtu <1-65535>} {}
@deffnx {Interface Command} {no ipv6 nd mtu [<1-65535>]} {}
Include an MTU (type 5) option in each RA packet to assist the attached hosts
in proper interface configuration. The announced value is not verified to be
consistent with router interface MTU.

Default: don't advertise any MTU option
@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{RFC4861 (Neighbor Discovery for IP Version 6 (IPv6))}
, @cite{RFC6275 (Mobility Support in IPv6)}
and @cite{RFC4191 (Default Router Preferences and More-Specific Routes)}.
