My hosting provider supplied me with the following information:
Subnet: 2a02:f99:0:64::/64
Gateway: 2a02:f99:0:64::1
So I did (yes eth3
is the correct interface)
ip addr add 2a02:f99:0:64::2/64 dev eth3
ip -6 route add ::/0 via 2a02:f99:0:64::1 dev eth3
but
$ ip -6 neigh show
2a02:f99:0:64::1 dev eth3 FAILED
$ ping6 google.com
PING google.com(ams16s30-in-x0e.1e100.net) 56 data bytes
From 2a02:f99:0:64::2 icmp_seq=1 Destination unreachable: Address unreachable
...
I also tried
ip -6 route del ::/0 via 2a02:f99:0:64::1 dev eth3
ip -6 route add ::/0 via fe80::1 dev eth3
but that didn't change anything, still can't ping in or out.
Where did I go wrong? How do I get IPv6 running?
Update 2017-07-07:
Hosting provider insists infrastructure is fine.
Another machine with access to the same subnet can bind the address and establish an IPv6 connection via what I think is Router Advertisement (RA), as only fe80::20a:8bff:fe98:3400
as a gateway works and the provider specified gateway address doesn't.
The machine this post is about, however, is still out of luck finding any neighbors at all. Enabling RA also seems to have no effect whatsoever.
Running IPv6 accross the two machine's crossover connection (on their secondary NICs) worked right away, so IPv6 should basically be available to both of them (all pastes from the problematic machine):
PING fe80::62eb:69ff:fed2:a122%eth2(fe80::62eb:69ff:fed2:a122) 56 data bytes
64 bytes from fe80::62eb:69ff:fed2:a122: icmp_seq=1 ttl=64 time=0.224 ms
64 bytes from fe80::62eb:69ff:fed2:a122: icmp_seq=2 ttl=64 time=0.171 ms
--- fe80::62eb:69ff:fed2:a122%eth2 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
PING fd00:32::3(fd00:32::3) 56 data bytes
64 bytes from fd00:32::3: icmp_seq=1 ttl=64 time=0.286 ms
64 bytes from fd00:32::3: icmp_seq=2 ttl=64 time=0.168 ms
--- fd00:32::3 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
IP configuration looks like:
2: eth3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc htb state UP qlen 1000
link/ether f0:1f:af:df:c8:7b brd ff:ff:ff:ff:ff:ff
inet 85.XX.XX.186/30 brd 85.XX.XX.187 scope global eth3
inet6 2a02:f99:0:64::2/64 scope global
valid_lft forever preferred_lft forever
inet6 fe80::f21f:afff:fedf:c87b/64 scope link
valid_lft forever preferred_lft forever
2a02:f99:0:64::/64 dev eth3 proto kernel metric 256
fd00:32::/32 dev eth2 proto kernel metric 256
fe80::/64 dev eth2 proto kernel metric 256
fe80::/64 dev eth3-ifb proto kernel metric 256
fe80::/64 dev eth3 proto kernel metric 256
default via 2a02:f99:0:64::1 dev eth3 metric 1024
Neighbor discovery only finds the interface's link-local address:
PING ff02::1%eth3(ff02::1) 56 data bytes
64 bytes from fe80::f21f:afff:fedf:c87b: icmp_seq=1 ttl=64 time=0.055 ms
64 bytes from fe80::f21f:afff:fedf:c87b: icmp_seq=2 ttl=64 time=0.076 ms
64 bytes from fe80::f21f:afff:fedf:c87b: icmp_seq=3 ttl=64 time=0.060 ms
--- ff02::1%eth3 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1998ms
Trying to ping the gateway also results in:
PING 2a02:f99:0:64::1(2a02:f99:0:64::1) from 2a02:f99:0:64::2 eth3: 56 data bytes
From 2a02:f99:0:64::2 icmp_seq=1 Destination unreachable: Address unreachable
From 2a02:f99:0:64::2 icmp_seq=2 Destination unreachable: Address unreachable
From 2a02:f99:0:64::2 icmp_seq=3 Destination unreachable: Address unreachable
--- 2a02:f99:0:64::1 ping statistics ---
5 packets transmitted, 0 received, +3 errors, 100% packet loss, time 3999ms
Here's what sysctl -A | grep ipv6
spits out (where I can't spot anything wrong either):
net.ipv6.neigh.default.mcast_solicit = 3
net.ipv6.neigh.default.ucast_solicit = 3
net.ipv6.neigh.default.app_solicit = 0
net.ipv6.neigh.default.delay_first_probe_time = 5
net.ipv6.neigh.default.gc_stale_time = 60
net.ipv6.neigh.default.unres_qlen = 3
net.ipv6.neigh.default.proxy_qlen = 64
net.ipv6.neigh.default.anycast_delay = 100
net.ipv6.neigh.default.proxy_delay = 80
net.ipv6.neigh.default.locktime = 0
net.ipv6.neigh.default.retrans_time_ms = 1000
net.ipv6.neigh.default.base_reachable_time_ms = 30000
net.ipv6.neigh.default.gc_interval = 30
net.ipv6.neigh.default.gc_thresh1 = 128
net.ipv6.neigh.default.gc_thresh2 = 512
net.ipv6.neigh.default.gc_thresh3 = 1024
net.ipv6.neigh.lo.mcast_solicit = 3
net.ipv6.neigh.lo.ucast_solicit = 3
net.ipv6.neigh.lo.app_solicit = 0
net.ipv6.neigh.lo.delay_first_probe_time = 5
net.ipv6.neigh.lo.gc_stale_time = 60
net.ipv6.neigh.lo.unres_qlen = 3
net.ipv6.neigh.lo.proxy_qlen = 64
net.ipv6.neigh.lo.anycast_delay = 100
net.ipv6.neigh.lo.proxy_delay = 80
net.ipv6.neigh.lo.locktime = 0
net.ipv6.neigh.lo.retrans_time_ms = 1000
net.ipv6.neigh.lo.base_reachable_time_ms = 30000
net.ipv6.neigh.eth3.mcast_solicit = 3
net.ipv6.neigh.eth3.ucast_solicit = 3
net.ipv6.neigh.eth3.app_solicit = 0
net.ipv6.neigh.eth3.delay_first_probe_time = 5
net.ipv6.neigh.eth3.gc_stale_time = 60
net.ipv6.neigh.eth3.unres_qlen = 3
net.ipv6.neigh.eth3.proxy_qlen = 64
net.ipv6.neigh.eth3.anycast_delay = 100
net.ipv6.neigh.eth3.proxy_delay = 80
net.ipv6.neigh.eth3.locktime = 0
net.ipv6.neigh.eth3.retrans_time_ms = 1000
net.ipv6.neigh.eth3.base_reachable_time_ms = 30000
net.ipv6.neigh.eth2.mcast_solicit = 3
net.ipv6.neigh.eth2.ucast_solicit = 3
net.ipv6.neigh.eth2.app_solicit = 0
net.ipv6.neigh.eth2.delay_first_probe_time = 5
net.ipv6.neigh.eth2.gc_stale_time = 60
net.ipv6.neigh.eth2.unres_qlen = 3
net.ipv6.neigh.eth2.proxy_qlen = 64
net.ipv6.neigh.eth2.anycast_delay = 100
net.ipv6.neigh.eth2.proxy_delay = 80
net.ipv6.neigh.eth2.locktime = 0
net.ipv6.neigh.eth2.retrans_time_ms = 1000
net.ipv6.neigh.eth2.base_reachable_time_ms = 30000
net.ipv6.neigh.eth3-ifb.mcast_solicit = 3
net.ipv6.neigh.eth3-ifb.ucast_solicit = 3
net.ipv6.neigh.eth3-ifb.app_solicit = 0
net.ipv6.neigh.eth3-ifb.delay_first_probe_time = 5
net.ipv6.neigh.eth3-ifb.gc_stale_time = 60
net.ipv6.neigh.eth3-ifb.unres_qlen = 3
net.ipv6.neigh.eth3-ifb.proxy_qlen = 64
net.ipv6.neigh.eth3-ifb.anycast_delay = 100
net.ipv6.neigh.eth3-ifb.proxy_delay = 80
net.ipv6.neigh.eth3-ifb.locktime = 0
net.ipv6.neigh.eth3-ifb.retrans_time_ms = 1000
net.ipv6.neigh.eth3-ifb.base_reachable_time_ms = 30000
net.ipv6.xfrm6_gc_thresh = 2048
net.ipv6.conf.all.forwarding = 0
net.ipv6.conf.all.hop_limit = 64
net.ipv6.conf.all.mtu = 1280
net.ipv6.conf.all.accept_ra = 1
net.ipv6.conf.all.accept_redirects = 1
net.ipv6.conf.all.autoconf = 1
net.ipv6.conf.all.dad_transmits = 1
net.ipv6.conf.all.router_solicitations = 3
net.ipv6.conf.all.router_solicitation_interval = 4
net.ipv6.conf.all.router_solicitation_delay = 1
net.ipv6.conf.all.force_mld_version = 0
net.ipv6.conf.all.use_tempaddr = 0
net.ipv6.conf.all.temp_valid_lft = 604800
net.ipv6.conf.all.temp_prefered_lft = 86400
net.ipv6.conf.all.regen_max_retry = 3
net.ipv6.conf.all.max_desync_factor = 600
net.ipv6.conf.all.max_addresses = 16
net.ipv6.conf.all.accept_ra_defrtr = 1
net.ipv6.conf.all.accept_ra_pinfo = 1
net.ipv6.conf.all.accept_ra_rtr_pref = 1
net.ipv6.conf.all.router_probe_interval = 60
net.ipv6.conf.all.accept_ra_rt_info_max_plen = 0
net.ipv6.conf.all.proxy_ndp = 0
net.ipv6.conf.all.accept_source_route = 0
net.ipv6.conf.all.optimistic_dad = 0
net.ipv6.conf.all.mc_forwarding = 0
net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.all.accept_dad = 1
net.ipv6.conf.all.force_tllao = 0
net.ipv6.conf.default.forwarding = 0
net.ipv6.conf.default.hop_limit = 64
net.ipv6.conf.default.mtu = 1280
net.ipv6.conf.default.accept_ra = 1
net.ipv6.conf.default.accept_redirects = 1
net.ipv6.conf.default.autoconf = 1
net.ipv6.conf.default.dad_transmits = 1
net.ipv6.conf.default.router_solicitations = 3
net.ipv6.conf.default.router_solicitation_interval = 4
net.ipv6.conf.default.router_solicitation_delay = 1
net.ipv6.conf.default.force_mld_version = 0
net.ipv6.conf.default.use_tempaddr = 0
net.ipv6.conf.default.temp_valid_lft = 604800
net.ipv6.conf.default.temp_prefered_lft = 86400
net.ipv6.conf.default.regen_max_retry = 3
net.ipv6.conf.default.max_desync_factor = 600
net.ipv6.conf.default.max_addresses = 16
net.ipv6.conf.default.accept_ra_defrtr = 1
net.ipv6.conf.default.accept_ra_pinfo = 1
net.ipv6.conf.default.accept_ra_rtr_pref = 1
net.ipv6.conf.default.router_probe_interval = 60
net.ipv6.conf.default.accept_ra_rt_info_max_plen = 0
net.ipv6.conf.default.proxy_ndp = 0
net.ipv6.conf.default.accept_source_route = 0
net.ipv6.conf.default.optimistic_dad = 0
net.ipv6.conf.default.mc_forwarding = 0
net.ipv6.conf.default.disable_ipv6 = 0
net.ipv6.conf.default.accept_dad = 1
net.ipv6.conf.default.force_tllao = 0
net.ipv6.conf.lo.forwarding = 0
net.ipv6.conf.lo.hop_limit = 64
net.ipv6.conf.lo.mtu = 16436
net.ipv6.conf.lo.accept_ra = 1
net.ipv6.conf.lo.accept_redirects = 1
net.ipv6.conf.lo.autoconf = 1
net.ipv6.conf.lo.dad_transmits = 1
net.ipv6.conf.lo.router_solicitations = 3
net.ipv6.conf.lo.router_solicitation_interval = 4
net.ipv6.conf.lo.router_solicitation_delay = 1
net.ipv6.conf.lo.force_mld_version = 0
net.ipv6.conf.lo.use_tempaddr = -1
net.ipv6.conf.lo.temp_valid_lft = 604800
net.ipv6.conf.lo.temp_prefered_lft = 86400
net.ipv6.conf.lo.regen_max_retry = 3
net.ipv6.conf.lo.max_desync_factor = 600
net.ipv6.conf.lo.max_addresses = 16
net.ipv6.conf.lo.accept_ra_defrtr = 1
net.ipv6.conf.lo.accept_ra_pinfo = 1
net.ipv6.conf.lo.accept_ra_rtr_pref = 1
net.ipv6.conf.lo.router_probe_interval = 60
net.ipv6.conf.lo.accept_ra_rt_info_max_plen = 0
net.ipv6.conf.lo.proxy_ndp = 0
net.ipv6.conf.lo.accept_source_route = 0
net.ipv6.conf.lo.optimistic_dad = 0
net.ipv6.conf.lo.mc_forwarding = 0
net.ipv6.conf.lo.disable_ipv6 = 0
net.ipv6.conf.lo.accept_dad = -1
net.ipv6.conf.lo.force_tllao = 0
net.ipv6.conf.eth3.forwarding = 0
net.ipv6.conf.eth3.hop_limit = 64
net.ipv6.conf.eth3.mtu = 1500
net.ipv6.conf.eth3.accept_ra = 1
net.ipv6.conf.eth3.accept_redirects = 1
net.ipv6.conf.eth3.autoconf = 0
net.ipv6.conf.eth3.dad_transmits = 1
net.ipv6.conf.eth3.router_solicitations = 3
net.ipv6.conf.eth3.router_solicitation_interval = 4
net.ipv6.conf.eth3.router_solicitation_delay = 1
net.ipv6.conf.eth3.force_mld_version = 0
net.ipv6.conf.eth3.use_tempaddr = 1
net.ipv6.conf.eth3.temp_valid_lft = 604800
net.ipv6.conf.eth3.temp_prefered_lft = 86400
net.ipv6.conf.eth3.regen_max_retry = 3
net.ipv6.conf.eth3.max_desync_factor = 600
net.ipv6.conf.eth3.max_addresses = 16
net.ipv6.conf.eth3.accept_ra_defrtr = 1
net.ipv6.conf.eth3.accept_ra_pinfo = 1
net.ipv6.conf.eth3.accept_ra_rtr_pref = 1
net.ipv6.conf.eth3.router_probe_interval = 60
net.ipv6.conf.eth3.accept_ra_rt_info_max_plen = 0
net.ipv6.conf.eth3.proxy_ndp = 0
net.ipv6.conf.eth3.accept_source_route = 0
net.ipv6.conf.eth3.optimistic_dad = 0
net.ipv6.conf.eth3.mc_forwarding = 0
net.ipv6.conf.eth3.disable_ipv6 = 0
net.ipv6.conf.eth3.accept_dad = 1
net.ipv6.conf.eth3.force_tllao = 0
net.ipv6.conf.eth2.forwarding = 0
net.ipv6.conf.eth2.hop_limit = 64
net.ipv6.conf.eth2.mtu = 1500
net.ipv6.conf.eth2.accept_ra = 1
net.ipv6.conf.eth2.accept_redirects = 1
net.ipv6.conf.eth2.autoconf = 1
net.ipv6.conf.eth2.dad_transmits = 1
net.ipv6.conf.eth2.router_solicitations = 3
net.ipv6.conf.eth2.router_solicitation_interval = 4
net.ipv6.conf.eth2.router_solicitation_delay = 1
net.ipv6.conf.eth2.force_mld_version = 0
net.ipv6.conf.eth2.use_tempaddr = 0
net.ipv6.conf.eth2.temp_valid_lft = 604800
net.ipv6.conf.eth2.temp_prefered_lft = 86400
net.ipv6.conf.eth2.regen_max_retry = 3
net.ipv6.conf.eth2.max_desync_factor = 600
net.ipv6.conf.eth2.max_addresses = 16
net.ipv6.conf.eth2.accept_ra_defrtr = 1
net.ipv6.conf.eth2.accept_ra_pinfo = 1
net.ipv6.conf.eth2.accept_ra_rtr_pref = 1
net.ipv6.conf.eth2.router_probe_interval = 60
net.ipv6.conf.eth2.accept_ra_rt_info_max_plen = 0
net.ipv6.conf.eth2.proxy_ndp = 0
net.ipv6.conf.eth2.accept_source_route = 0
net.ipv6.conf.eth2.optimistic_dad = 0
net.ipv6.conf.eth2.mc_forwarding = 0
net.ipv6.conf.eth2.disable_ipv6 = 0
net.ipv6.conf.eth2.accept_dad = 1
net.ipv6.conf.eth2.force_tllao = 0
net.ipv6.conf.eth3-ifb.forwarding = 0
net.ipv6.conf.eth3-ifb.hop_limit = 64
net.ipv6.conf.eth3-ifb.mtu = 1500
net.ipv6.conf.eth3-ifb.accept_ra = 1
net.ipv6.conf.eth3-ifb.accept_redirects = 1
net.ipv6.conf.eth3-ifb.autoconf = 1
net.ipv6.conf.eth3-ifb.dad_transmits = 1
net.ipv6.conf.eth3-ifb.router_solicitations = 3
net.ipv6.conf.eth3-ifb.router_solicitation_interval = 4
net.ipv6.conf.eth3-ifb.router_solicitation_delay = 1
net.ipv6.conf.eth3-ifb.force_mld_version = 0
net.ipv6.conf.eth3-ifb.use_tempaddr = 0
net.ipv6.conf.eth3-ifb.temp_valid_lft = 604800
net.ipv6.conf.eth3-ifb.temp_prefered_lft = 86400
net.ipv6.conf.eth3-ifb.regen_max_retry = 3
net.ipv6.conf.eth3-ifb.max_desync_factor = 600
net.ipv6.conf.eth3-ifb.max_addresses = 16
net.ipv6.conf.eth3-ifb.accept_ra_defrtr = 1
net.ipv6.conf.eth3-ifb.accept_ra_pinfo = 1
net.ipv6.conf.eth3-ifb.accept_ra_rtr_pref = 1
net.ipv6.conf.eth3-ifb.router_probe_interval = 60
net.ipv6.conf.eth3-ifb.accept_ra_rt_info_max_plen = 0
net.ipv6.conf.eth3-ifb.proxy_ndp = 0
net.ipv6.conf.eth3-ifb.accept_source_route = 0
net.ipv6.conf.eth3-ifb.optimistic_dad = 0
net.ipv6.conf.eth3-ifb.mc_forwarding = 0
net.ipv6.conf.eth3-ifb.disable_ipv6 = 0
net.ipv6.conf.eth3-ifb.accept_dad = -1
net.ipv6.conf.eth3-ifb.force_tllao = 0
net.ipv6.ip6frag_high_thresh = 262144
net.ipv6.ip6frag_low_thresh = 196608
net.ipv6.ip6frag_time = 60
net.ipv6.route.gc_thresh = 1024
net.ipv6.route.max_size = 4096
net.ipv6.route.gc_min_interval = 0
net.ipv6.route.gc_timeout = 60
net.ipv6.route.gc_interval = 30
net.ipv6.route.gc_elasticity = 9
net.ipv6.route.mtu_expires = 600
net.ipv6.route.min_adv_mss = 1220
net.ipv6.route.gc_min_interval_ms = 500
net.ipv6.icmp.ratelimit = 1000
net.ipv6.bindv6only = 0
net.ipv6.ip6frag_secret_interval = 600
net.ipv6.mld_max_msf = 64
Update 2017-07-07 #2:
Provider says both machines are hooked into the same switch. Meaning this has to be a configuration issue.
Update 2017-07-08:
I have upgraded the kernel from 3.4 to 3.16 and the Intel igb
NIC driver to the latest package from their website. However, to no avail, observed behaviour didn't change at all.
Best Answer
The commands you typed at first look entirely correct given the quoted information from the provider. This leaves us with a few possible guesses as to what might be the problem.
eth3
but something else.A whois lookup will reveal that the IP address you are using is part of
2a00::/12
allocated to RIPE but has not yet been allocated to any ISP. So my guess is that the provider mistyped the IP address in the information you received.A few additional notes which may or may not be of interest. Your route command could be abbreviated to:
It is redundant to specify
dev eth3
here because you already have a route indicating that2a02:f99:0:64::1
I have seen at least one provider use
fe80::1
as gateway address. Given that the provider told you to use2a02:f99:0:64::1
as gateway address it was not supposed to work, but it was still a sensible attempt at figuring out what was wrong.A couple of other things you can do to attempt finding out what is going on is to look at a packet capture, for example by typing:
And you can try to look for all IPv6 nodes on the segment with:
But my best advice is to ask the provider for correct information mentioning that
2a02:f99::/32
is unallocated.