IPv6を有効にしようとすると、「ホストへのルートがありません」エラーが発生する


8

プロバイダーから提供された静的IPv4およびIPv6アドレスを使用して、KVMサーバーでデュアルスタックネットワークを構成しています。

Ubuntuをインストールするときに、必要に応じてすべてのアドレス、ネームサーバー、ゲートウェイを入力します。その後、/etc/network/interfacesファイルを確認したところ、IPv6スタンザが存在しない(ifconfig実行により確認された)ことに気づいたので、関連する行を追加しました。これが最終的なファイルです。

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
        address 151.236.18.86
        netmask 255.255.255.0
        network 151.236.18.0
        broadcast 151.236.18.255
        gateway 151.236.18.1
        # dns-* options are implemented by the resolvconf package, if installed
        dns-nameservers 91.227.204.227 91.227.205.227
        dns-search mydomainname.com
iface eth0 inet6 static
        pre-up modprobe ipv6
        address 2001:b60:1000:151:236:18:86:0
        netmask 112
        gateway 2001:b60:1000::1
        dns-nameservers 2001:4860:4860::8888 2001:4860:4860::8844
        dns-search mydomainname.com

次にsudo /etc/init.d/networking stop && sudo /etc/init.d/networking restart、を介してネットワークを再起動したところ、IPv4が機能している間は、アウトバウンドIPv6接続が利用できなかったことがわかりました(インバウンド接続をまだ確認していません)。

ifconfigip -6 addrIPv6アドレスが認識されていることを示します。

eth0      Link encap:Ethernet  HWaddr 52:54:00:b1:27:87  
          inet addr:151.236.18.86  Bcast:151.236.18.255  Mask:255.255.255.0
          inet6 addr: fe80::5054:ff:feb1:2787/64 Scope:Link
          inet6 addr: 2001:b60:1000:151:236:18:86:0/112 Scope:Global
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:16409 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1178 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1126656 (1.1 MB)  TX bytes:763658 (763.6 KB)

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
    inet6 2001:b60:1000:151:236:18:86:0/112 scope global 
       valid_lft forever preferred_lft forever
    inet6 fe80::5054:ff:feb1:2787/64 scope link 
       valid_lft forever preferred_lft forever

逆に、IPv6スタックのデフォルトルートは存在しません。

$ ip -6 route
2001:b60:1000:151:236:18:86:0/112 dev eth0  proto kernel  metric 256 
fe80::/64 dev eth0  proto kernel  metric 256 

見つからないルートを追加しようとすると、「ホストへのルートがありません」エラーが発生します。

$ sudo ip -6 route add default via 2001:b60:1000::1
RTNETLINK answers: No route to host

何が問題になっている可能性がありますか?また、IPv6スタックを機能させるためにネットワーク構成を修正するにはどうすればよいですか?

回答:


6

仮想マシン内で、次を実行します。

ping6 ff02::2%eth0

これff02::2は、IPv6の「すべてのルーター」マルチキャストアドレスです。オンリンクルーターは、独自のアドレスでpingに応答します。例えば:

64 bytes from fe80::56e6:fcff:fef4:66f1: icmp_seq=1 ttl=64 time=0.347 ms

次に、これをgatewayアドレスとして追加できます。

iface eth0 inet6 static
        .....
        gateway fe80::56e6:fcff:fef4:66f1
        .....

私はそれを行い、3つのルーターが応答しました(プロバイダーが提供したゲートウェイアドレスに一致するルーターはありませんでした)。レイテンシが最も低いものを選び、ネットワーク構成を変更しました。これで名前解決は機能しますが、IPv6接続は機能しません(私が発行したping6 -c 3 ipv6.google.com、DNSはアドレスを見つけましたが、100%のパケット損失がありました)。何か案は?
アレッサンドロメンティ2013

3つの異なるルーターが応答しましたか?あなたのプロバイダーは私たちが思っていたよりもさらに奇妙な設定をしています。この時点では、それぞれを試してみて、どれかが機能するかどうかを確認することしかできません。場合はいずれも、それらの作品の、あなたは親切修正に彼らの壊れたネットワークを、それらを依頼するプロバイダに連絡する必要があります。:)
マイケルハンプトン

3

ネットマスクは64である必要があります。IPv6では、すべてのLANは通常/ 64です。あなたのプロバイダーはその/ 64から/ 112を使用することを許可していると思いますが、インターフェースで/ 64を設定する必要があります。


/ 64ネットブロックを使用するようにIPv6スタックを再構成しましたが、残念ながら問題は同じ症状で持続します。
アレッサンドロメンティ2013

申し訳ありませんが、ホストが2001:b60:1000:151 :: / 64にあり、ゲートウェイが2001:b60:1000:0 :: / 64にあることがわかりました。CDLANが間違った情報を提供していたか、IPv6ネットワークがめちゃくちゃであるか、標準のプラクティスから逸脱しています...
Sander Steffann 2013

1
この奇妙な逸脱は、残念ながらVPSプロバイダーの間ではあまりにも一般的です。
マイケルハンプトン

1

プロバイダーから提供されたネットワークマスク長が正しくないことがわかりました48。正しいものはでした。それを変えることはトリックをしました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.