From Fedora Project Wiki
Line 116: Line 116:
  
 
Same bugs as above!
 
Same bugs as above!
 +
 +
== Debugging ==
 +
 +
You can run NetworkManager on foreground with various debugging settings:
 +
 +
<pre>
 +
/path/to/NetworkManager --no-daemon --log-level=debug --log-domains=DEVICE,IP6,DHCP6 2>~/nm.debug
 +
</pre>
 +
 +
Be careful not to run multiple instances of NetworkManager. Check with <code>ps -ef</code> if you experience weird behavior.

Revision as of 21:03, 27 May 2012

NetworkManager supports the IPv6 protocol and it is turned on by default, but its IPv6 configuration implementation is far from perfect. Right now (May 2012) we are trying to fix NetworkManager so that it is capable of starting an IPv6-only connection in all common situations. This doesn't mean that NetworkManager will be RFC compliant in near future. Please note that full IPv6 configuration support is a bit more complicated that IPv4.

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

IPv6 is different.

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.

Automatic configuration

To experiment with automatic IPv6 configuration in NetworkManager we recommend trying one or more of the following scenarios:

SLAAC without DNS configuration (mandatory by RFC 4294)

/etc/radvd.conf:

interface eth0 {
    AdvSendAdvert on;
    prefix 2001:db8:1:2::/64 {};
};

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:

interface eth0 {
    AdvSendAdvert on;
    prefix 2001:db8:1:2::/64 {};
    RDNSS 2001:db8:1:2::ab {};
    DNSSL example.net {};
};

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 on IETF level. DNSSL support cannot be tested in NetworkManager because of lack of kernel support.

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

Ubuntu Bug 936714 - IPv6 DNS search list (DNSSL) isn't passed to userspace by the kernel

SLAAC with DHCPv6 Information Request

/etc/radvd.conf:

interface eth0 {
    AdvSendAdvert on;
    AdvOtherConfigFlag on;
    prefix 2001:db8:1:2::/64 {};
};

/etc/dhcp/dhcpd6.conf:

subnet6 2001:db8:1:2::/64 {
    option dhcp6.name-servers 2001:db8:1:2::ab;
    option dhcp6.domain-search "example.net";
}

This is often used to supply DNS information to hosts that don't support RDNSS/DNSSL in Router Advertisements. NetworkManager may fail in this scenario.

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')

DHCPv6 address and DNS configuration

/etc/radvd.conf:

interface eth0 {
    AdvSendAdvert on;
    AdvManagedFlag on;
    AdvOtherConfigFlag on;
    prefix 2001:db8:1:2::/64 {
        AdvAutonomous off;
    };
};

/etc/dhcp/dhcpd6.conf:

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;
}

This is a typical DHCPv6 configuration. Note that routing information are stil delivered through Router Advertisements. NetworkManager may fail in this scenario.

Same bugs as above!

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.