I realize this is probably a pretty basic question, but I can't seem to find an answer that makes sense to me. I have experience configuring networks for IPv4, but IPv6 is a whole other beast. I'm trying to wrap my head around it.

I'm trying to configure my laptop to use IPv6. I'm going to have to start dealing with IPv6 at work, so I thought I'd play around locally. I have a few questions about address configuration.

To start, based on this site my Linux kernel supports and is configured for IPv6.

$ [ -f /proc/net/if_inet6 ] && echo 'IPv6 ready system!' || echo 'No IPv6 support found! Compile the kernel!!'
IPv6 ready system!
$ lsmod | grep -qw ipv6 && echo "IPv6 kernel driver loaded and configured." || echo "IPv6 not configured and/or driver loaded on the system."
IPv6 kernel driver loaded and configured.

I can successfully ping myself using ping6 -wlan0 [ip6addr]. My current IP is a link local address, and from what I understand I need a Global scope to access the outside world (like ipv6.google.com).

  1. Can I assign my own Global scope IP, or do I need to let network discovery/DHCPv6 take care of that for me?
  2. If it's the latter, how can I configure my system to do this?
  3. If it's the former, then I assume I can follow these instructions. Much like configuring IPv4. Is there any rhyme or reason to how I should generate the address other than the prefix being set to 20XX?

I also realize that my wireless router needs to be configured for IPv6, but that's not part of this question.

2 Answers 2


Debian, Ubuntu, and other Linux distributions have been IPv6 ready for several releases.

  1. You can't assign your own global IPv6 address, just as you can't assign your own global IPv4 address. You need to get it assigned by your ISP, or IPv6 provider. If you are connected to an IPv6 network, you computer may auto-configure using data from a radvd announcement.
  2. IPv6 is designed for auto-configuration. You can see if you are configured by listing your IPv6 addresses (you may have a few). Try the command ip -6 addr show. Addresses starting fe80: are link local addresses. If you have an address starting with 2xxx:, then you have a global IPv6 address.
  3. There are a number of ways to get a global IPv6 address (and network block):
  4. If your ISP is IPv6 ready, you should be able to get an address and at least one /64 network block from them.
  5. You can use 6to4 networking to get an IPv6 network based on your IPv4 address. This will begin 2002: followed by your IPv6 address in HEX. It is possible to configure radvd to derive your IPv6 network block from your IPv4 address.
  6. You can use 6in4 to tunnel your IPv6 network to a tunnel broker. In this case you would get your IPv6 address and network blocks from the tunnel broker. This is your best option if your ISP is not IPv6 ready.

If you don't get your address from your ISP, then your addresses will change when your ISP becomes IPv6 ready. It is possible to do this transition smoothly using multiple IPv6 addresses and some routing rules.

  • Will the auto-configuration also provide default routes to the given global IPv6 address?
    – RoraΖ
    Commented Oct 7, 2014 at 17:27
  • @raz Auto-configuration using RA (Router Advertisement) packets will configure the router as well as the IP address. Link local addresses also auto-configure, but aren't routeable and don't configure a router.
    – BillThor
    Commented Oct 8, 2014 at 13:01
  • I meant would routes on the client be auto-configured?
    – RoraΖ
    Commented Oct 8, 2014 at 13:33
  • @raz Yes, the clients will auto-configure their routes.
    – BillThor
    Commented Oct 9, 2014 at 0:28
  • ip -6 show addr Object "show" is unknown, try "ip help". Commented Nov 22, 2015 at 17:01

Manually configuring an IPv6 address is essentially the same as manually configuring an IPv4 address. Add something like this to /etc/network/interfaces:

iface eth0 inet6 static
    address 2001:db8:aa:bb::1a2b
    netmask 64
    gateway 2001:db8:aa:bb::1

If you don't want to manually configure IPv6 then it's a lot easier: just make sure you have a router with IPv6 connectivity that sends Router Advertisement (RA) messages. They contain everything your system needs to know to configure itself if auto-configuration is allowed by them. Or they'll tell your system to contact a stateful DHCPv6 server etc. They can contain many options, but as you indicated that is not part of your question.

If you want IPv6 connectivity to the internet then you get your IPv6 addresses from your ISP. If you just want to use IPv6 locally without internet connectivity then you use ULA (Unique Local Addresses). You can generate those addresses yourself by following the instructions in the RFC, but you can also use tools like the [SixXS ULA tools[(https://www.sixxs.net/tools/grh/ula/) or the Unique Local IPv6 Generator.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .