Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

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 127.0.0.1 netmask ff000000 
eri0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 10.6.28.36 netmask ffffff00 broadcast 10.6.28.255
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:10.6.28.31  Bcast:10.6.28.255  Mask:255.255.255.0
          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
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

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.

share|improve this question
add comment

1 Answer 1

up vote 5 down vote accepted

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
share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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