Difference between revisions of "IPv6"

From ArchWiki
Jump to: navigation, search
(Merge in Disabling IPv6)
(Removed disabling the Module from summary box, now that it has been merged.)
Line 4: Line 4:
{{Article summary text|This article covers IPv6, and basics of configuring different IPv6 related things like static IP adresses.}}
{{Article summary text|This article covers IPv6, and basics of configuring different IPv6 related things like static IP adresses.}}
{{Article summary heading|Related}}
{{Article summary heading|Related}}
{{Article summary wiki|IPv6 - Disabling the Module}}
{{Article summary wiki|IPv6 - Tunnel Broker Setup}}
{{Article summary wiki|IPv6 - Tunnel Broker Setup}}
{{Article summary end}}
{{Article summary end}}

Revision as of 10:08, 3 April 2012

This template has only maintenance purposes. For linking to local translations please use interlanguage links, see Help:i18n#Interlanguage links.

Local languages: Català – Dansk – English – Español – Esperanto – Hrvatski – Indonesia – Italiano – Lietuviškai – Magyar – Nederlands – Norsk Bokmål – Polski – Português – Slovenský – Česky – Ελληνικά – Български – Русский – Српски – Українська – עברית – العربية – ไทย – 日本語 – 正體中文 – 简体中文 – 한국어

External languages (all articles in these languages should be moved to the external wiki): Deutsch – Français – Română – Suomi – Svenska – Tiếng Việt – Türkçe – فارسی

Template:Article summary start Template:Article summary text Template:Article summary heading Template:Article summary wiki Template:Article summary end

In Arch Linux, IPv6 is enabled by default. If you are looking for information regarding IPv6 tunnels, you may want to look at IPv6 - Tunnel Broker Setup.

Privacy Extensions

To enable Privacy Extensions for Stateless Address Autoconfiguration in IPv6 according to RFC 4941, reproduce the following steps:

Add these lines to /etc/sysctl.conf:

# Enable IPv6 Privacy Extensions
net.ipv6.conf.all.use_tempaddr = 2
net.ipv6.conf.default.use_tempaddr = 2
net.ipv6.conf.<nic0>.use_tempaddr = 2
net.ipv6.conf.<nicN>.use_tempaddr = 2

Where <nic0> to <nicN> are your nic's (the "all" or "default" parameters do not apply to nic's that already exist when the sysctl settings are applied).

After a reboot, at the latest, Privacy Extensions should be enabled.

Neighbor Discovery

Pinging the multicast address ff02::1 results in all hosts in link-local scope responding. An interface has to be specified. With a ping to the multicast address ff02::2 only routers will respond.

$ ping6 ff02::1%eth0

If you add an option -I <your-global-ipv6>, link-local hosts will respond with their link-global scope addresses. The interface can be omitted in this case.

$ ping6 -I 2001:4f8:fff6::21 ff02::1

Static Address

To assign a static address (for example 2001:470:1000:1000::5/64):

Add your static IP using netcfg. You can load them at startup by specifying your netcfg profiles in the NETWORKS section of /etc/rc.conf:


DESCRIPTION='ipv6+ipv4 eth0'





Finally DAEMONS section should contain "net-profiles" instead of the deprecated "network". See Netcfg for more information.

Disable IPv6

Disabling IPv6 has been reported to speed up network access for programs that try using it before IPv4 on networks that do not support it. Incidentally, Firefox is listed among the affected applications. Until the widespread adoption of IPv6, one may benefit by disabling it.

Furthermore, an enabled ipv6 stack is known to expose bugs in some software in certain situations, even if it is not actually used. Disabling the stack works around these problems.

Note: As of version 3.2.6-2, the Arch kernel has IPv6 support built in directly [1]; therefore, the old ipv6 kernel module no longer exists.

Disable functionality

Adding ipv6.disable=1 to the kernel line in your bootloader configuration disables the whole ipv6 stack, which is likely what you want if you are experiencing issues.

Alternatively, adding ipv6.disable_ipv6=1 instead will keep the ipv6 stack functional, but not assign ipv6 addresses to any of your network devices.

One can also avoid assigning ipv6 addresses to specific nic's by adding the following sysctl config to /etc/sysctl.d/ipv6.conf:

# Disable IPv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.<nic0>.disable_ipv6 = 1
net.ipv6.conf.<nicN>.disable_ipv6 = 1

Note that you must list all the relevant nic's explicitly, as disabling "all" does not apply to nic's that are already set up when sysctl settings are applied.

Additional resources

  • IPv6 - kernel.org Documentation