Ubuntu10.04でIPv6アドレスを設定する際に問題が発生しました。ネットワークマネージャーを無効にしました。私の/ etc/network/interfaceファイルは次のようになります。
iface eth0 inet6 static
pre-up modeprobe ipv6
address fe80::1
netmask 10
gateway fe80::2
IPアドレスをfe80 :: 1として設定しましたが、eth0を起動するとifconfigが表示されます
inet6 addr: fe80::a00:27ff:fe1e:5edf/64 Scope:Link
なぜ異なるIPアドレスが表示されるのですか?
走ると
ping6 fe80::a00:27ff:fe1e:5edf/64
不明なホストを教えてくれます。どうして ?
コメントで、ifconfigを使用してインターフェイスを起動すると述べました。この場合、問題はifconfigがinterfaces
ファイルを使用しないことです(パケットの受信を開始するようにインターフェイスに指示するだけです) 。この設定ファイルはDebian/Ubuntuに固有であり、ifupdownツールifup
およびifdown
によってのみ読み取られます。したがって、以下を使用する必要があります。
ifup eth0
それでも、構成ファイルの構文では、新しい論理インターフェースを示すために「iface
」ではなく「interface
」が使用されるため、構成は拒否されます。 (完全な構文の説明については、interfaces(5)マニュアルを参照してください。)
(pre-up
行も1)不要:自動的に実行され、2)入力ミス: "modprobe
"です。)
fe80::a00:27ff:fe1e:5edf
アドレスは、構成のためではなく、IPv6がそれを必要とするために表示されます。すべてのインターフェースには、「インターフェースID」(そのMACアドレス)に基づくリンクローカルアドレスが必要です。これらのアドレスは、Linuxカーネルによって自動的に追加されます。
(インターフェイスには多くのアドレスを含めることができます。同じインターフェイスにfe80::1
とfe80::a00:27ff:fe1e:5edf
の両方を含めることができますが、それでも機能します。)
また、fe80::/10
アドレスはlink-local –つまり、 ルーティングされることはありません であり、gateway
構成設定は無意味であることを忘れないでください。 。
つまり、リンクローカルアドレスにアクセスしようとするときは常に、使用するインターフェイスを手動で指定する必要があります。これは、アドレスに ゾーンインデックス を追加することによって行われます。 (Linuxでは、ゾーンインデックスはインターフェイス名と同じです。)たとえば、eth0を介して接続するには、%eth0
を追加する必要があります。
ping6 fe80::a00:27ff:fe1e:5edf%eth0
(Oliver Salzburgの答えも正しいです。単一のホストを参照する場合は、サブネットマスクを指定しないでください。)
ping
のサブネットマスクを指定する必要はないと思います。
ping6 fe80::a00:27ff:fe1e:5edf
大丈夫なはずです。