IPv6 Address
Representation
and Types
1
IPv6 Address Representation
• IPv6 address is 128 bits
• Number of IPv6 addresses : 2^128 ~ 3.4 x 1038
• IPv6 address is represented in hexadecimal
– 4-bits (nibble) represent a hexadecimal digit
– 4 nibbles (16-bits) make a hextet
– represented as eight hextets (4 nibbles or 16 bits), each
separated by a colon (:)
2001:ABCD:1234::DC0:A910 nibble
1010 1001 0001 0000
Hextet
2
IPv6 Address Representation (2)
2001:0DB8:0000:0000:0000:036E:1250:2B00
• Abbreviated form
2001:0DB8:0000:0000:0000:036E:1250:2B00 Leading 0s
– Leading zeroes (0) in any hextet can be omitted
2001:DB8:0:0:0:36E:1250:2B00 Sequence of 0s
– A double colon (::) can replace contiguous hextet
segments of zeroes
2001:DB8::36E:1250:2B00 Double colons
– (::) can only be used once!
3
IPv6 Address Representation (3)
• Double colons (::) representation
– RFC5952 recommends that the largest set of :0: be replaced
with :: for consistency
2001:0:0:0:2F:0:0:5
2001::2F:0:0:5 instead of 2001:0:0:0:2F::5
– Where there is same number of :0:, the first set be replaced
with ::
2001:DB8:0:0:2F:0:0:5
2001:DB8::2F:0:0:5 instead of 2001:DB8:0:0:2F::5
• Prefix Representation
– Representation of prefix is similar to IPv4 CIDR
→ prefix/prefix-length
2001:DB8::/40
4
Quiz
Please write the compressed format of these
addresses:
1. 2001:0db8:0000:0000:0000:0000:0000:0000
2. 2001:0db8:0000:0000:d170:0000:0100:0ba8
3. 2001:0db8:0000:0000:00a0:0000:0000:10bc
4. 2001:0db8:0fc5:007b:ab70:0210:0000:00bb
IPv6 Addressing Model RFC
4291
• Unicast Address
– Assigned to a single interface
B
– Packet sent only to the interface with that address
A
B
• Anycast Address
– Same address assigned to more than one interface B
(on different nodes)
– Packet for an anycast address routed to the nearest A
interface (routing distance) B
• Multicast Address
– group of interfaces (on different nodes) join a
multicast group B
– A multicast address identifies the interface group
– Packet sent to the multicast address is replicated to A
all interfaces in the group
6
Overview of IPv6 Address Types
IPv6 Addressing
Unicast Anycast Multicast
Assigned Solicited Node
ff00::/8 ff02::1:ff00:0000/104
Unspecified Embedded Unique Local
Loopback Global Unicast Link-Local
Address IPv4
::/128 ::1/128 ::/80 2000::/3 fe80::/10 fc00::/7
Figure 1: IPv6 Address Types
Figure 1: Adapted from Graziani, R. (2013). IPv6 Fundamentals: A Straightforward Approach to Understanding IPv6. USA: Cisco Press, Figure 4-1.
IPv6 Address Types.
Special Unicast Addresses
• Unspecified Address (absence of a address)
::/128
• Loopback (test OSI/TCP-IP stack implementation)
::1/128
8
Global Unicast Addresses
• Globally unique and routable IPv6 address
• The Internet Assigned Numbers Authority
(IANA) currently assigns IPv6 addresses only out
of the binary range starting with 001, that means
2000::/3.
• IANA has allocated Global Unicast Addresses to
RIRs (Regional Internet Registry). There are five
RIRs. For example, APNIC has been allocated
2400::/12.
More details of allocation is on this link:
https://www.iana.org/assignments/ipv6-unicast-address-assignments/ipv6-unicast-address-assignments.xhtml
9
Global Unicast Addresses
• RIRs assign /32 to ISPs
3 bits
001 RIR ISP Global Unicast Address
9 bits
20 bits
/3 /12 /32
128 bits
10
IPv6 Addressing Structure
RFC
Network Prefix 6177
Customer(Site) Prefix Subnet ID Interface ID
48 bits 16 bits 64 bits
• Customer (Site) Prefix: assigned to a customer site
– Group of subnets
– ISPs/RIRs ‘would’ assign /48 (/56 to customers)
• Subnet ID: identifies the subnets (links) within a site
• Interface ID: host portion of the IPv6 address
– how many hosts within a subnet
11
IPv6 Addressing Structure
0 63 64 127
Network Prefix Interface ID
32
16
16
ISP /32
64
Customer Site /48
End Site Subnet /64 Device 128 Bit Address
Link-local Unicast Addresses
• Auto configured address (similar to APIPA)
– Every IPv6 enabled device must have a link-local address
– To communicate with other IPv6 devices on the same link
– FE80::/10
• The link-local address is used by routers as the
next-hop address when forwarding IPv6 packets
• All IPv6 hosts on a subnet/link, uses the router’s
link-local as the default gateway
– Routers use the link-local as the source in ND-RA
messages
13
Zone IDs for Link-locals
Example 1 - fe80::4e0:37e4:c5d1:c845%en0
Example 2 - fe80::aede:48ff:fe00:12%15
• Zone IDs help uniquely distinguish which
link/subnet an interface is connected to
• To ping a remote IPv6 node, use your interface zone
ID (so that the response packet has a path)
14
Quiz - Zone ID
fe80::b1%12 PC-B
fe80::a1%20
PC-A
fe80::a2%18 fe80::c1%en0
PC-C
• Please write down the commands:
– PC-A ping PC-B
– PC-A telnet PC-C
15
Unique Local Unicast Addresses
• Similar to RFC1918 addresses (but within a “site”)
– Unique within a site
– Routable within site(s)
– Not ‘expected’ to be routed on the internet
FC00::/7
| 7 bits | 1 | 40 bits | 16 bits. | 64 bits |
+--------+--+--------------+------------+---------------------------+
| Prefix | L | Global ID | Subnet ID | Interface ID. |
+--------+--+--------------+------------+---------------------------+
L: 1 for local significance
Global ID: 40-bit pseudo-random
16
Modified EUI-64 format
• Allows IPv6 device to compute a
unique 64 bit Interface ID using
the interface MAC address (48 bit)
OUI NIC
– MAC address is split into two 24 bit
halves 00 21 2F 10 A2 48
• OUI and NIC
– Then 0xFFFE is inserted between the
two halves 00 21 2F FF FE 10 A2 48
• 0xFFFE is reserved value, not assigned to any
OEM
0000 0000
– Invert 7th
bit (U/L) of the OUI to get 0000 0010
the EUI-64 address
• addresses assigned to OEMs have this bit set
to 0 to indicate global uniqueness 02 21 2F FF FE 10 A2 48
• Set to 1 (invert 0) to indicate IEEE identifier
(MAC( is used, or 0 if otherwise
(serials/tunnels).
17
IPv6 Addressing EUI-64
LAN: 2001:db8:213:1::/64
Eth0
interface Ethernet0
ipv6 address 2001:db8:213:1::/64 eui-64 MAC address: 0060.3e47.1530
router# show ipv6 interface Ethernet0
Ethernet0 is up, line protocol is up
IPv6 is enabled, link-local address is FE80::260:3EFF:FE47:1530
Global unicast address(es):
2001:db8:213:1:260:3EFF:FE47:1530, subnet is 2001:db8:213:1::/64
Joined group address(es):
FF02::1:FF47:1530
FF02::1
FF02::2
MTU is 1500 bytes
IPv6 Interface ID – Privacy
• Overcome the ability to track (interface ID based on
MAC address):
– Temporary address (changes): outgoing connections RFC
– Secured address: incoming connection 4941
Temp > 2001:db8:a000:4:84a3:49b6:1919:26fb
Secured> 2001:db8:a000:4:aede:48ff:fe08:112
Temp > 2001:db8:a000:4:14e6:d4a3:815d:91dd
• Ease network management yet improve privacy:
– Stable interface identifiers for each subnet
Temp > 2001:db8:a000:4:84a3:49b6:1919:26fb RFC
7217
Secured> 2001:db8:a000:4:cbb:347c:6215:1083
19
Well-known Multicast Addresses
• Multicast addresses can only be destinations and never a
source
FF00::/8
• Pre-defined multicast addresses:
– FF02::1 All nodes multicast
• All IPv6 enabled devices join this multicast group
• Packets sent to this address is received by all nodes
– FF02::2 All routers multicast
• The moment IPv6 is enabled on a router (#ipv6 unicast-routing), the
router becomes a member of this group
– FF02::1:FFXX:XXXX/104 Solicited Node multicast
• NS messages (~ARP request) are sent to this address
• Uses the least significant 24-bits of its unicast/anycast address
• Must compute and join for every unicast (link-local & global) on a interface
20
Well-known Multicast Addresses
• Pre-defined multicast addresses:
– FF02::1:2 All DHCP Servers/Relay Agents
• Clients use this multicast address to discover any DHCPv6 servers/relays
on the local link (link-scoped)
– FF05::1:3 All DHCP servers
• Generally used by Relays to talk to servers
• Site-scoped
21
ICMPv6 Neighbor Discovery
• Router Solicitation (RS):
RFC
– sent by IPv6 host to "all routers" multicast to request RA 4861
• Router Advertisement (RA):
– sent by a IPv6 router to the "all nodes" multicast (200 secs)
– IPv6 prefix/prefix length, and default gateway
• Neighbor Solicitation (NS):
– sent by IPv6 host to the "solicited node" multicast to find the MAC
address of a given IPv6 address (~ARP request).
• Neighbor Advertisement (NA):
– sent in response to a NS and informs of its MAC address.
• ICMPv6 Redirect:
– informs the source of a better next-hop
22
IPv6 Neighbor Discovery (ND)
• Host A would like to communicate with Host B
– Global address 2406:6400::10
– Link-local fe80::226:bbff:fe06:ff81
– MAC address 00:26:bb:06:ff:81
• Host B IPv6 global address 2406:6400::20
– Link-local UNKNOWN (if GW outside the link)
– MAC address UNKNOWN
• How will Host A create L2 frame and send to Host
B?
IPv6 Neighbor Discovery (ND)
24
IPv6 Address Resolution
1 Multicast
ICMPv6 NS Type135
SMAC: 00:26:BB:06:FF:81 DMAC: 33:33:FF:00:00:20 RFC2464 – 33:33:xx:xx:xx:xx
Source IPv6: Destination IPv6:
2406:6400::0010 FF02:0:0:0:0:1:FF00:0020
Unicast 2
ICMPv6 NA Type136
SMAC: 00:26:BB:06:FF:82 DMAC: 00:26:BB:06:FF:81
Source IPv6: Destination IPv6:
2406:6400::0020 2406:6400::0010
25
IPv6 Address Resolution
3 Unicast
IPv6 Packet
SMAC: 00:26:BB:06:FF:81 DMAC: 00:26:BB:06:FF:82
Source IPv6: Dest IPv6:
2406:6400::0010 2406:6400::0020
Payload
Unicast 4
IPv6 Packet
SMAC: 00:26:BB:06:FF:82 DMAC: 00:26:BB:06:FF:81
Source IPv6: Dest IPv6:
2406:6400::0020 2406:6400::0010
Payload
26
Address Resolution Packets
• Click this link to check the address resolution packets
• https://www.cloudshark.org/captures/eb1b377ffcad
27
IPv6 Address Auto-configuration
• Stateless address auto-configuration (SLAAC)
– No manual configuration required
– Gets the IPv6 prefix and prefix length through RA (local
router)
– EUI-64 for interface ID (pseudo random)
• Stateful - DHCPv6
– To track address assignments
28
Stateless Address Autoconfig (1)
RFC
When a host joins a link/subnet: 2462
• It auto-generates a link-local using
the FE80::/10 prefix and EUI-64: FE80::346A:3BFF:FE76:CAF9
– Ex: FE80::346A:3BFF:FE76:CAF9
NS
• DAD is performed on the link-local:
– NS message is sent to the “solicited-
node” multicast (FF02::1:FF76:CAF9),
with ::/128 as the source
– If no NA message is received back, the
generated address is unique and can
be used
29
Stateless Address Autoconfig (2)
Once the node has a link-local address:
FE80::346A:3BFF:FE76:CAF9
• sends a RS message to the ”all-routers” 2001:DB8::346A:3BFF:FE76:CAF9
multicast (FF02::2)
– link-local as the source address
RS
• The router responds with a RA message 2001:DB8::/64
– IPv6 prefix and prefix length
– link-local as the source
– Auto flag by default (Managed and Other flags RA
are not set!)
• The node generates the IPv6 address
– uses the received prefix (2001:DB8::/64)
– Interface ID (EUI-64)
– 2001:DB8::346A:3BFF:FE76:CAF9
– DAD not necessary (link-local validated for the
same interface!)
30
DHCPv6 (1)
RFC
DHCPv6 is used: 3315
– If there are no router(s) on the subnet/link, OR
– If the RA message specifies to get addressing
information via DHCPv6
If the router’s RA message has the:
– O (other) flag set: stateless DHCPv6
• auto-generate IPv6 address using IPv6 prefix & prefix length in
the RA
• obtain other information (DNS server, domain) via DHCPv6
– M (managed) flag set:
• obtain all addressing information via DHCPv6
• ‘O’ flag is redundant
31
Stateful Autoconfig – DHCPv6 (2)
1. Client sends Solicit message to FF02::1:2 DHCPv6
to find any available DHCPv6 servers IPv6 Client Server
2. Server responds with an Advertise message Solicit
• the tentative IPv6 address/prefix
• Other parameters (DNS, domain, default
gateway, lease time) Advertise
• could receive multiple Advertise messages
Request
3. Client selects the server, and sends a
Request asking to formally request the Reply
indicated IPv6 address
4. Server responds with a Reply to confirm the
assignment
5. Performs DAD before using!
32
33