<section xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="sec-ipv6">
  <title>IPv6 Configuration</title>
  <para>
    IPv6 is enabled by default. Stateless address autoconfiguration is
    used to automatically assign IPv6 addresses to all interfaces, and
    Privacy Extensions (RFC 4946) are enabled by default. You can adjust
    the default for this by setting
    <xref linkend="opt-networking.tempAddresses" />. This option may be
    overridden on a per-interface basis by
    <xref linkend="opt-networking.interfaces._name_.tempAddress" />. You
    can disable IPv6 support globally by setting:
  </para>
  <programlisting language="bash">
networking.enableIPv6 = false;
</programlisting>
  <para>
    You can disable IPv6 on a single interface using a normal sysctl (in
    this example, we use interface <literal>eth0</literal>):
  </para>
  <programlisting language="bash">
boot.kernel.sysctl.&quot;net.ipv6.conf.eth0.disable_ipv6&quot; = true;
</programlisting>
  <para>
    As with IPv4 networking interfaces are automatically configured via
    DHCPv6. You can configure an interface manually:
  </para>
  <programlisting language="bash">
networking.interfaces.eth0.ipv6.addresses = [ {
  address = &quot;fe00:aa:bb:cc::2&quot;;
  prefixLength = 64;
} ];
</programlisting>
  <para>
    For configuring a gateway, optionally with explicitly specified
    interface:
  </para>
  <programlisting language="bash">
networking.defaultGateway6 = {
  address = &quot;fe00::1&quot;;
  interface = &quot;enp0s3&quot;;
};
</programlisting>
  <para>
    See <xref linkend="sec-ipv4" /> for similar examples and additional
    information.
  </para>
</section>
