web-dev-qa-db-ja.com

IPv6は、デフォルトゲートウェイをpingした後でのみ機能します。

2013年になりましたが、サーバーでIPv6をアクティブ化するのは長い間遅れていると思いました。しかし、残念ながら、私はいくつかの問題に直面しました。正直なところ、私はIPv6の経験が少ないので、私の「小さな」問題を解決していただければ幸いです。

簡単な説明:次のアドレスは難読化されており、私の構成で使用したものではありません;)

Debian squeeze(Debian 2.6.32-46)を実行していて、プロバイダーから/ 64 IPv6ブロックを取得しました:2a01:4f8:a0:aaaa ::/64

だから私は/ etc/network/interfacesファイルを次のように変更しました(これも私のプロバイダーが推奨する方法です):

# Loopback device:
auto lo
iface lo inet loopback

# device: eth0
auto  eth0
iface eth0 inet static
  address   85.10.xxx.zz
  broadcast 85.10.xxx.yy
  netmask   255.255.255.224
  gateway   85.10.xxx.1


iface eth0 inet6 static
  # Main IPv6 Address of the server
  address 2a01:4f8:a0:aaaa::2
  netmask 64
  gateway fe80::1


auto eth0:1
iface eth0:1 inet static
        address 85.10.xxxx.uu
        netmask 255.255.255.224

# default route to access subnet
up route add -net 85.10.xxx.0 netmask 255.255.255.224 gw 85.10.xxx.1 eth0

再起動後(私は怠惰で、routeまたはipを使用してすべてを追加したくありません)私のethインターフェイスは次のようになります。

eth0      < first line removed >  
          inet addr:85.10.xxx.zz  Bcast:85.10.xxx.yy  Mask:255.255.255.224
          inet6 addr: 2a01:4f8:a0:aaaa::2/64 Scope:Global
          inet6 addr: fe80::bbbb:cccc:dddd:eeee/64 Scope:Link <--- from MAC address
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:24133 errors:0 dropped:0 overruns:0 frame:0
          TX packets:21712 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:3464246 (3.3 MiB)  TX bytes:5776451 (5.5 MiB)
          Interrupt:25 Base address:0x2000 

ルートip -6 routeは次のようになります。

2a01:4f8:a0:aaaa::/64 dev eth0  metric 1024  mtu 1500 advmss 1440 hoplimit 4294967295
fe80::/64 dev eth0  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 4294967295
fe80::/64 dev vboxnet0  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 4294967295
default via fe80::1 dev eth0  metric 1024  mtu 1500 advmss 1440 hoplimit 4294967295

さて、私の問題は、私のIPv6が正しく機能していないことです。 IPv6アドレスをpingしようとすると、 ping6 ipv6.google.com。取得:"Destination unreachable:Address unreachable"

tcpdump -i eth0 ip6では次のようになります。

00:29:05.386500 IP6 2a01:4f8:a0:aaaa::2 > ff02::1:ff00:1: ICMP6, neighbor solicitation, who has fe80::1, length 32
00:29:05.390869 IP6 2a01:4f8:a0:bbbb::1 > 2a01:4f8:a0:aaaa::2: ICMP6, neighbor advertisement, tgt is fe80::1, length 32

2a01:4f8:a0:bbbb :: 1はbtwです。私のゲートウェイとしてリストされています(プロバイダーのオンライン管理コンソールで)。

これはすべて、NDPエントリが不足している、またはfe80 :: 1のMACアドレスが不足していることが原因だと思います。 ip -6 neighが私にくれたから:

fe80::1 dev eth0  router FAILED 

私がそうすると私はそう思います:ping6 -I eth0 fe80::1私は適切なエコー応答と私のfe80 :: 1アドレスに必要なMACアドレス、および完全に機能するIPv6スタックを取得します。

$ip -6 neigh
fe80::1 dev eth0 lladdr ll:mm:nn:oo:pp:qq router REACHABLE

これもtcpdump -i eth0 ip6からのダンプです。

00:30:37.555702 IP6 fe80::bbbb:cccc:dddd:eeee > fe80::1: ICMP6, echo request, seq 1, length 64
00:30:37.560219 IP6 fe80::1 > fe80::bbbb:cccc:dddd:eeee: ICMP6, echo reply, seq 1, length 64

(再び:fe80 :: bbbb:cccc:dddd:eeeeは、MACアドレスから派生したリンクローカルアドレスです)

この時点から、IPv6を使用できます。Webサイトをping6したり、IPv6を使用してサービスに接続したり、IPv6を使用してssh経由でサーバーに接続したりできます。

それで、私はここで何が間違っているのですか?私はこれを「修正」する方法を見つけるために多くの時間を費やしてきました。 2つのコマンドを使用して解決できると思います。ちなみに、サーバーでIPv6を扱うのはこれが初めてです。だから私の経験不足を許してください。ところでまた、いくつかのsysctl net.ipv6。*フラグを変更しようとしましたが、成功しませんでした。ソリューションに必要な場合は、ここに構成を投稿することもできます。

すべてのヒントは大歓迎です!

事前にどうもありがとうございました!

7
user158413

今日、問題全体を数週間後にもう一度試してみました。そして、私は何と言えば、私はそれを修正しました。誰かがipv6ループバックを追加することで問題が解決した理由を教えてもらえますか?これが私の/ etc/network/interfacesファイルに追加したものです:

iface lo inet6 loopback

そもそもなぜ追加するのを忘れたのか分かりません!^^ご回答ありがとうございます!

8
user158413

私はあなたが言うあなたの質問のビットを見ています:

さて、私の問題は、私のIPv6が正しく機能していないことです。 IPv6アドレスをpingしようとすると、 ping6 ipv6.google.com。 「宛先に到達できません:アドレスに到達できません」が表示されます

これはtcpdump -i eth0 ip6では次のようになります。

00:29:05.386500 IP6 2a01:4f8:a0:aaaa::2 > ff02::1:ff00:1: ICMP6, neighbor solicitation, who has fe80::1, length 32 00:29:05.390869 IP6
2a01:4f8:a0:bbbb::1 > 2a01:4f8:a0:aaaa::2: ICMP6, neighbor advertisement, tgt is fe80::1, length 32

これは奇妙です。システムは正しい(tcpdumpからわかる限り)ネイバー送信請求を送信し、ルーターは正しい(再びAFAICT)ネイバーアドバタイズメントを送信します。ローカルマシンに問題があることを示しています。

そのマシンでファイアウォールを設定していますか? ICMPv6フィルタリングは、ICMPフィルタリングとは大きく異なります。 IPv6通信のより多くの部分が必要ICMPv6が適切に機能している。フィルタリングしすぎたり、間違った方法でフィルタリングしたりすると、今見ているような問題が発生します。

詳細を知りたい場合は RFC 489 をご覧ください。

1
Sander Steffann

fe80::1ではなく、ルーターの実際のアドレスの1つをデフォルトゲートウェイとして使用してみてください。

0
Michael Hampton