web-dev-qa-db-ja.com

IPv6を機能させる方法は?

私のホスティングプロバイダーは私に次の情報を提供しました:

サブネット: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

しかし、それは何も変更しませんでしたが、それでもpingを実行したり送信したりすることはできません。

どこで私は間違えましたか? IPv6を実行するにはどうすればよいですか?


更新2017-07-07

ホスティングプロバイダーは、インフラストラクチャは問題ないと主張しています。

同じサブネットにアクセスできる別のマシンは、アドレスをバインドし、fe80::20a:8bff:fe98:3400ゲート​​ウェイは機能しますが、プロバイダーが指定したゲートウェイアドレスは機能しません。

ただし、この投稿の対象となっているマシンは、まだ隣人を見つけることができません。 RAを有効にしても、まったく効果がないようです。

2台のマシンのクロスオーバー接続(セカンダリ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, 2 received, 0% packet loss, 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, 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吐き出します(私が問題を見つけられない場合):

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ドライバをWebサイトから最新のパッケージにアップグレードしました。すべて。

4
Cobra_Fast

ホスティングプロバイダーと1週間行ったり来たりした後(そしてあらゆる種類のことを試すのに数え切れないほどの時間が無駄になりました)、結局それはプロバイダー/インフラストラクチャの問題であることがわかりました。

サーバーを別のルーターに接続してもらうと、すべて正常に機能します。

ここで学ぶべき教訓は、プロバイダーがマシン構成の問題であると言ったときに、プロバイダーが常に正しいとは限らないということだと思います。

1
Cobra_Fast

最初に入力したコマンドは、プロバイダーからの引用情報を考えると、完全に正しいように見えます。これにより、何が問題になる可能性があるかについて、いくつかの推測が可能になります。

  • プロバイダーから誤った情報が提供されました。
  • 使用する正しいインターフェースは実際には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を指定するのは冗長です。

少なくとも1つのプロバイダーがゲートウェイアドレスとしてfe80::1を使用しているのを見ました。プロバイダーがゲートウェイアドレスとして2a02:f99:0:64::1を使用するように指示したことを考えると、それは機能するとは想定されていませんでしたが、何が問題かを解明するのは賢明な試みでした。

何が起こっているのかを調べるために実行できる他の2つのことは、たとえば次のように入力して、パケットキャプチャを確認することです。

tcpdump -ni eth3 ip6 -s0

そして、あなたはセグメントですべてのIPv6ノードを探すことを試みることができます:

ping6 ff02::1%eth3

しかし、私の最善のアドバイスは、2a02:f99::/32が未割り当てであることを言及する正しい情報をプロバイダーに尋ねることです。

4
kasperd