Global Unicast
Use for devices or services that need routed reachability through the organization and beyond controlled boundaries.
IPv4 is the older common plan for network addresses. IPv6 is a newer plan with a far larger address space. A gateway is a node that joins one network to another. Picture a new room sensor joining a site. It needs an address, a local path, and a route to the service. Start by asking which links it must use and who owns each address range.
Give the site a clear prefix plan. Mark local, site, and wider reach. Decide how a device learns its address and default route. Then test a join. Record the address, prefix, router message, name lookup, and first useful data path. Repeat the test after a restart. Also test a device that has only the older address plan.
The large address space removes a shortage, but it does not remove design work. Auto setup can reduce hand work, but bad router data can spread a bad choice. Two address plans can ease a move, but they add tests and failure paths. Use the Practitioner layer to build the prefix and join record. Use the Under the Hood layer to inspect neighbor discovery, routing, small-link use, and transition limits. The deeper routes prove how the first device really joins and stays reachable.
IPv6 looks large because it is built for networks where every sensor, gateway, and service can have a stable place without squeezing through scarce IPv4 space. The design question is not just length; it is how identity, routing, discovery, and operations change when address scarcity stops being the main constraint.
Use this chapter to follow an IoT device from local link addressing to routed prefixes and cloud reachability. The goal is to see when IPv6 simplifies the path and when it introduces new evidence you must collect.
IPv6 gives IoT systems a much larger address space than IPv4, but the useful design question is still practical: which addresses are visible outside the site, which are local only, how does a device learn its prefix, and what evidence proves that routing and neighbor discovery work after deployment?
The main shift is that scarcity stops being the design center. A team can give every routed IoT segment a clear prefix without squeezing cameras, gateways, controllers, and maintenance tools into tiny pools. That does not make the network automatically safe. Address scope still decides where traffic can be routed, and security policy still decides which device, service, or management plane should be reachable.
Use IPv6 to make addressing and routing explicit. Do not treat the large address space as a reason to skip prefix planning, local-scope rules, or troubleshooting evidence.
Before using the large address space as a design argument, inspect Figure 14.1 to see what every IPv6 packet actually carries. The header fields expose the routing, lifetime, traffic, and next-protocol evidence that operations must be able to capture.
Read Figure 14.1 from version, traffic class, and flow label through payload length, next header, and hop limit, then finish with the 128-bit source and destination addresses. The fixed sequence separates per-packet forwarding information from optional extension headers. That distinction connects explicit prefix planning to packet-trace evidence when reachability, policy, or path lifetime fails.
For IoT, IPv6 is especially important when devices use IP-based mesh or constrained-network technologies such as Thread and 6LoWPAN. It supports end-to-end addressing without IPv4-style NAT as the default assumption, but firewalls, routing policy, access control, and device identity still matter. A globally routable address does not mean a device should be reachable by everyone.
A practical IPv6 inventory distinguishes global unicast addresses, unique local addresses, link-local addresses, multicast groups, and any temporary privacy addresses that devices may form. That distinction keeps exposure review concrete: a cloud-facing gateway, an internal building controller, and a same-link commissioning tool can all speak IPv6, but they should not have the same routing scope or firewall intent.
IPv6 addresses are 128 bits long. The usual human notation writes those bits as eight 16-bit groups, or hextets, separated by colons. Leading zeroes inside a hextet may be omitted, and one consecutive run of all-zero hextets may be written with ::. Use compressed notation to keep logs readable, but keep enough original context to prove that two abbreviated addresses are the same endpoint.
Use for devices or services that need routed reachability through the organization and beyond controlled boundaries.
Use for private site addressing where the network should be routable internally but not advertised publicly.
Use on every interface for local neighbor discovery, router discovery, and same-link operations.
Use for group communication such as discovery and controlled one-to-many network operations.
Some IPv6 prefixes have special meanings that should appear in the review record when they are used. ::/128 is the unspecified address used before an interface has a usable address, ::1/128 is loopback, ::ffff:0:0/96 represents IPv4-mapped addresses, fc00::/7 is unique-local space, fe80::/10 is link-local space, and 2000::/3 is the current global-unicast range. These labels are scope evidence, not just notation trivia.
The practical IPv6 plan starts with readable prefixes and standard subnet boundaries. Use site, building, floor, zone, or device-class fields where they help operations teams understand a route. Keep individual LAN-style device networks as standard IPv6 subnets so stateless autoconfiguration and neighbor discovery behave predictably.
Pause at Figure 14.2 before carrying practitioner: build the prefix and autoconfiguration record forward. Its visual vocabulary joins IPv6 notation: compress for to reading, expand for checking, which frames address notation should be short enough to read and consistent enough to troubleshoot.
Compare IPv6 notation: compress for with reading, expand for checking inside the visual at Figure 14.2. Next find FULL FORM, which completes the scope of address notation should be short enough to read and consistent enough to troubleshoot. The decision in practitioner: build the prefix and autoconfiguration record must preserve that labelled boundary.
Spend prefix bits on operational meaning, not on address conservation. The plan should make it easy to tell which site, device class, or network segment owns an address.
A common device startup path is: form a link-local address, verify uniqueness on the link, discover routers, receive a prefix in a router advertisement, and form one or more usable addresses. DHCPv6 may still be used where the network needs managed configuration, but many IoT networks rely on SLAAC plus clear routing and firewall policy.
Record the autoconfiguration contract at the same level as the prefix plan. For each segment, capture the expected prefix length, router-advertisement source, valid and preferred lifetimes, default-router behavior, DNS advertisement method, DHCPv6 managed or other-configuration flags, and whether devices use stable interface identifiers or rotating temporary identifiers. Standard SLAAC behavior expects a normal LAN-style prefix, commonly a /64, so a nonstandard prefix choice must be tested against the actual device stack before rollout.
The host portion also needs an evidence rule. Older examples often show a modified EUI-64 interface identifier derived from a 48-bit MAC address by inserting ff:fe in the middle and flipping the universal/local bit. That mechanism is useful to understand, but many modern devices use stable private or temporary random identifiers instead. A rollout record should say which identifier method is expected and whether privacy, inventory, or troubleshooting requirements depend on it.
Use Figure 14.3 to prepare the decision in practitioner: build the prefix and autoconfiguration record. The diagram names 6LoWPAN Header Compression and IPv6 header, the two anchors needed to assess 6lowpan keeps ipv6 usable on constrained links by compressing predictable header fields.
Use IPv6 header to test 6LoWPAN Header Compression in the diagram at Figure 14.3. Then inspect 40 bytes as the final qualifier on 6lowpan keeps ipv6 usable on constrained links by compressing predictable header fields. That sequence keeps practitioner: build the prefix and autoconfiguration record tied to what is visibly labelled.
Record whether the prefix comes from an ISP, enterprise allocation, lab block, site router, or border router.
Map prefixes to site, floor, device class, link type, trust zone, or operational owner.
State whether devices use SLAAC, DHCPv6, stable private identifiers, temporary identifiers, or gateway-managed addressing.
Keep router advertisements, neighbor discovery traces, route tables, firewall rules, and address inventory samples.
Commissioning should prove both address formation and path control. A useful record includes the link-local address, the selected global or unique-local address, duplicate-address detection result, observed router advertisement, default route, first-hop neighbor entry, firewall decision for expected services, and a negative test showing that unintended management access is blocked. For low-power IPv6 networks, also record the border-router prefix, mesh route status, and whether header compression or fragmentation changes the packet path.
Under the hood, IPv6 success depends on local discovery and routed policy working together. Neighbor Discovery replaces the IPv4 ARP habit, router advertisements shape autoconfiguration, and multicast is part of basic local operation. If these local behaviors are filtered, spoofed, misconfigured, or unobserved, the addressing plan can look correct while devices still fail in the field.
Neighbor Discovery uses ICMPv6 messages rather than broadcast ARP. Router solicitations and router advertisements establish default-router and prefix information. Neighbor solicitations and neighbor advertisements resolve link-layer reachability and support duplicate-address detection. Solicited-node multicast limits discovery traffic to a relevant group, but switches, firewalls, and low-power border routers still need to pass the required ICMPv6 and multicast behavior for the link.
The fixed IPv6 base header is 40 bytes: Version, Traffic Class, Flow Label, Payload Length, Next Header, Hop Limit, Source Address, and Destination Address. Optional extension headers, such as Hop-by-Hop Options, Routing, Fragment, Destination Options, Authentication Header, and Encapsulating Security Payload, are chained through the Next Header field. In IoT networks, extension-header support should be verified on the actual path because constrained stacks, firewalls, and gateways may handle optional headers differently from ordinary Ethernet servers.
Before assigning individual IPv6 addresses, inspect Figure 14.4 to see how a larger deployment can encode operational boundaries in its prefixes. The diagram matters because aggregation and incident scope depend on the hierarchy, not on the size of the address space alone.
Read Figure 14.4 from the parent allocation into district branches, then compare the sensor, lighting, parking, industrial, and reserved subnets beneath them. Each branch gives routing and operations a summarizable boundary while leaving room for growth. The hierarchy connects prefix planning to neighbor, route, firewall, and ownership evidence: when a branch fails, responders can narrow both the affected estate and the responsible control plane.
The constrained-link evidence line above has a specific shape on an IEEE 802.15.4 mesh. A 6LoWPAN node can identify itself two ways: a 64-bit extended address that behaves like the modified-EUI-64 identifier described above, or a shorter 16-bit address that a PAN coordinator assigns after the node associates. Because 802.15.4 frames are small and do not support IPv6 multicast directly, a leading dispatch pattern in the compressed frame tells the receiver what follows: an ordinary compressed IPv6 header, a mesh-addressing header carrying the originator and final 6LoWPAN addresses plus a hop-count field for multi-hop forwarding, or a fragmentation header carrying a datagram tag and offset when a packet does not fit in one frame. Border-router and mesh-route evidence should record which of these header types a segment actually uses, since a stack that only expects plain compressed headers will not reassemble a fragmented one.
Transition design should be explicit. Dual-stack devices need both IPv4 and IPv6 monitoring. Translation boundaries need clear ownership because failures can look like DNS, address, firewall, or application faults. Tunnels can solve reachability but add another operating dependency. The safest plan names which path is native IPv6, which path is translated, and what test proves each path after a network or firmware change.
IPv6 also changes some failure clues. There is no IPv4-style header checksum, routers do not fragment packets in transit, and path MTU discovery depends on ICMPv6 Packet Too Big messages returning to the sender. A firewall that blocks all ICMPv6 can therefore break healthy-looking traffic. On constrained links, 6LoWPAN compression saves bytes but does not remove the need to inspect fragment loss, neighbor-cache churn, route repair, and retransmission pressure.
Use the address-bootstrap failure preset below when the symptom is only “no application connection.” It stops at the first failed prerequisite and leaves later DNS and service checks explicitly untested. Then select the DAD-conflict case to compare a missing address response with an IPv6 address that forms but never becomes usable.
Carry the first failed stage, authoritative trace link, and untested higher layers into the incident record. This prevents an application timeout from becoming evidence against every layer at once.
Reopen the IPv6 design when a new device class appears, a link becomes low-power or lossy, a site gains a new border router, cloud endpoints stay IPv4-only, prefixes are renumbered, or neighbor-discovery evidence no longer matches field behavior.
A streetlight reports 2001:0db8:0000:0000:0217:5aff:fe3c:0042, which is hard to read aloud beside the cabinet. Figure 14.2 shows the full and compressed forms, while Figure 14.1 keeps the fixed header fields separate from address notation. Remove leading zeroes in each group and compress the longest single run of zero groups to obtain 2001:db8::217:5aff:fe3c:42. The 128 IPv6 bits have not changed.
On a constrained radio, Figure 14.3 begins with the 40-byte IPv6 base header and removes predictable context from the transmitted form. Header compression does not shorten the logical IPv6 address space; it avoids repeating fields that both ends can reconstruct on that link.
Keep the IPv6 prefix source beside each configured address.
The IPv6 base header also carries a Hop Limit. Each router reduces it, and a packet is discarded when the value reaches zero. Hop Limit bounds a routing loop; it does not state how many radio retries occurred on one low-power link.
2001:db8::1::42 be a valid compressed address? Check: No. Two :: marks would make the number of omitted zero groups ambiguous.IPv6 for IoT is not only a bigger address space. It is a routing, discovery, scope, and operations design. Plan which device groups use global, unique-local, link-local, and multicast addressing; define how devices form addresses; keep standard subnet behavior where autoconfiguration expects it; and collect evidence for neighbor discovery, routing, security policy, constrained links, and IPv4 coexistence.
Use IPv6 to make IoT addressing explicit and maintainable: plan prefixes by operational meaning, verify autoconfiguration and neighbor discovery, and document transition boundaries where IPv4 remains.