Tools/NetworkManager/IPv6

From FedoraProject

< Tools | NetworkManager(Difference between revisions)
Jump to: navigation, search
(DHCPv6 address and DNS configuration)
Line 6: Line 6:
 
Please remember that IPv6 ''is'' different.
 
Please remember that IPv6 ''is'' different.
  
== Basic configuration (address, gateway, DNS) ==
+
For details about possible IPv6 scenarios, see [[Networking/Addressing#Dynamic_IPv6_configuration]].
 
+
=== Static configuration ===
+
 
+
No RA or DHCP configuration. NetworkManager supports static configuration out of the box.
+
 
+
The only caveat is that the configuration assumes that default gateways belong to addresses. This is not true
+
with IPv6. Strictly speaking, this is not even true with IPv4, but the dependency between configured IPv4 addresses and gateways is much stronger.
+
 
+
=== SLAAC without DNS configuration (mandatory by [http://tools.ietf.org/html/rfc4294 RFC 4294]) ===
+
 
+
/etc/radvd.conf:
+
 
+
<pre>
+
interface eth0 {
+
    AdvSendAdvert on;
+
    prefix 2001:db8:1:2::/64 {};
+
};
+
</pre>
+
 
+
DNS queries typically use IPv4. NetworkManager
+
supports this configuration and it also works
+
when device is ignored by NetworkManager.
+
 
+
=== SLAAC with RDNSS and DNSSL ===
+
 
+
/etc/radvd.conf:
+
 
+
<pre>
+
interface eth0 {
+
    AdvSendAdvert on;
+
    prefix 2001:db8:1:2::/64 {};
+
    RDNSS 2001:db8:1:2::ab {};
+
    DNSSL example.net {};
+
};
+
</pre>
+
 
+
The contents of host's /etc/resolv.conf is filled in by NetworkManager. Linux kernel
+
currently supports RDNSS but not DNSSL. NetworkManager has problems with RDNSS but they
+
have to be solved also on IETF level. DNSSL support cannot be tested in NetworkManager because
+
of lack of kernel support. Kernel 3.5 will have DNSSL support.
+
 
+
 
+
=== SLAAC with DHCPv6 Information Request ===
+
 
+
/etc/radvd.conf:
+
 
+
<pre>
+
interface eth0 {
+
    AdvSendAdvert on;
+
    AdvOtherConfigFlag on;
+
    prefix 2001:db8:1:2::/64 {};
+
};
+
</pre>
+
 
+
/etc/dhcp/dhcpd6.conf:
+
 
+
<pre>
+
subnet6 2001:db8:1:2::/64 {
+
    option dhcp6.name-servers 2001:db8:1:2::ab;
+
    option dhcp6.domain-search "example.net";
+
}
+
</pre>
+
 
+
This is often used to supply DNS information to hosts that don't support
+
RDNSS/DNSSL in Router Advertisements. NetworkManager works well in this
+
scenario if DHCPv6 packets get through firewall.
+
 
+
There have been problems with IPv6 firewall blocking DHCPv6 exchange. Right
+
now Fedora has two firewall configuration services. I hope to test both of them later.
+
 
+
=== DHCPv6 address-only, all other by RA ===
+
 
+
/etc/radvd.conf:
+
 
+
<pre>
+
interface eth0 {
+
    AdvSendAdvert on;
+
    AdvManagedFlag on;
+
    prefix 2001:db8:1:2::/64 {
+
        AdvAutonomous off;
+
    };
+
    RDNSS 2001:abcd:1:1::ab {};
+
    DNSSL example.net {};
+
};
+
</pre>
+
 
+
/etc/dhcp/dhcpd6.conf:
+
 
+
<pre>
+
subnet6 2001:db8:1:2::/64 {
+
    range6 2001:db8:1:2::1:0000 2001:db8:1:2::1:ffff;
+
}
+
</pre>
+
 
+
DHCPv6 is used only for address configuration, RA does everything else. NetworkManager
+
works in this scenario except DNSSL (see above).
+
 
+
Note that AdvManagedFlag implies AdvOtherConfigFlag functionality too.
+
 
+
=== DHCPv6 address and DNS configuration ===
+
 
+
/etc/radvd.conf:
+
 
+
<pre>
+
interface eth0 {
+
    AdvSendAdvert on;
+
    AdvManagedFlag on;
+
    prefix 2001:db8:1:2::/64 {
+
        AdvAutonomous off;
+
    };
+
};
+
</pre>
+
 
+
/etc/dhcp/dhcpd6.conf:
+
 
+
<pre>
+
subnet6 2001:db8:1:2::/64 {
+
    option dhcp6.name-servers 2001:db8:1:2::ab;
+
    option dhcp6.domain-search "example.net";
+
    range6 2001:db8:1:2::1:0000 2001:db8:1:2::1:ffff;
+
}
+
</pre>
+
 
+
This is a typical DHCPv6 configuration. Note that routing information are stil delivered
+
through Router Advertisements. NetworkManager may fail in this scenario.
+
 
+
== Automatic reconfiguration ==
+
 
+
IPv6 automatic configuration is pretty dynamic and can change very quickly. Currently NetworkManager doesn't respond well to some dynamic changes of configuration.
+
 
+
* NetworkManager doesn't reflect default gateway changes in Router Advertisements.
+
  
 
== Tweaking ==
 
== Tweaking ==

Revision as of 07:52, 13 December 2012

NetworkManager supports the IPv6 protocol and it is turned on by default. It connects to networks with SLAAC and DHCPv6 and keeps the connection running. Many bugs have been fixed recently, so it's possible that it doesn't work well in your distribution. Reasonably good support will be delivered with NetworkManager 9.6 and Linux 3.5.

Due to the existence of IPv6 link-local addresses, routing configuration and address configuration are orthogonal.

Please remember that IPv6 is different.

For details about possible IPv6 scenarios, see Networking/Addressing#Dynamic_IPv6_configuration.

Contents

Tweaking

NetworkManager supports privacy extensions through the 'ip6-privacy' key.

Debugging

You can run NetworkManager on foreground with various debugging settings:

/path/to/NetworkManager --no-daemon \
    --log-level=debug --log-domains=DEVICE,IP6,DHCP6 2>~/nm.debug

Be careful not to run multiple instances of NetworkManager. Check with ps -ef if you experience weird behavior.

Long-term goals

  • Don't tear down interfaces, keep link-local networking always on
  • Get kernel problems fixed, then simplify ipv6 handling in NM

Recently fixed

Git

Gnome Bug 676317 - IPv6 DHCPv6 configuration fails: nm_system_replace_default_ip6_route returns -7

Gnome Bug 676740 - NetworkManager fails to configure DHCPv6 address under some circumstances (because it 'assumes')

Gnome Bug 676322 - IPv6 DNSSL does not get into /etc/resolv.conf

Fedora Bug 824121 - IPv6: Kernel doesn't propagate DNSSL to userspace (e.g. NetworkManager)

Fedora Bug 753482 - wifi drops every 15 minutes (ip-config-unavailable) because of IPv6 RDNSS timeout

IETF IPv6 Mailing List – question on RDNSS, RFC 6106 part 5.1

WONTFIX / NOTABUG

Gnome Bug 677099 - IPv6: NetworkManager configures RDNSS and DNSSL though DHCPv6 even though AdvOtherConfigFlag is not set