Manual:IPv6/ND: Difference between revisions

From MikroTik Wiki
Jump to navigation Jump to search
 
(16 intermediate revisions by 2 users not shown)
Line 13: Line 13:


RouterOS has Ipv6 Neighbor Detection and stateless address autoconfiguration support using Router Advertisement Daemon (RADVD).
RouterOS has Ipv6 Neighbor Detection and stateless address autoconfiguration support using Router Advertisement Daemon (RADVD).
==Node description==
Node is a device that implements IPv6. In IPv6 networks nodes are divided into two types:
* '''Routers''' - a node that forwards IPv6 packets not explicitly addressed to itself.
* '''Hosts''' - any node that is not a router.
Routers and hosts are strictly separated, meaning that router cannot be host and host cannot  be router at the same time.


==Stateless address autoconfiguration==
==Stateless address autoconfiguration==
Line 24: Line 32:


{{ Note | Address autoconfiguration can only be performed on multicast-capable interfaces. }}
{{ Note | Address autoconfiguration can only be performed on multicast-capable interfaces. }}
It is called stateless address autoconfiguration, since there is no need to manage state in the router side. It is a very simple, robust and effective autoconfiguration mechanism.
RouterOS uses RADVD to periodically advertise information about the link to all nodes on the same link. The information is carried by ICMPv6 "router advertisement" packet, and includes following fields:
* IPv6 subnet prefix
* Default router link local address
* Other parameters that may be optional: link MTU, default hoplimit, and router lifetime.
Then host catches the advertisement, and configures the global IPv6 address and the default router. Global IPv6 address is generated from advertised [[Manual:IPv6/Address#Prefix | '''subnet prefix''']] and EUI-64 [[M:IPv6/Address#Interface_Identifier | interface identifier]].
Optionally, the host can ask for an advertisement from the router by sending an ICMPv6 "router solicitation" packet. On linux '''rtsol''' utility transmits the router solicitation packet. If you are running a mobile node, you may want to transmit router solicitations periodically.


===Address states===
===Address states===
Line 32: Line 51:
* <i><b><code>deprecated</code></b></i> - address is still valid, but is not used for new connections.  
* <i><b><code>deprecated</code></b></i> - address is still valid, but is not used for new connections.  
* <i><b><code>invalid</code></b></i> - node can no longer send or receive unicast traffic. An address enters the invalid state after the valid lifetime expires.
* <i><b><code>invalid</code></b></i> - node can no longer send or receive unicast traffic. An address enters the invalid state after the valid lifetime expires.
Image belove ilustrates relation between states and lifetimes.
[[File:ipv6-lifetime.png]]


==Neighbor discovery==
==Neighbor discovery==
Line 38: Line 60:
<br />
<br />


<p>
In this submenu IPv6 Neighbor Discovery (ND) protocol is configured.  
In this submenu IPv6 Neighbor Discovery (ND) protocol is configured.  Nodes (hosts and routers) use Neighbor Discovery to find default routers and to determine the link-layer addresses for neighbors known to reside on attached links and to quickly purge cached values that become invalid.
 
</p>
Neighbor Discovery (ND) is a set of messages and processes that determine relationships between neighboring nodes. ND, compared to IPv4, replaces Address Resolution Protocol (ARP), Internet Control Message Protocol (ICMP) Router Discovery, and ICMP Redirect  and provides additional functionality.
 
ND is used by hosts to:
* Discover neighboring routers.
* Discover addresses, address prefixes, and other configuration parameters.
 
ND is used by routers to:
* Advertise their presence, host configuration parameters, and on-link prefixes.
* Inform hosts of a better next-hop address to forward packets for a specific destination.
 
ND is used by nodes to:
* Both resolve the link-layer address of a neighboring node to which an IPv6 packet is being forwarded and determine when the link-layer address of a neighboring node has changed.
* Determine whether IPv6 packets can be sent to and received from a neighbor.  


===Properties===
===Properties===
Line 51: Line 85:
{{Mr-arg-table
{{Mr-arg-table
|arg=advertise-dns
|arg=advertise-dns
|type=<nowiki>yes | no</nowiki>
|type=yes {{!}} no
|default=no
|default=no
|desc=Option to redistribute DNS server information using RADVD. You will need a running client side software with Router Advertisement DNS support to take advantage of the advertised DNS information.
|desc=Option to redistribute DNS server information using RADVD. You will need a running client side software with Router Advertisement DNS support to take advantage of the advertised [[M:IP/DNS | DNS]] information. [[#Stateless_autoconfiguration_example | <code>Read more >></code>]]
}}
}}


{{Mr-arg-table
{{Mr-arg-table
|arg=advertise-mac-address
|arg=advertise-mac-address
|type=<nowiki>yes | no</nowiki>
|type=yes {{!}} no
|default=yes
|default=yes
|desc=When set, the link-layer address of the outgoing interface is included in the RA.
|desc=When set, the link-layer address of the outgoing interface is included in the RA.
Line 73: Line 107:
{{Mr-arg-table
{{Mr-arg-table
|arg=disabled
|arg=disabled
|type=<nowiki>yes | no</nowiki>
|type=yes {{!}} no
|default=no
|default=no
|desc=Whether item is disabled or not. By default entry is enabled.
|desc=Whether item is disabled or not. By default entry is enabled.
Line 80: Line 114:
{{Mr-arg-table
{{Mr-arg-table
|arg=hop-limit
|arg=hop-limit
|type=<nowiki>unspecified | integer[0..4294967295]</nowiki>
|type=unspecified {{!}} integer[0..4294967295]
|default=unspecified
|default=unspecified
|desc=The default value that should be placed in the Hop Count field of the IP header for outgoing (unicast) IP packets.
|desc=The default value that should be placed in the Hop Count field of the IP header for outgoing (unicast) IP packets.
Line 87: Line 121:
{{Mr-arg-table
{{Mr-arg-table
|arg=interface
|arg=interface
|type=<nowiki>all | string</nowiki>
|type=all {{!}} string
|default=
|default=
|desc=Interface on which to run neighbor discovery.
|desc=Interface on which to run neighbor discovery.
* all - run ND on all running interfaces.
* <var>all</var> - run ND on all running interfaces.
}}
}}


{{Mr-arg-table
{{Mr-arg-table
|arg=managed-address-configuration
|arg=managed-address-configuration
|type=<nowiki>yes | no</nowiki>
|type=yes {{!}} no
|default=no
|default=no
|desc=Flag indicates whether hosts should use stateful autoconfiguration (DHCPv6) to obtain addresses.
|desc=Flag indicates whether hosts should use stateful autoconfiguration (DHCPv6) to obtain addresses.
Line 102: Line 136:
{{Mr-arg-table
{{Mr-arg-table
|arg=mtu
|arg=mtu
|type=<nowiki>unspecified | integer[0..4294967295]</nowiki>
|type=unspecified {{!}} integer[0..4294967295]
|default=unspecified
|default=unspecified
|desc=The MTU option is used in router advertisement messages to insure that all nodes on a link use the same MTU value in those cases where the link MTU is not well known.
|desc=The MTU option is used in router advertisement messages to insure that all nodes on a link use the same MTU value in those cases where the link MTU is not well known.
* unspecified - do not send MTU option.
* '''unspecified''' - do not send MTU option.
}}
}}


{{Mr-arg-table
{{Mr-arg-table
|arg=other-configuration
|arg=other-configuration
|type=<nowiki>yes | no</nowiki>
|type=yes {{!}} no
|default=no
|default=no
|desc=Flag indicates whether hosts should use stateful autoconfiguration to obtain additional information (excluding addresses).
|desc=Flag indicates whether hosts should use stateful autoconfiguration to obtain additional information (excluding addresses).
Line 131: Line 165:
{{Mr-arg-table
{{Mr-arg-table
|arg=ra-lifetime
|arg=ra-lifetime
|type=<nowiki>none | time</nowiki>
|type=none {{!}} time
|default=30m
|default=30m
|desc=
|desc=
Line 138: Line 172:
{{Mr-arg-table
{{Mr-arg-table
|arg=reachable-time
|arg=reachable-time
|type=<nowiki>unspecified | time[0..1h]</nowiki>
|type=unspecified {{!}} time[0..1h]
|default=unspecified
|default=unspecified
|desc=The time that a node assumes a neighbor is reachable after having received a reachability confirmation. Used by the Neighbor Unreachability Detection algorithm (see Section 7.3 of RFC 2461)
|desc=The time that a node assumes a neighbor is reachable after having received a reachability confirmation. Used by the Neighbor Unreachability Detection algorithm (see Section 7.3 of RFC 2461)
Line 145: Line 179:
{{Mr-arg-table-end
{{Mr-arg-table-end
|arg=retransmit-interval
|arg=retransmit-interval
|type=<nowiki>unspecified | time</nowiki>
|type=unspecified {{!}} time
|default=unspecified
|default=unspecified
|desc=The time between retransmitted Neighbor Solicitation messages. Used by address resolution and the Neighbor Unreachability Detection algorithm (see Sections 7.2 and 7.3 of RFC 2461)
|desc=The time between retransmitted Neighbor Solicitation messages. Used by address resolution and the Neighbor Unreachability Detection algorithm (see Sections 7.2 and 7.3 of RFC 2461)
Line 168: Line 202:
{{Mr-arg-table
{{Mr-arg-table
|arg=6to4-interface
|arg=6to4-interface
|type=<nowiki>none | string</nowiki>
|type=none {{!}} string
|default=
|default=
|desc=If this option is specified, this prefix will be combined with the IPv4 address of interface name to produce a valid 6to4 prefix. The first 16 bits of this prefix will be replaced by 2002 and the next 32 bits of this prefix will be replaced by the IPv4 address assigned to interface name at configuration time. The remaining 80 bits of the prefix (including the SLA ID) will be advertised as specified in the configuration file.
|desc=If this option is specified, this prefix will be combined with the IPv4 address of interface name to produce a valid 6to4 prefix. The first 16 bits of this prefix will be replaced by 2002 and the next 32 bits of this prefix will be replaced by the IPv4 address assigned to interface name at configuration time. The remaining 80 bits of the prefix (including the SLA ID) will be advertised as specified in the configuration file.
Line 175: Line 209:
{{Mr-arg-table
{{Mr-arg-table
|arg=autonomous
|arg=autonomous
|type=<nowiki>yes | no</nowiki>
|type=yes {{!}} no
|default=yes
|default=yes
|desc=When set, indicates that this prefix can be used for autonomous address configuration. Otherwise prefix information is silently ignored.
|desc=When set, indicates that this prefix can be used for autonomous address configuration. Otherwise prefix information is silently ignored.
Line 190: Line 224:
{{Mr-arg-table
{{Mr-arg-table
|arg=disabled
|arg=disabled
|type=<nowiki>yes | no</nowiki>
|type=yes {{!}} no
|default=no
|default=no
|desc=Whether item is disabled or not. By default entry is enabled.
|desc=Whether item is disabled or not. By default entry is enabled.
Line 197: Line 231:
{{Mr-arg-table
{{Mr-arg-table
|arg=on-link
|arg=on-link
|type=<nowiki>yes | no</nowiki>
|type=yes {{!}} no
|default=yes
|default=yes
|desc=When set, indicates that this prefix can be used for on-link determination. When not set the advertisement makes no statement about on-link or off-link properties of the prefix. For instance, the prefix might be used for address configuration with some of the addresses belonging to the prefix being on-link and others being off-link.
|desc=When set, indicates that this prefix can be used for on-link determination. When not set the advertisement makes no statement about on-link or off-link properties of the prefix. For instance, the prefix might be used for address configuration with some of the addresses belonging to the prefix being on-link and others being off-link.
Line 204: Line 238:
{{Mr-arg-table
{{Mr-arg-table
|arg=preferred-lifetime
|arg=preferred-lifetime
|type=<nowiki>infinity | time</nowiki>
|type=infinity {{!}} time
|default=1w
|default=1w
|desc=Timeframe (relative to the time the packet is sent) after which generated address becomes "deprecated". Deprecated is used only for already existing connections and is usable until <var>valid-lifetime</var> expires.
|desc=Timeframe (relative to the time the packet is sent) after which generated address becomes "deprecated". Deprecated is used only for already existing connections and is usable until <var>valid-lifetime</var> expires. [[ #Address states | <code>Read more >></code>]]
}}
}}


Line 218: Line 252:
{{Mr-arg-table
{{Mr-arg-table
|arg=valid-lifetime
|arg=valid-lifetime
|type=<nowiki>infinity | time</nowiki>
|type=infinity {{!}} time
|default=4w2d
|default=4w2d
|desc=The length of time (relative to the time the packet is sent) an address remains in the valid state. The <var>valid-lifetime</var> must be greater than or equal to the <var>preferred-lifetime</var>.
|desc=The length of time (relative to the time the packet is sent) an address remains in the valid state. The <var>valid-lifetime</var> must be greater than or equal to the <var>preferred-lifetime</var>. [[ #Address states | <code>Read more >></code>]]


}}
}}
Line 230: Line 264:
|desc=Interface name on which stateless auto-configuration will be running.
|desc=Interface name on which stateless auto-configuration will be running.
}}
}}


==Examples==
==Examples==
Line 238: Line 271:
  Flags: X - disabled, I - invalid, D - dynamic, G - global, L - link-local
  Flags: X - disabled, I - invalid, D - dynamic, G - global, L - link-local
   #    ADDRESS                                    INTERFACE        ADVERTISE
   #    ADDRESS                                    INTERFACE        ADVERTISE
   0  G fc00:1::1/64                                ether1            yes
   0  G 2001:db8::1/64                                ether1            yes
</pre>
</pre>
As in example above <b>advertise</b> flag is enabled which indicates that dynamic <code>/ipv6 nd prefix</code> entry is added.
As in example above <b>advertise</b> flag is enabled which indicates that dynamic <code>/ipv6 nd prefix</code> entry is added.
Line 244: Line 277:
  [admin@MikroTik] > ipv6 nd prefix print
  [admin@MikroTik] > ipv6 nd prefix print
  Flags: X - disabled, I - invalid, D - dynamic
  Flags: X - disabled, I - invalid, D - dynamic
   0 D prefix=fc00:1::/64 interface=ether1 on-link=yes autoconfig=yes
   0 D prefix=2001:db8::/64 interface=ether1 on-link=yes autonomous=yes
       valid-lifetime=4w2d preferred-lifetime=1w
       valid-lifetime=4w2d preferred-lifetime=1w
</pre>
</pre>
Line 255: Line 288:
         valid_lft forever preferred_lft forever
         valid_lft forever preferred_lft forever
  2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
  2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
  <b>    inet6 fc00:1::21a:4dff:fe56:1f4d/64 scope global dynamic
  <b>    inet6 2001:db8::21a:4dff:fe56:1f4d/64 scope global dynamic
         valid_lft 2588363sec preferred_lft 601163sec</b>
         valid_lft 2588363sec preferred_lft 601163sec</b>
     inet6 fe80::21a:4dff:fe56:1f4d/64 scope link
     inet6 fe80::21a:4dff:fe56:1f4d/64 scope link
         valid_lft forever preferred_lft forever
         valid_lft forever preferred_lft forever


The host has received the ''fc00:1::/64'' prefix from the router and configured an address with it.
The host has received the ''2001:db8::/64'' prefix from the router and configured an address with it.


There is also an option to redistribute [[M:IP/DNS | DNS]] server information using RADVD:
There is also an option to redistribute [[M:IP/DNS | DNS]] server information using RADVD:
<pre>
<pre>
  [admin@MikroTik] > ip dns set secondary-dns=fc00:1::2
  [admin@MikroTik] > ip dns set server=2001:db8::2
  [admin@MikroTik] > ip dns print
  [admin@MikroTik] > ip dns print
            primary-dns: 10.0.0.1
           servers: 2001:db8::2
           secondary-dns: fc00:1::2
  ...
  ...
  [admin@MikroTik] > ipv6 nd set [f] advertise-dns=yes
  [admin@MikroTik] > ipv6 nd set [f] advertise-dns=yes
</pre>
</pre>
You will need a running client side software with Router Advertisement DNS support to take advantage of the advertised DNS information.
You will need a running client side software with Router Advertisement DNS support to take advantage of the advertised DNS information.
On Ubuntu/Debian linux distributions you can install '''rdnssd''' package which is capable of receiving advertised DNS address.
<pre>
mrz@bumba:/$ sudo apt-get install rdnssd
</pre>
<pre>
mrz@bumba:/$ cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#    DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 2001:db8::2
mrz@bumba:/$ ping6 www.mikrotik.com
PING www.mikrotik.com(2a02:610:7501:1000::2) 56 data bytes
64 bytes from 2a02:610:7501:1000::2: icmp_seq=1 ttl=61 time=2.11 ms
64 bytes from 2a02:610:7501:1000::2: icmp_seq=2 ttl=61 time=1.33 ms
^C
--- www.mikrotik.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 1.334/1.725/2.117/0.393 ms
mrz@bumba:/$
</pre>


==See Also==
==See Also==

Latest revision as of 13:15, 26 February 2018

Applies to RouterOS: v3, v4 +

Summary

Sub-menu: /ipv6 nd
Standards: RFC 2462, RFC 2461
Package : IPv6


RouterOS has Ipv6 Neighbor Detection and stateless address autoconfiguration support using Router Advertisement Daemon (RADVD).

Node description

Node is a device that implements IPv6. In IPv6 networks nodes are divided into two types:

  • Routers - a node that forwards IPv6 packets not explicitly addressed to itself.
  • Hosts - any node that is not a router.

Routers and hosts are strictly separated, meaning that router cannot be host and host cannot be router at the same time.

Stateless address autoconfiguration

There are several types of autoconfiguration:

  • stateless - address configuration is done by received Router Advertisement messages. These messages include stateless address prefixes and require that host is not using stateful address configuration protocol.
  • stateful - address configuration is done by using stateful address configuration protocol (DHCPv6). Stateful protocol is used if RA messages do not include address prefixes.
  • both - RA messages include stateless address prefixes and require that hosts use a stateful address configuration protocol.

A highly useful feature of IPv6 is the ability to automatically configure itself without the use of a stateful configuration protocol like DHCP ( See example).

Note: Address autoconfiguration can only be performed on multicast-capable interfaces.


It is called stateless address autoconfiguration, since there is no need to manage state in the router side. It is a very simple, robust and effective autoconfiguration mechanism.

RouterOS uses RADVD to periodically advertise information about the link to all nodes on the same link. The information is carried by ICMPv6 "router advertisement" packet, and includes following fields:

  • IPv6 subnet prefix
  • Default router link local address
  • Other parameters that may be optional: link MTU, default hoplimit, and router lifetime.

Then host catches the advertisement, and configures the global IPv6 address and the default router. Global IPv6 address is generated from advertised subnet prefix and EUI-64 interface identifier.

Optionally, the host can ask for an advertisement from the router by sending an ICMPv6 "router solicitation" packet. On linux rtsol utility transmits the router solicitation packet. If you are running a mobile node, you may want to transmit router solicitations periodically.

Address states

When auto-configuration address is assigned it can be in one of the following states:

  • tentative - in this state host verifies that the address is unique. Verification occurs through duplicate address detection.
  • preferred - at this state address is verified as unique and node can send and receive unicast traffic to and from a preferred address. The period of time of preferred state is included in the RA message.
  • deprecated - address is still valid, but is not used for new connections.
  • invalid - node can no longer send or receive unicast traffic. An address enters the invalid state after the valid lifetime expires.

Image belove ilustrates relation between states and lifetimes.

Neighbor discovery

Sub-menu: /ipv6 nd


In this submenu IPv6 Neighbor Discovery (ND) protocol is configured.

Neighbor Discovery (ND) is a set of messages and processes that determine relationships between neighboring nodes. ND, compared to IPv4, replaces Address Resolution Protocol (ARP), Internet Control Message Protocol (ICMP) Router Discovery, and ICMP Redirect and provides additional functionality.

ND is used by hosts to:

  • Discover neighboring routers.
  • Discover addresses, address prefixes, and other configuration parameters.

ND is used by routers to:

  • Advertise their presence, host configuration parameters, and on-link prefixes.
  • Inform hosts of a better next-hop address to forward packets for a specific destination.

ND is used by nodes to:

  • Both resolve the link-layer address of a neighboring node to which an IPv6 packet is being forwarded and determine when the link-layer address of a neighboring node has changed.
  • Determine whether IPv6 packets can be sent to and received from a neighbor.

Properties

Property Description
advertise-dns (yes | no; Default: no) Option to redistribute DNS server information using RADVD. You will need a running client side software with Router Advertisement DNS support to take advantage of the advertised DNS information. Read more >>
advertise-mac-address (yes | no; Default: yes) When set, the link-layer address of the outgoing interface is included in the RA.
comment (string; Default: ) Descriptive name of an item
disabled (yes | no; Default: no) Whether item is disabled or not. By default entry is enabled.
hop-limit (unspecified | integer[0..4294967295]; Default: unspecified) The default value that should be placed in the Hop Count field of the IP header for outgoing (unicast) IP packets.
interface (all | string; Default: ) Interface on which to run neighbor discovery.
  • all - run ND on all running interfaces.
managed-address-configuration (yes | no; Default: no) Flag indicates whether hosts should use stateful autoconfiguration (DHCPv6) to obtain addresses.
mtu (unspecified | integer[0..4294967295]; Default: unspecified) The MTU option is used in router advertisement messages to insure that all nodes on a link use the same MTU value in those cases where the link MTU is not well known.
  • unspecified - do not send MTU option.
other-configuration (yes | no; Default: no) Flag indicates whether hosts should use stateful autoconfiguration to obtain additional information (excluding addresses).
ra-delay (time; Default: 3s) The minimum time allowed between sending multicast router advertisements from the interface.
ra-interval (time[3s..20m50s]-time[4s..30m]; Default: 3m20s-10m) min-max interval allowed between sending unsolicited multicast router advertisements from the interface.
ra-lifetime (none | time; Default: 30m)
reachable-time (unspecified | time[0..1h]; Default: unspecified) The time that a node assumes a neighbor is reachable after having received a reachability confirmation. Used by the Neighbor Unreachability Detection algorithm (see Section 7.3 of RFC 2461)
retransmit-interval (unspecified | time; Default: unspecified) The time between retransmitted Neighbor Solicitation messages. Used by address resolution and the Neighbor Unreachability Detection algorithm (see Sections 7.2 and 7.3 of RFC 2461)

Prefix

Sub-menu: /ipv6 nd prefix


Prefix information sent in RA messages used by stateless address auto-configuration.

Note: The autoconfiguration process applies only to hosts and not routers.


Properties

Property Description
6to4-interface (none | string; Default: ) If this option is specified, this prefix will be combined with the IPv4 address of interface name to produce a valid 6to4 prefix. The first 16 bits of this prefix will be replaced by 2002 and the next 32 bits of this prefix will be replaced by the IPv4 address assigned to interface name at configuration time. The remaining 80 bits of the prefix (including the SLA ID) will be advertised as specified in the configuration file.
autonomous (yes | no; Default: yes) When set, indicates that this prefix can be used for autonomous address configuration. Otherwise prefix information is silently ignored.
comment (string; Default: ) Descriptive name of an item
disabled (yes | no; Default: no) Whether item is disabled or not. By default entry is enabled.
on-link (yes | no; Default: yes) When set, indicates that this prefix can be used for on-link determination. When not set the advertisement makes no statement about on-link or off-link properties of the prefix. For instance, the prefix might be used for address configuration with some of the addresses belonging to the prefix being on-link and others being off-link.
preferred-lifetime (infinity | time; Default: 1w) Timeframe (relative to the time the packet is sent) after which generated address becomes "deprecated". Deprecated is used only for already existing connections and is usable until valid-lifetime expires. Read more >>
prefix (ipv6 prefix; Default: ::/64) Prefix from which stateless address autoconfiguration generates the valid address.
valid-lifetime (infinity | time; Default: 4w2d) The length of time (relative to the time the packet is sent) an address remains in the valid state. The valid-lifetime must be greater than or equal to the preferred-lifetime. Read more >>
interface (string; Default: ) Interface name on which stateless auto-configuration will be running.

Examples

Stateless autoconfiguration example

 [admin@MikroTik] > ipv6 address print
 Flags: X - disabled, I - invalid, D - dynamic, G - global, L - link-local
  #    ADDRESS                                     INTERFACE         ADVERTISE
  0  G 2001:db8::1/64                                ether1            yes

As in example above advertise flag is enabled which indicates that dynamic /ipv6 nd prefix entry is added.

 [admin@MikroTik] > ipv6 nd prefix print
 Flags: X - disabled, I - invalid, D - dynamic
  0 D prefix=2001:db8::/64 interface=ether1 on-link=yes autonomous=yes
       valid-lifetime=4w2d preferred-lifetime=1w

On a host that is directly attached to the router we see that an address was added. The address consists of prefix part (first 64 bits) that takes prefix from the prefix advertisement, and host part (last 64 bits) that is automatically generated from local MAC address:

atis@atis-desktop:~$ ip -6 addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
    inet6 2001:db8::21a:4dff:fe56:1f4d/64 scope global dynamic
       valid_lft 2588363sec preferred_lft 601163sec
    inet6 fe80::21a:4dff:fe56:1f4d/64 scope link
       valid_lft forever preferred_lft forever

The host has received the 2001:db8::/64 prefix from the router and configured an address with it.

There is also an option to redistribute DNS server information using RADVD:

 [admin@MikroTik] > ip dns set server=2001:db8::2
 [admin@MikroTik] > ip dns print
           servers: 2001:db8::2
 ...
 [admin@MikroTik] > ipv6 nd set [f] advertise-dns=yes

You will need a running client side software with Router Advertisement DNS support to take advantage of the advertised DNS information.

On Ubuntu/Debian linux distributions you can install rdnssd package which is capable of receiving advertised DNS address.

mrz@bumba:/$ sudo apt-get install rdnssd
mrz@bumba:/$ cat /etc/resolv.conf 
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 2001:db8::2

mrz@bumba:/$ ping6 www.mikrotik.com
PING www.mikrotik.com(2a02:610:7501:1000::2) 56 data bytes
64 bytes from 2a02:610:7501:1000::2: icmp_seq=1 ttl=61 time=2.11 ms
64 bytes from 2a02:610:7501:1000::2: icmp_seq=2 ttl=61 time=1.33 ms
^C
--- www.mikrotik.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 1.334/1.725/2.117/0.393 ms
mrz@bumba:/$ 

See Also


[ Top | Back to Content ]