web-dev-qa-db-ja.com

IPv6で複数のアドレスを持つ単一のインターフェイスが許可されるのはなぜですか?

「単一のインターフェイスには、任意のタイプ(ユニキャスト、エニーキャスト、およびマルチキャスト)またはスコープの複数のIPv6アドレスを含めることもできます」---- RFC 4291から引用

最近、私が進めた実験中にこの質問に出くわしました。手がかりなしでRFC4291を通過しました...

これが私の実験の簡単な紹介です:
2つのホストがあり、それぞれに2つのIPv6アドレスが割り当てられています。次に、2つのホスト間の接続をテストしました。コマンド「ping6ipv6_addr」を使用します。しかし、コマンドping6ではピアホストの両方のアドレスに到達できないことが判明しました。

例を使用するとよりわかりやすくなります*(両方のコマンドはホストAで実行され、Linuxケネル2.6.32を使用)*:
ping6 addr_b_1 ---動作します
ping6 addr_b_2 ---通過できませんでした

皆さんと話し合いたい質問が2つあります。
1。なぜipv6プロトコルはこの種のメカニズム、複数のアドレスを持つ単一のインターフェースを許可する必要があるのですか?
2。ホストaの両方のアドレスに同時にアクセスできないのはなぜですか。(そうあるべきです。IPv6のデフォルトのアドレス選択はRFC 3484で定義されています)

君たちありがとう!

19
Simon Gong

初期のIPv4スタックは、インターフェイスごとに複数のIPアドレスをサポートしていませんでした。その後の改善により、「セカンダリ」アドレスが有効になりました。これは実際には非常に有用であることがわかりました。IPv6の設計者は、IPv6のサポートを標準の一部として義務付けることを選択しました。これにより、常に可能であると期待できます。

IPv6の設計者は、それを義務付けるだけではありません。彼らはそれをIPv6プロトコルの重要な部分にしました。すべてのIPv6インターフェイスには、リンクローカルIPアドレスがあります。インターフェイスがより大規模なネットワーク(インターネットなど)でも通信できる場合は、グローバルスコープアドレスもあります。そこに最低2つのアドレスがあります。また、ホストがマルチホームインターネット接続の背後にある場合は、おそらくさらに多くのアドレスがあります。インターフェイスごとの複数のIPアドレスは、IPv4の場合のようにIPv6では後付けではありませんでした。

あなたは短所について言及しますが、設定ミスを除けば、この状況が問題を引き起こしているとは思いません。 (おそらく、セットアップと、一方のIPアドレスが機能するが、もう一方は機能しない理由について詳しく説明することができますが、それを引き起こしている何らかのエラーがあることを保証します)。

一方、利点について考えてみましょう。

  • 利用可能なネットワークインフラストラクチャ(ルーターなど)がない場合でも、デバイスはリンクローカルアドレスを使用してローカルLAN上で相互に検出できます。後で、ルーターが追加され、グローバルスコープアドレスが使用可能になった場合、これらのアドレスはアドレスセットを拡張し、リンクローカルアドレスを置き換えません。そのため、リンクローカルアドレスを使用した既存の通信が中断されることはありません。
  • インターネット接続が切断、追加、または置き換えられた場合、セットから1つのIPアドレスを、他のIPアドレスに影響を与えることなく撤回または追加できます。 「depracated」状態のおかげで、これにより、あるIPアドレスから別のIPアドレスへの適切な番号変更が可能になり、インターフェイスは一定期間両方をサポートします。

また、ほとんどすべてのIPv4スタックがインターフェイスごとに複数のアドレスもサポートしているため、これはv4とv6の大きな違いではないことに注意してください。それをサポートしていないのは本当に古いv4スタックだけです。違いは、v6にはアドレスのセットを自動的に管理する方法がありますが、これはv4には存在しません。

37
Celada