1

I have a vserver with 16.04. with two 64 IPv6 subnets assigned.

I'm trying to get a random IPv6 address with SLAAC for communication with external servers.

This is my /etc/network/interfaces

auto ens3

iface ens3 inet dhcp

iface ens3 inet6 auto

However I do not get a IPv6 address. This is the ouput of ip a ip -6 a

1: lo: mtu 65536 state UNKNOWN qlen 1

inet6 ::1/128 scope host valid_lft forever preferred_lft forever

2: ens3: mtu 1500 state UP qlen 1000

inet6 fe80::5054:a1ff:fe87:f16f/64 scope link valid_lft forever preferred_lft forever


I can add IPv6 addresses manually though with

sudo ip -6 addr add [NEW_ADDRESS]/64 dev ens3

which gives me the following output of ip -6 a and a working IPv6 address

1: lo: mtu 65536 state UNKNOWN qlen 1

inet6 ::1/128 scope host valid_lft forever preferred_lft forever

2: ens3: mtu 1500 state UP qlen 1000

inet6 [NEW_ADDRESS]/64 scope global valid_lft forever preferred_lft forever

inet6 fe80::5054:a1ff:fe87:f16f/64 scope link valid_lft forever preferred_lft forever


This is the output of sudo sysctl -a | grep net.ipv6.conf | grep -i ens3

net.ipv6.conf.ens3.accept_dad = 1

net.ipv6.conf.ens3.accept_ra = 2

net.ipv6.conf.ens3.accept_ra_defrtr = 1

net.ipv6.conf.ens3.accept_ra_from_local = 0

net.ipv6.conf.ens3.accept_ra_min_hop_limit = 1

net.ipv6.conf.ens3.accept_ra_mtu = 1

net.ipv6.conf.ens3.accept_ra_pinfo = 1

net.ipv6.conf.ens3.accept_ra_rt_info_max_plen = 0

net.ipv6.conf.ens3.accept_ra_rtr_pref = 1

net.ipv6.conf.ens3.accept_redirects = 1

net.ipv6.conf.ens3.accept_source_route = 0

net.ipv6.conf.ens3.autoconf = 1

net.ipv6.conf.ens3.dad_transmits = 1

net.ipv6.conf.ens3.disable_ipv6 = 0

net.ipv6.conf.ens3.force_mld_version = 0

net.ipv6.conf.ens3.force_tllao = 0

net.ipv6.conf.ens3.forwarding = 0

net.ipv6.conf.ens3.hop_limit = 64

net.ipv6.conf.ens3.ignore_routes_with_linkdown = 0

net.ipv6.conf.ens3.max_addresses = 16

net.ipv6.conf.ens3.max_desync_factor = 600

net.ipv6.conf.ens3.mc_forwarding = 0

net.ipv6.conf.ens3.mldv1_unsolicited_report_interval = 10000

net.ipv6.conf.ens3.mldv2_unsolicited_report_interval = 1000

net.ipv6.conf.ens3.mtu = 1500

net.ipv6.conf.ens3.ndisc_notify = 0

net.ipv6.conf.ens3.proxy_ndp = 0

net.ipv6.conf.ens3.regen_max_retry = 3

net.ipv6.conf.ens3.router_probe_interval = 60

net.ipv6.conf.ens3.router_solicitation_delay = 1

net.ipv6.conf.ens3.router_solicitation_interval = 4

net.ipv6.conf.ens3.router_solicitations = 3

net.ipv6.conf.ens3.suppress_frag_ndisc = 1

net.ipv6.conf.ens3.temp_prefered_lft = 86400

net.ipv6.conf.ens3.temp_valid_lft = 604800

net.ipv6.conf.ens3.use_oif_addrs_only = 0

net.ipv6.conf.ens3.use_tempaddr = 0

  • SLAAC works because the router (usually the default gateway) send out Router Advertisements (RAs) with the Autoconf flag set on a routed /64 prefix. Are you sure that the router is doing that? – Sander Steffann Oct 4 '16 at 10:32
  • How can I check for RAs? Is there another method to generate a random IPv6 without SLAAC? – Khmtrav Oct 4 '16 at 11:10
  • You can check with tools like wireshark and tcpdump. You could write your own scripts to generate random addresses, but nothing as easy as SLAAC... – Sander Steffann Oct 4 '16 at 12:18
  • There are router advertisements (sorry for bad formatting): 00:01:00.262677 IP6 (hlim 255, next-header ICMPv6 (58) payload length: 24) fe80::1 > ip6-allnodes: [icmp6 sum ok] ICMP6, router advertisement, length 24 hop limit 64, Flags [none], pref medium, router lifetime 1800s, reachable time 0s, retrans time 0s source link-address option (1), length 8 (1): 00:00:5e:00:02:02 0x0000: 0000 5e00 0202 – Khmtrav Oct 4 '16 at 13:28
  • 2
    The router needs to be fixed. Contact your provider. – Michael Hampton Oct 4 '16 at 21:42

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Browse other questions tagged or ask your own question.