linux – 如何让IPv6工作?

前端之家收集整理的这篇文章主要介绍了linux – 如何让IPv6工作?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的托管服务提供商向我提供了以下信息:

Subnet: 2a02:f99:0:64::/64
Gateway: 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

但是没有改变任何东西,仍然无法ping入或退出.

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

更新2017-07-07:

托管服务提供商坚持认为基础设施很好.

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

然而,这篇文章所关注的机器仍然没有找到任何邻居.启用RA似乎也没有任何效果.

通过两台机器的交叉连接(在其辅助NIC上)运行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,time 1000ms

IP配置如下:

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,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吐出来(我也看不出任何错误):

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:

提供商称两台机器都连接在同一台交换机上.这意味着这必须是一个配置问题.

更新2017-07-08:

我已将内核从3.4升级到3.16,并将Intel igb NIC驱动程序升级到他们网站上的最新软件包.然而,无济于事,观察到的行为根本没有改变.

解决方法

根据提供商提供的引用信息,您首先输入的命令看起来完全正确.这让我们对可能出现的问题进行了一些猜测.

>提供商向您提供了错误的信息.
>使用的正确接口实际上不是eth3,而是其他东西.
>从机器到网关的路径上存在严重错误配置的防火墙.
>通信不应该使用IPv6 over Ethernet,而是使用其他协议,这可能是IPv6 over PPP over Ethernet.

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

一些可能或可能不感兴趣的附加说明.您的route命令可以缩写为:

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

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

我见过至少有一家提供商使用fe80 :: 1作为网关地址.鉴于提供商告诉你使用2a02:f99:0:64 :: 1作为网关地址它不应该工作,但它仍然是一个明智的尝试,找出问题所在.

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

tcpdump -ni eth3 ip6 -s0

您可以尝试使用以下方法查找该段上的所有IPv6节点:

ping6 ff02::1%eth3

但我最好的建议是要求提供商提供正确的信息,提到2a02:f99 :: / 32是未分配的.

猜你在找的Linux相关文章