IPv6 - Routing
IPv6 - Routing
Section titled “IPv6 - Routing”The fundamental concepts of routing—forwarding packets towards their destination based on routing tables—remain the same in IPv6 as in IPv4. However, the routing protocols themselves have been updated or adapted to support IPv6’s larger address format and specific features. A router is a device that forwards packets not destined for itself, making decisions based on learned routes.
Routing protocols can be broadly categorized:
- Distance Vector Routing Protocol: Routers advertise their directly connected routes and learn new routes from their neighbors. The cost to reach a destination is often based on hop count. Examples include RIP. BGP is a Path Vector protocol, an advanced type of distance vector protocol.
- Link-State Routing Protocol: Routers build a complete map (topology) of the network by exchanging link-state information with all other routers in a routing area. Each router then independently calculates the shortest path to all destinations using an algorithm like Dijkstra’s. Examples include OSPF and IS-IS.
Routing protocols are also classified by their scope:
- Interior Gateway Protocol (IGP): Used within a single autonomous system (AS) or organization to exchange routing information among its internal routers. Examples include RIPng, OSPFv3, EIGRP for IPv6, and IS-IS for IPv6.
- Exterior Gateway Protocol (EGP): Used to exchange routing information between different autonomous systems. The primary EGP used on the internet is BGP.
IPv6 Routing Protocols
Section titled “IPv6 Routing Protocols”- RIPng (Routing Information Protocol next generation - RFC 2080): An IGP and a distance vector protocol updated from RIPv2 to support IPv6. It uses UDP port 521 and multicast address FF02::9. Its use is generally limited to smaller, simpler networks due to scalability limitations.
- OSPFv3 (Open Shortest Path First version 3 - RFC 5340): A widely used IGP and link-state protocol. OSPFv3 was redesigned to be protocol-independent, allowing it to carry routing information for IPv6 (and potentially other address families). It runs directly over IPv6 (protocol number 89) and uses link-local addresses for neighbor communication.
- IS-IS for IPv6 (Intermediate System to Intermediate System - RFC 5308): Another robust link-state IGP, often favored in large service provider networks. IS-IS was extended with new TLVs (Type-Length-Values) to support IPv6 prefixes.
- EIGRP for IPv6 (Enhanced Interior Gateway Routing Protocol - RFC 5229): Cisco’s proprietary distance-vector protocol (now an open standard) extended to support IPv6. It offers features like rapid convergence and unequal cost load balancing.
- MP-BGP (Multiprotocol BGP - RFC 4760): BGP version 4 (BGP-4) is the internet’s EGP. MP-BGP extends BGP-4 to carry routing information for multiple network layer protocols, including IPv6, using Address Family Identifiers (AFIs) and Subsequent Address Family Identifiers (SAFIs).
Related Protocols Updated for IPv6
Section titled “Related Protocols Updated for IPv6”- ICMPv6 (Internet Control Message Protocol version 6 - RFC 4443): A crucial part of IPv6, ICMPv6 handles error reporting, diagnostic functions (like ping), and serves as the foundation for Neighbor Discovery Protocol (NDP - RFC 4861) and Multicast Listener Discovery (MLD - RFC 2710). NDP, for example, replaces ARP and handles router/neighbor discovery.
- DHCPv6 (Dynamic Host Configuration Protocol version 6 - RFC 8415): While IPv6 hosts can use Stateless Address Autoconfiguration (SLAAC), DHCPv6 provides stateful address assignment (assigning specific IPs) and stateless configuration (providing other parameters like DNS servers, NTP servers, domain names). DHCPv6 Prefix Delegation (DHCPv6-PD) is commonly used by ISPs to delegate network prefixes to customer routers.
- DNS (Domain Name System): DNS was extended to support IPv6. The ‘AAAA’ (quad-A) resource record type is used to store IPv6 addresses for a hostname. For reverse DNS lookups, the ‘ip6.arpa’ domain is used, with PTR records mapping IPv6 addresses back to hostnames.