We'll see the precise basis needed to understand the IPv6 dynamic networking shift, and see the most important consequence : Default Gateway advertisement. We'll see how to configure a network router or a Windows OS router to be an advertised default gateway. Finally, we'll see IPv6 multicast addresses.
IPv6 nodes roles
To have a clear view, we need to lay some basis, because IPv6 is a big thought shift from IPv4.
lets define 3 roles :
a router : performs routing, ie packet forwarding
a host : has an ip address, but doesn't perform routing
a node : a router or a host
So a node is either a host or a router.
A network router, like a D-link DIR 626L, obviously is a router, and this won't change.
A Windows PC, is either a host or a router. It depends of its ability to forward packets. To check this, type :
netsh int ipv6 show int [Idx]
and look at the line ' forwarding '. If forwarding is enabled, then it's considered a router, ipv6-wise.
In IPv6, Routers perform routing, and thus advertise routes and default routes. Hosts don't. Period.
RA - Router Advertisement
Routes are advertised by mean of RA ( Router Advertisement ). RA belong to the NDP ( Network Discovery Protocol ). NDP is part of ICMPv6.
What do Routers advertise by mean of RAs ? They advertise :
. On-link prefixes
. Default gateway
. Autoconfiguration informations ( SLAAC )
. Other autoconfiguration informations : Presence of statefull DHCPv6 server on-link, MTU value to be used.
RA are advertised every 20 to 40 s on average. Hosts receive this beacon, and act accordingly.
Let's see the main part of a RA packet :
The first line to check is Router Lifetime. If it is different from zero, the router is thus advertising itself as a default gateway. This value only refers to the router's default gateway ability, not to some other advertised routes life.
Here is the equivalent, on a routing Windows OS, using : netsh int ipv6 show int [Idx]
Prf ( Default Router Preference ) : sets the priority level of this router to act as a default gateway
If a router is advertising RA packets, and is willing to act as a default gateway, it will set its router lifetime to a value different than zero, and set its preference level ( medium by default )
Hosts, on the other hand, will listen to RAs, and actuate their default gateway accordingly, choosing the router with highest preference value.
If two routers are advertising RAs with equal preference value, the host will register two default gateways on this link.
Which is not a recommended practice.
Default Gateway configuration exemple using a network router
On a network router, like the d-link DIR 626L, you can set the autoconfig to any mode ( Statefull DHCPv6, SLAAC+Stateless DHCPv6, SLAAC+rdnss ) to have default gateway announced.
Only ' No autoconfiguration ' mode will completely disable the RA default gateway announcement ( it sets the router's lifetime to zero ) :
There's nothing more to do, nor option to set.
Default Gateway configuration exemple using a Windows OS Router
On a Windows OS, you too have to set the routing interface ' advertisedefaultroute=enable'. So you need for complete functionning :
advertiserouterlifetime=[x] with x>0
here is the complete command lines, with [Idx1] as Lan interface and [Idx2] as Wan interface :
I include too the complete netsh int ipv6 int [Idx1], for reference, just in case you scrambled your settings, and don't want to do a netsh int ipv6 reset :
Default Gateway using more advanced products
Using consummer level products ( Windows client OS, entry level network router ) at this level stops the control we can fine-tune over the default gateway announcement.
To have more control and options, we need professionnal products, like pro-grade network routers ( 200+ €/$ ), or a Windows Server OS ( using RRAS ). We can then set the Router's preference as an exemple.
Multicast IPv6 addresses
We at this stage encounter a new kind of IPv6 addresses : Multicast IPv6 addresses.
RAs are sent from Routers to this address :
Here is a network sequence using Wireshark :
ff02::1 is a multicast address, whose meaning is ' all nodes link local '. To see the multicast groups a host joined, just type :
netsh int ipv6 show joins
here is a typical Windows 7 host multicast groups with their meaning :
ff01::1 all nodes interface local
ff02::1 all nodes link-local
ff02::c SSDP link-local
ff02::1:3 multicast name resolution link-local
ff02::1:ff00:101 solicited node multicast link-local
IPv6 makes great use of multicast, to reduce broadcast-caused traffic congestion.
the first part ( ff01::, ff02::, ..) encodes the scope :
ff01:: is interface local, ff02:: is link-local, ff05:: is site local, etc ...
the second part ( 1, c, 1:3, ... ) encodes the node type :
1 is a node, 2 is a router, 9 is a RIP router, 1:3 is a DHCP server, etc ... )