IP connectivity between the Thread Network and the LAN (Part IV)

You are here:
Estimated reading time: 2 min

IPv6-to-IPv4 connectivity

To top
Background information

SIIT (Stateless IP/ICMP Translation) and NAT64 are technologies meant to communicate networking nodes which only speak IPv4 with nodes that only speak IPv6.

On the one hand, SIIT, also called Stateless NAT64, mangles packets, simply replacing IPv4 headers and IPv6 headers as described in [RFC 7915]. This method uses 1:1 address mapping and defines a class of IPv6 addresses called IPv4-mapped addresses, which have the prefix ::ffff:0:0/96 and may be written as ::ffff:a.b.c.d, where the IPv4 formatted address a.b.c.d refers to an IPv4-only node. This algorithm can be used in a solution that allows IPv4-only hosts to talk to IPv6-only hosts and vice versa.

On the other hand, Stateful NAT64 masks several IPv6 nodes behind an IPv4 address and thus it uses N:1 address mapping. NAT64 handles an IPv4-embedded IPv6 address as described in [RFC 6052] in which 32 bits have an IPv4 address encoded in them. The prefix can be 64:ff9b::/96 (well-known prefix) or a network-specific one defined by the Administrator. This algorithm can be used when an IPv6-only host needs to communicate with an IPv4-only host. Furthermore, it also uses a special DNS variant, DNS64 [RFC 6147], as a companion protocol.

Stateful NAT64

KTBRN1 Thread Border Router supports Stateful NAT64 off the shell. To this end, the Border Router uses the IPv4 address of its LAN interface.

By means of DHCPv6 server, the Thread devices can obtain additional information of services available in the Border Router such as DNS64, NTP (Network Time Protocol) as described in [RFC 5905] and so on, apart from acquiring an IPv6 address. Thereby, any Thread node can take advantage of these services, for instance, to resolve a domain name into an IP address or to synchronize its system clock to time server.

To be able to use these additional services, they have to be supported by the Stack and/or Application running on the Thread node.

All information related to NAT64 is accessible through KiBRA Web Administration Panel, where the Administrator can check out the current NAT64 status and session table.

 

In the following diagram, it can be observed how NAT64 and DNS64 services work together to deliver a seamless IP connectivity between the Thread Network and Internet.

 

Validation

The test consists on sending out a ping request to www.kirale.com from Thread device R1 and receiving the reply from IPv4 server which is hosting that website.

 

After sending out the ping request, KiBRA will show the corresponding entry in the NAT64 session table in which the IP addressing used by the system can be seen.