From Fedora Project Wiki
Line 104: Line 104:


Use one configuration directives per feature whenever possible, use multiple configuration directives per feature where further tweaking is needed.
Use one configuration directives per feature whenever possible, use multiple configuration directives per feature where further tweaking is needed.
=== Configuration directives ===


{|
{|
Line 116: Line 118:
|||undefined||default for IPv6, use system default
|||undefined||default for IPv6, use system default
|-
|-
|ra||enabled||default, IPv6 only
|rdisc||enabled||default, IPv6 only
|-
|-
|||disabled||skip directly to DHCP (if enabled)
|||disabled||skip directly to DHCP (if enabled)
Line 127: Line 129:
|-
|-
|||disabled||default
|||disabled||default
|}
=== Consequences on IPv6 configuration ===
{|
!LL!!RD!!DHCP!!current status!!notes
|- style="color: brown"
|no||no||no||unsupported||
|- style="color: grey"
|no||no||yes||invalid||
|- style="color: grey"
|no||yes||no||invalid||
|- style="color: grey"
|no||yes||yes||invalid||
|- style="color: green"
|yes||no||no||method=link-local/manual||link-local
|- style="color: red"
|yes||no||yes||broken||link-local and DHCPv6 (without rdisc)
|- style="color: brown"
|yes||yes||no||unsupported||link-local and rdisc only
|- style="color: green"
|yes||yes||yes||method=auto||link-local and rdisc, DHCPv6 if requested by router
|}
==== Notes ====
* For any valid combination of the above directives, you can optionally add one or more manually specified addresses.
=== Consequences on IPv4 configuration ===
{|
!LL!!RD!!DHCP!!current status!!notes
|- style="color: green"
|no||no||method=disabled/manual||
|- style="color: green"
|no||yes||method=auto||classic DHCP configuration
|- style="color: brown"
|yes||no||unsupported||link-local method doesn't allow manual addresses
|- style="color: brown"
|yes||yes||unsupported||immediate link-local, follow-up DHCP
|- style="color: grey"
|fallback||no||method=manual/link-local||not so useful
|- style="color: brown"
|fallback||yes||unsupported||DHCP with fallback to link-local}
|}
|}

Revision as of 10:46, 19 October 2013

Current status

Features

  • Automatic link-local addresses
  • Manual addresses
  • Automatic global address
  • Gateway/DNS for other hosts (IPv4 only)

Feature dependencies

  • IPv6: Automatic global address needs link-local address
  • Gateway needs a manual address (at least a default one), conflicts with dynamic address

IPv4/IPv6 methods

Method Protocol Link-local Manual Automatic Gateway
disabled IPv4 none forbidden none none
ignore IPv6 kernel forbidden kernel none
link-local IPv4 userspace forbidden none none
link-local IPv6 kernel forbidden none none
manual IPv4 none required none none
manual IPv6 kernel required none none
auto IPv4 none allowed dhcp none
auto IPv6 kernel allowed ra+dhcp none
dhcp IPv6 kernel allowed dhcp none
shared IPv4 none ? none dhcp+dns+NAT

Notes

  • Even when IPv4 is in the disabled state, the network interface communicates on the L2 level.
  • There's no disable method for IPv6 and its semantics is unclear (whether disable means the same as link-local, or it also applies to the link-local address which is unaffected in all other methods).
  • The usage of IPv4 and IPv6 link-local addresses substatially differs. While IPv6 uses link-local addresses for *all* methods, IPv4 only uses it for the special link-local method.
  • The IPv4 disable and IPv4/manual methods only differ in the number of addresses (0 versus >=1), therefore one of them is redundant.
  • The IPv6 link-local and IPv6/manual methods only differ in the number of addresses (0 versus >=1), therefore one of them is redundant.
  • The IPv6 dhcp method is currently defunct.
  • There's no IPv6 shared method, yet.

Feature combinations

L M A G IPv4 IPv6 notes
no no no no disabled unsupported kernel's disable_ipv6 buggy
no no no yes invalid invalid missing manual address
no no yes no auto invalid missing IPv6 link-local address
no no yes yes invalid invalid missing manual address
no yes no no manual unsupported missing kernel feature
no yes no yes shared unsupported missing kernel feature
no yes yes no auto unsupported missing kernel feature
no yes yes yes invalid invalid both sides of dynamic configuration
yes no no no link-local link-local
yes no no yes invalid invalid missing manual address
yes no yes no unsupported auto
yes no yes yes invalid invalid missing manual address
yes yes no no unsupported manual
yes yes no yes shared unsupported
yes yes yes no unsupported auto
yes yes yes yes invalid invalid both sides of dynamic configuration
  • L: Automatic link-local addresses
  • M: Manual addresses
  • A: Automatic global address
  • G: Gateway/DNS for other hosts

Notes

  • There's a bug in the kernel (found by Dan Winship) that once setting IFF_UP with disable_ipv6=1 affects future state. But we shouldn't need disable_ipv6 just as we don't need disable_ipv4, see the next note.
  • Kernel doesn't support turning link-local addressing on/off (without affecting other features).

Proposal

Use one configuration directives per feature whenever possible, use multiple configuration directives per feature where further tweaking is needed.

Configuration directives

name value meaning
link-local enabled configure LL address as soon as possible
fallback configure a LL address when other configuration methods failed
disabled default for IPv4
undefined default for IPv6, use system default
rdisc enabled default, IPv6 only
disabled skip directly to DHCP (if enabled)
dhcp enabled default
disabled never use DHCP, only useful for IPv6
sharing enabled provide sharing facilities
disabled default

Consequences on IPv6 configuration

LL RD DHCP current status notes
no no no unsupported
no no yes invalid
no yes no invalid
no yes yes invalid
yes no no method=link-local/manual link-local
yes no yes broken link-local and DHCPv6 (without rdisc)
yes yes no unsupported link-local and rdisc only
yes yes yes method=auto link-local and rdisc, DHCPv6 if requested by router

Notes

  • For any valid combination of the above directives, you can optionally add one or more manually specified addresses.

Consequences on IPv4 configuration

LL RD DHCP current status notes
no no method=disabled/manual
no yes method=auto classic DHCP configuration
yes no unsupported link-local method doesn't allow manual addresses
yes yes unsupported immediate link-local, follow-up DHCP
fallback no method=manual/link-local not so useful
fallback yes unsupported DHCP with fallback to link-local}