Setting up IPv6 on Linux is pretty trivial, you can follow IPv4 guidelines and give yourself a static IPv6 address.

On Solaris things are not so rosy, IPv6 only works after running in.ripng. After running this you get IPv6 address auto-configuration on the local LAN segment. So whilst I have configured Solaris for one static IPv6 address I ultimately end up with three, the link-local scope, the static global-scope and a auto-configured global-scope:

lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1
        inet netmask ff000000 
eri0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet netmask ffffff00 broadcast
lo0: flags=2002000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv6,VIRTUAL> mtu 8252 index 1
        inet6 ::1/128 
eri0: flags=2100841<UP,RUNNING,MULTICAST,ROUTER,IPv6> mtu 1500 index 2
        inet6 fe80::203:baff:fe4e:6cc8/10 
eri0:1: flags=2100841<UP,RUNNING,MULTICAST,ROUTER,IPv6> mtu 1500 index 2
        inet6 2002:dce8:d28e::36/64 
eri0:2: flags=2180841<UP,RUNNING,MULTICAST,ADDRCONF,ROUTER,IPv6> mtu 1500 index 2
        inet6 2002:dce8:d28e:0:203:baff:fe4e:6cc8/64 

eri0:1 is the static address I have trivially chosen to match the IPv4 host, eri0:2 shows the auto-configured address re-using the numbers from the link-local interface.

in.ripng is configured with /etc/inet/ndpd.conf:

ifdefault AdvSendAdvertisements true
prefixdefault AdvOnLinkFlag on AdvAutonomousFlag on

if eri0 AdvSendAdvertisements 1
prefix 2002:dce8:d28e::/64 eri0

So the auto-configuration extends to all other hosts on the LAN segment so a Linux server with previously only the one global-scope address now yields two:

eth0      Link encap:Ethernet  HWaddr 00:14:5e:bd:6d:da  
          inet addr:  Bcast:  Mask:
          inet6 addr: 2002:dce8:d28e:0:214:5eff:febd:6dda/64 Scope:Global
          inet6 addr: fe80::214:5eff:febd:6dda/64 Scope:Link
          inet6 addr: 2002:dce8:d28e::31/64 Scope:Global

Are these sane configurations?

It seems unrealistic to have Internet facing servers that take addresses from their MAC address.

From a development perspective for a networking stack I would like to bind to eth0 with IPv6 and whilst it is simple to ignore the link-local scope interface how I can I select between the two global-scope addresses?

It's difficult to apply RFC 3484 sorting rules as both have the same scope and prefix length.

edit: side note for Solaris admins, after reviewing the system configuration I actually now can get static addressing to work correctly without auto-configuration.

1 Answer 1


That situation is perfectly normal. If you don't want the Linux box to autoconfigure IPv6 addresses you can always turn that off on the Linux box in /etc/sysctl.conf:

net.ipv6.conf.eth0.autoconf = 0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.