如何获得IPv6的工作?

我的托pipe服务提供商提供了以下信息:

子网:2a02:f99:0:64 :: / 64
网关:2a02:f99:0:64 :: 1

所以我做了(是的, eth3是正确的界面)

 ip addr add 2a02:f99:0:64::2/64 dev eth3 ip -6 route add ::/0 via 2a02:f99:0:64::1 dev eth3 

 $ 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 ... 

我也试过了

 ip -6 route del ::/0 via 2a02:f99:0:64::1 dev eth3 ip -6 route add ::/0 via fe80::1 dev eth3 

但是这并没有改变什么,仍然无法平息或退出。

我哪里做错了? 我如何运行IPv6?


更新2017-07-07

主机提供商坚持基础设施是好的。

另一台可以访问同一子网的机器可以绑定地址,并通过我认为是路由器广播(RA)的方式build立IPv6连接,因为只有fe80::20a:8bff:fe98:3400作为网关工作,而提供者指定的网关地址没有。

然而,这个post关于这台机器仍然没有find任何邻居的运气。 启用RA似乎也没有任何效果。

在两台机器的交叉连接上(在他们的次要网卡上)运行IPv6,所以IPv6应该基本上都可用于它们(来自有问题的机器上的所有粘贴):

 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 

IPconfiguration看起来像:

 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 

邻居发现只发现接口的链路本地地址:

 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 

尝试ping网关也会导致:

 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 

这是什么sysctl -A | grep ipv6 sysctl -A | grep ipv6吐出来(我也找不到任何错误):

 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 

更新2017-07-07#2

提供商说,两台机器都挂在同一台交换机上。 这意味着这是一个configuration问题。


更新2017-07-08

我已经将内核从3.4升级到3.16,英特尔igb网卡驱动程序从他们的网站升级到最新的软件包。 然而,无济于事,观察到的行为根本没有改变。

首先input的命令看起来是完全正确的,给定来自提供者的引用信息。 这给我们留下了一些可能的问题的猜测。

  • 提供者给了你不正确的信息。
  • 使用正确的界面其实不是eth3而是别的。
  • 从机器到网关的path上存在严重错误configuration的防火墙。
  • 通信不应该使用以太网上的IPv6,而应该使用其他一些协议,这可能是基于以太网上PPP的IPv6。

whois查找将显示您使用的IP地址是分配给RIPE的2a00::/12一部分,但尚未分配给任何ISP。 所以我的猜测是,提供者错误地input了您收到的信息中的IP地址。

一些额外的笔记,可能会或可能不感兴趣。 您的路线命令可以缩写为:

 ip -6 route add ::/0 via 2a02:f99:0:64::1 

在这里指定dev eth3是多余的,因为你已经有了一个指示2a02:f99:0:64::1的路由

我已经看到至less有一个提供者使用fe80::1作为网关地址。 考虑到提供商告诉你使用2a02:f99:0:64::1作为网关地址,它不应该工作,但它仍然是一个明智的尝试找出什么是错的。

您可以尝试找出发生了什么的其他一些事情是查看数据包捕获,例如键入以下内容:

 tcpdump -ni eth3 ip6 -s0 

您可以尝试使用以下命令查找段上的所有IPv6节点:

 ping6 ff02::1%eth3 

但我最好的build议是要求提供者提供2a02:f99::/32分配的正确信息。

在与托pipe服务提供商进行了一周的反复(无数个小时的尝试各种各样的事情)后,事实certificate这毕竟是一个提供商/基础设施问题。

让他们把服务器插入不同的路由器后,一切正常。

我想这里学到的教训是,提供者并不总是正确的,当他们告诉你这是一个机器configuration问题。