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。*フラグを変更しようとしましたが、成功しませんでした。ソリューションに必要な場合は、ここに構成を投稿することもできます。
すべてのヒントは大歓迎です!
事前にどうもありがとうございました!
今日、問題全体を数週間後にもう一度試してみました。そして、私は何と言えば、私はそれを修正しました。誰かがipv6ループバックを追加することで問題が解決した理由を教えてもらえますか?これが私の/ etc/network/interfacesファイルに追加したものです:
iface lo inet6 loopback
そもそもなぜ追加するのを忘れたのか分かりません!^^ご回答ありがとうございます!
私はあなたが言うあなたの質問のビットを見ています:
さて、私の問題は、私の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 をご覧ください。
fe80::1
ではなく、ルーターの実際のアドレスの1つをデフォルトゲートウェイとして使用してみてください。