# Days 31, 32, 33: IPv6

# CCNA 200-301 Study Guide: IPv6 Fundamentals and Routing

## 1.0 Context: IPv6 in the CCNA 200-301 Exam

IPv6 is a core competency woven throughout the CCNA curriculum. Understanding both the theory and practical configuration is essential for success in the following domains:

<div align="left" dir="ltr" id="bkmrk-domain-name-weight-1"><table><colgroup><col width="80"></col><col width="190"></col><col width="75"></col></colgroup><tbody><tr><td>Domain

</td><td>Name

</td><td>Weight

</td></tr><tr><td>1.0

</td><td>Network Fundamentals

</td><td>20%

</td></tr><tr><td>2.0

</td><td>Network Access

</td><td>20%

</td></tr><tr><td>3.0

</td><td>IP Connectivity

</td><td>25%

</td></tr></tbody></table>

</div>Concepts are distributed across notation, address types, stateless autoconfiguration (SLAAC), and Neighbor Discovery Protocol (NDP).

## 2.0 The Architectural Shift: Header Improvements

IPv6 was designed to solve IPv4 address exhaustion, providing a 128-bit address space ($2^{128}$ addresses). It also introduced a more efficient, fixed-size 40-byte header.

### Key Header Changes

- No Checksum: Error checking is handled at Layer 2 and Layer 4, reducing CPU overhead at every Layer 3 hop.
- Hop Limit: Replaces "Time to Live" (TTL). It performs the same function: preventing infinite loops.
- Next Header: Replaces the "Protocol" field. It identifies the payload (TCP, UDP, ICMPv6) or chains extension headers.
- Flow Label: A 20-bit field that allows routers to identify and prioritize specific traffic flows for Quality of Service (QoS).

## 3.0 Mastering IPv6 Notation

Because a 128-bit address is too long to write in full, RFC 5952 defines rules for compression.

- Rule 1: Omit Leading Zeros: In any 16-bit hextet, leading zeros are unnecessary.
- Example: 0db8 becomes db8.

- Rule 2: The Double Colon (::): A single contiguous string of all-zero hextets can be replaced with ::.
- Constraint: This can only be used once per address to avoid ambiguity.

- Rule 3: Use Lowercase: Characters a through f should be lowercase for a consistent representation.

Example Compression:

- Full: 2001:0db8:0000:0000:0000:ff00:0042:8329
- Compressed: 2001:db8::ff00:42:8329

## 4.0 A Taxonomy of IPv6 Address Types

IPv6 eliminates Broadcast addresses, replacing them with more efficient Multicast methods.

### 4.1 Unicast (One-to-One)

<div align="left" dir="ltr" id="bkmrk-unicast-type-address"><table><colgroup><col width="147"></col><col width="122"></col><col width="333"></col></colgroup><tbody><tr><td>Unicast Type

</td><td>Address Range

</td><td>Description

</td></tr><tr><td>Global Unicast (GUA)

</td><td>2000::/3

</td><td>Publicly routable on the internet.

</td></tr><tr><td>Unique Local (ULA)

</td><td>fc00::/7

</td><td>Private addresses for internal use; typically starts with fd.

</td></tr><tr><td>Link-Local (LLA)

</td><td>fe80::/10

</td><td>Automatic for local link communication. Not routable.

</td></tr><tr><td>Loopback

</td><td>::1/128

</td><td>Equivalent to 127.0.0.1.

</td></tr></tbody></table>

</div>### 4.2 Multicast (One-to-Many)

All multicast addresses begin with ff00::/8.

- ff02::1: All Nodes (local link).
- ff02::2: All Routers (local link).
- ff02::1:ffxx:xxxx: Solicited-Node Multicast (used for address resolution).

### 4.3 Anycast (One-to-Nearest)

A single address assigned to multiple devices. Routers deliver the packet to the topologically "closest" device.

## 5.0 Interface ID and Address Assignment

### 5.1 Modified EUI-64 Process

A device can generate its own unique 64-bit Interface ID from its 48-bit MAC address:

1. Split the MAC address in half.
2. Insert fffe in the middle.
3. Flip the 7th bit (Universal/Local bit).

### 5.2 Assignment Methods

- SLAAC: Host uses Router Advertisement (RA) messages to learn the prefix and generates its own Interface ID.
- Stateless DHCPv6: Host uses SLAAC for its IP, but asks DHCP for "other" info (DNS, Domain Name).
- Stateful DHCPv6: Host obtains its full configuration (including IP) from a DHCPv6 server.

## 6.0 Neighbor Discovery Protocol (NDP)

NDP replaces ARP and operates over ICMPv6. It uses targeted multicasts instead of noisy broadcasts.

<div align="left" dir="ltr" id="bkmrk-message-type-icmpv6-"><table><colgroup><col width="198"></col><col width="106"></col><col width="299"></col></colgroup><tbody><tr><td>Message Type

</td><td>ICMPv6 Type

</td><td>Purpose

</td></tr><tr><td>Neighbor Solicitation (NS)

</td><td>135

</td><td>"Who has this IP?" (ARP Request equivalent).

</td></tr><tr><td>Neighbor Advertisement (NA)

</td><td>136

</td><td>"I have that IP, here is my MAC." (ARP Reply equivalent).

</td></tr><tr><td>Router Solicitation (RS)

</td><td>133

</td><td>Host asks, "Are there any routers here?"

</td></tr><tr><td>Router Advertisement (RA)

</td><td>134

</td><td>Router says, "I am here, use this prefix."

</td></tr></tbody></table>

</div>## 7.0 Practical Application: CLI Reference

### Global Configuration

\# Mandatory command to allow the router to forward IPv6 packets

Router(config)# ipv6 unicast-routing

\# Static Default Route

Router(config)# ipv6 route ::/0 &lt;next-hop&gt;

\# Standard Static Route

Router(config)# ipv6 route &lt;prefix&gt;/64 &lt;next-hop&gt;

### Interface Configuration

Router(config-if)# ipv6 enable # Generates an LLA only

Router(config-if)# ipv6 address 2001:db8:1::1/64 # Static GUA

Router(config-if)# ipv6 address autoconfig # Use SLAAC

Router(config-if)# ipv6 address fe80::1 link-local # Manually set LLA

### Verification

- show ipv6 interface brief: High-level status check.
- show ipv6 route: View the IPv6 routing table.
- show ipv6 neighbors: View the Neighbor Cache (equivalent to the ARP table).

## 8.0 Conclusion: Core Takeaways

1. Link-Local Addresses (fe80::/10) are mandatory for local communication and serve as the next-hop for routing protocols.
2. ipv6 unicast-routing must be enabled globally for a Cisco device to function as a router.
3. NDP replaces ARP, using Solicited-Node Multicasts for efficiency.
4. Header Efficiency: Removing the checksum and fixing the header size at 40 bytes improves core routing performance.