From Fedora Project Wiki
< Networking | Ideas
No edit summary |
|||
Line 1: | Line 1: | ||
== Features == | == Current status == | ||
=== Features === | |||
* Automatic link-local addresses | * Automatic link-local addresses | ||
Line 6: | Line 8: | ||
* IPv4: Gateway/DNS for other hosts | * IPv4: Gateway/DNS for other hosts | ||
=== | === Feature dependencies === | ||
* IPv6: Automatic global address needs link-local address | * IPv6: Automatic global address needs link-local address | ||
* Gateway needs a manual address (at least a default one), conflicts with dynamic 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 | |||
|- style="color: blue;" | |||
|disabled||IPv4||none||forbidden||none||none | |||
|- style="color: green;" | |||
|ignore||IPv6||kernel||forbidden||kernel||none | |||
|- style="color: blue;" | |||
|link-local||IPv4||userspace||forbidden||none||none | |||
|- style="color: green;" | |||
|link-local||IPv6||kernel||forbidden||none||none | |||
|- style="color: blue;" | |||
|manual||IPv4||none||required||none||none | |||
|- style="color: green;" | |||
|manual||IPv6||kernel||required||none||none | |||
|- style="color: blue;" | |||
|auto||IPv4||none||allowed||dhcp||none | |||
|- style="color: green;" | |||
|auto||IPv6||kernel||allowed||ra+dhcp||none | |||
|- style="color: green;" | |||
|dhcp||IPv6||kernel||allowed||dhcp||none | |||
|- style="color: blue;" | |||
|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 | !L!!M!!A!!G!!IPv4!!IPv6!!notes | ||
|- style="color: | |- style="color: red" | ||
|no||no||no||no||disabled||unsupported|| | |no||no||no||no||disabled||unsupported||kernel's disable_ipv6 buggy | ||
|- style="color: grey" | |- style="color: grey" | ||
|no||no||no||yes||invalid||invalid||missing manual address | |no||no||no||yes||invalid||invalid||missing manual address | ||
Line 54: | Line 97: | ||
* G: Gateway/DNS for other hosts | * 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). | |||
* There's | |||
* | |||
Revision as of 09:36, 19 October 2013
Current status
Features
- Automatic link-local addresses
- Manual addresses
- Automatic global address
- IPv4: Gateway/DNS for other hosts
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).