IPv6 connectivity
To topBackground information
A Thread Network only operates using IPv6 because the use of IPv4 addressing is not supported for communication within the Thread Network. Individual Thread Network devices support participation in the global IPv6 (Internet Protocol version 6) infrastructure by means of GUAs (Global Unicast Addresses) that are described in [RFC 4291].
The Border Router handles individual global address assignment to Thread nodes by means of DHCPv6 (Dynamic Host Configuration Protocol version 6) messages described in [RFC 3315]. Also the option for nodes to use SLAAC (Stateless Address Auto-configuration) addresses, or even manually configured addresses, based on a prefix advertised by the Border Router is available.
That said, in this case the KTBRN1 Thread Border Router has been configured to advertise the network prefix fd00:7d03:7d03:7d03::/64 to Thread nodes by means of DHCPv6 protocol. Therefore, every Thread device in the network will have an IPv6 address belonging to that network prefix.
The KTBRN1 device also advertises this route on the LAN so that the hosts residing there are be able to reach out the Thread nodes without requiring additional configuration. To this end, the Border Router implements link-local advertisements of IPv6 router addresses and IPv6 routing prefixes using the Neighbor Discovery Protocol (NDP) as specified in [RFC 4861].
Moreover, KTBRN1 device would advertise another IPv6 prefix on the LAN in case to observe that there is none IPv6 subnet previously configured on the LAN, providing a stateless auto-configuration method to the Hosts to obtain a GUA and thus ensuring an IPv6 successful bi-directional communication.
IPv6 addressing
It is time to know what GUA has been assigned to each of Thread devices.
Thread device | IPv6 address |
BR1 | fd00:7d03:7d03:7d03::a2e:79 |
R1 | fd00:7d03:7d03:7d03::a2e:bf |
Going back to the setup, let’s look at the PC’s current configuration (Windows PC) after starting KTBRN1 device up. Type the following commands in a Windows terminal.
Now it is time to redraw the network diagram, adding the gathering information so far and thus, to get a more adjusted outlook of the IPv6 configuration in each of devices.
Validation
In this point, the only thing left is checking out that there is a successful IPv6 bi-directional connectivity between Thread devices and the Host residing on the LAN. The easiest way of verifying that is to ping both BR1’s GUA and R1’s GUA from the PC.
As can be seen in the following capture, R1 sends out an echo response in reply to each echo request received from PC. Also note the IPv6 addressing used by each device.