From Fedora Project Wiki

< QA‎ | Networking

Line 13: Line 13:
== IPv4 configuration procedure ==
== IPv4 configuration procedure ==


TODO
Dynamic configuration procedure:
 
* DHCP exchange
* Address configuration (from DHCP, optional fallback to IPv4LL)
* DNS configuration (from DHCP)
* Other configuration (NTP servers, ...)


== IPv6 configuration procedure ==
== IPv6 configuration procedure ==

Revision as of 12:16, 27 October 2015

Automatic configuration overview

Common standard protocols involved in IPv4 and IPv6 automatic configuration:

  • DHCPv4 protocol
  • IPv4CP
  • IPv6 NDP router discovery
  • DHCPv6 protocol
  • IPv6CP

IPv4 and IPv6 configuration typically occurs simultaneously but separately. The two streams of configuration are then combined, especially those parameters that are used together for both protocols like recursive DNS server addresses.

IPv4 configuration procedure

Dynamic configuration procedure:

  • DHCP exchange
  • Address configuration (from DHCP, optional fallback to IPv4LL)
  • DNS configuration (from DHCP)
  • Other configuration (NTP servers, ...)

IPv6 configuration procedure

Dynamic address configuration procedure:

  • IPv6LL configuration and DAD</title>
  • Router discovery (solicitation and advertisement)
  • SLAAC
  • Optional DHCP (based on router discovery)
  • Stateful address configuration (with lease from DHCP)
  • DNS configuration (from rdisc and DHCP)
  • Other configuration (NTP servers, ...)

DUID assignment and stability

A common problem with both IPv4 and IPv6 protocols is the assignment of a stable DUID. In theory, DUID was expected to be a fixed hardware parameter buint into the hardware host. In practice DUID is most often just a number generated by software.

Requirements on DUID stability:

  • DUID must be stable during a single run of a system for a single configuration service
  • DUID should be stable across full reboots
  • DUID would better be shared across all configuration services and DHCP clients

(TODO: Revise the requirements above and back them up with some sources or use cases.)

Known bugs: