Skip to content

Latest commit

 

History

History
130 lines (100 loc) · 5.7 KB

Routing.md

File metadata and controls

130 lines (100 loc) · 5.7 KB

Routing

This section is a short introduction to a complex topic. IPv6 packets are routed individually and statelessly, like any datagram protocol. Consecutive packets may follow different routes, may be lost on the way, may arrive out of order, and transit times are variable. In practice, operators attempt to minimize these effects but upper layer protocols cannot rely on this. In some cases, quality of service mechanisms such as differentiated services [2. Traffic class and flow label] may help, but packet delivery remains statistical.

IPv6 routing in general operates by longest-match, i.e. each router forwards each packet to another router known to handle an address prefix that is the longest one (up to 128 bits) that matches the packet's destination address [BCP198]. Routers use various routing protocols among themselves to distribute information about which prefixes they handle. Common routing protocols are:

For site and enterprise networks:

Small enterprise and home networks

  • The Babel Routing Protocol [RFC8966].

Inside carrier (ISP) networks or very large enterprise networks:

Between carrier (ISP) networks (inter-domain routing):

  • Border Gateway Protocol 4 (BGP-4) in its multiprotocol form [RFC2545, RFC 4271, RFC 4760]. Autonomous System numbers work the same way for IPv6 and IPv4.

For emerging mesh networks:

IPv6 routers can be placed in various categories, each of which requires different features to be active. These categories may overlap:

  • Customer Edge (CE) routers (enterprise): These are routers that connect an enterprise network to one or more ISPs [RFC7084, RFC 8585, RFC 9096].

  • Enterprise routers: Internal routers within a large enterprise network.

  • Subnet routers: Internal routers that support one or more links connecting end hosts (typically Ethernet or WiFi). Such a router will be the last-hop router for incoming traffic and the first-hop router for outgoing traffic. It must also provide Router Advertisement services for the end hosts, and either SLAAC or DHCPv6 or both [See 2. Address resolution etc.].

  • Customer Edge (CE) routers (domestic): These are cheap routers connecting home or small office networks to an ISP. They typically act as subnet routers too, but are unlikely to provide the full set of enterprise CE router services. They need little or no configuration for basic operation.

  • Provider Edge routers. These are routers within ISP networks that directly connect to CE routers.

  • Transit routers within ISPs.

  • Inter-domain routers connecting ISPs to peer ISPs and/or Internet Exchange Points.

A general comment is that IPv6 prefixes being longer than IPv4 prefixes (up to 64 bits instead of, say, 24 bits), one might expect routing tables to require much more memory space. While this is true, IPv6 was designed for classless route aggregation from the beginning, which generally permits there to be fewer IPv6 prefixes, mitigating the table size issue. (Nevertheless, the BGP-4 table for IPv6 continues to grow, as discussed in this CCR paper.) Interested readers can find exhaustive data on BGP-4 table sizes at Geoff Huston's site. For a deep dive on BGP-4 itself, with much focus on IPv6, see the e-book by Iljitsch van Beijnum: Internet Routing with BGP (2022).

As explained in 3. Dual stack scenarios, IPv6 routing generally works independently of IPv4 routing, which was indeed a fundamental design choice. However, if necessary, encapsulated IPv4 traffic can be carried over an IPv6-only path. To enable this, multiprotocol BGP-4 has provisions to advertise IPv4 reachability over an IPv6-only path [RFC8950].

Finally, IPv6 allows routing headers, interpreted by intermediate nodes along a packet's path. These are briefly explained in Extension headers and options.