
通信機器に複数のグローバルアドレスが付与されるマルチプレフィックスにおいては、各通信における通信機器のアドレス選択結果が通信到達に大きな影響を与えます。マルチプレフィックスにおけるアドレス選択の方式については、RFC 3484 “Default Address Selection for Internet Protocol version 6 (IPv6)”※3で規定されています。
RFC 3484では、送信先アドレス、および送信元アドレス(つまり、自分のアドレス)に複数の候補がある場合に、それぞれをどのように選択するかのデフォルトのルールが記載されています。これは、米マイクロソフトのWindows XP/Vista、BSD系のUNIX OSなどに実装されています。
RFC 3484で規定されているアドレスの選択アルゴリズムのうち、通信到達性に特に重要な送信元アドレス関するものを簡単に示すと以下のようになります。上から順に送信元アドレスの候補となるアドレスの優先度の判定を行い、優先度の低いものを候補から外します。そして、候補がひとつに絞られた時点で、選択アドレスが決定されます。
表1 RFC 3484規定の送信元アドレスの選択アルゴリズム
| 実施順序 |
ルール |
| 1 |
宛先アドレスと同じアドレスが優先 |
| 2 |
宛先アドレスに対して適切なスコープのアドレスが優先 |
| 3 |
抑制されたアドレス(deprecated address: RFC 2462に記載)を避ける |
| 4 |
ホームアドレスが優先 |
| 5 |
送信インタフェースに付与されたアドレスが優先 |
| 6 |
ポリシーテーブルにおいて宛先アドレスとラベルが同じものが優先 |
| 7 |
一時アドレスよりもパブリックアドレスが優先 |
| 8 |
宛先アドレスに対して最長一致(ロンゲストマッチ/longest match)プレフィックスが優先 |
ここで、重要なのは、上記のデフォルトルールでは、ネットワークの構成によっては必ずしも通信到達可能なアドレスが選択されるとは限らないことです。以下に、前章で紹介したマルチプレフィックスによる複数ネットワークサービスへの接続の際に、問題となるケースについて説明します。


・発生する問題
接続先が閉域ネットワークで構成されたいくつかのASPサービスのみであり、各閉域ネットワークのアドレス空間が1つのアドレスブロックに限定される場合は、エンドサイト内の通信機器によるアドレス選択がうまく機能します。
これは、表3-1のルール8「記載した選択アルゴリズム内の最長一致プレフィックスを優先する」がうまく機能するためです。最長一致プレフィックスは、2つのアドレスを比較して先頭から何ビット目までが一致するかを計算します。送信先アドレスに対して、送信元アドレス候補それぞれの最長一致プレフィックスを計算し、一致するビット長が最大のものを優先します。閉域ネットワーク内では、正しい送信先アドレスと送信元アドレスのペアは、同じアドレスブロック内に含まれるため、このルールにより正しく送信元アドレスが選択されるのです。

しかし、上記とは異なり、このデフォルトルールだけでは正しく動作しない構成があります。それは、サービスネットワークの先にユーザサイトに払い出したアドレスブロックとは異なるアドレスブロックのネットワークが延長されている場合です。この場合、正しい送信先アドレスと送信元アドレスのペアが常に同じアドレスブロックに存在するとは限らないため、最長一致プレフィックス優先のルールでは期待される送信元アドレスが選択されないケースがでてきます。これは、延長されたネットワークがインターネットである場合も同様です。つまり、複数の閉域ネットワークによるASPとの接続に追加して、ISPからのインターネット接続サービスを利用すると、各ASPとの通信にはそれまで通りに成功するものの、インターネットへの通信の際にISPからの払い出しアドレスが選択されずに通信不到達になる可能性が発生します。

・ポリシーテーブルを利用した問題解決の手法
この問題を解決するための効果的な1つの手法として、表3-1のルール6「ポリシーテーブルにおけるラベルが同じものが優先」を利用する方法を紹介します。
ポリシーテーブルは、プレフィックスをキーとしてプレシデンス(Precedence)とラベル(Label)の2つの値を指定したルールで構成されます。以下に、RFC 3484にポリシーテーブルのデフォルトルールとして掲載されているものを示します。
| Prefix |
Precedence Label |
| ::1/128 |
50 0 |
| ::/0 |
40 1 |
| 2002::/16 |
30 2 |
| ::/96 |
20 3 |
| ::ffff:0:0/96 |
10 4 |
|
ルール6は、送信先アドレスと送信元アドレスの各候補に関して、ポリシーテーブルからラベルの値を計算します。計算方法は、対象アドレスがマッチするプレフィックスのうち、プレフィックス長が最長のものを選択することによって行います。
ここで、たとえば下記の例のようにポリシーテーブルを設定すると、アドレスブロックの異なる::/0(つまり、インターネット)と2001:db8::/32は、同じラベルが設定されていることとなり、インターネットへの通信には優先して2001:db8::/32のアドレスを送信元アドレスとして選択させることができます。
| Prefix |
Precedence Label |
| ::1/128 |
50 0 |
| ::/0 |
40 1 |
| 2002::/16 |
30 2 |
| ::/96 |
20 3 |
| ::ffff:0:0/96 |
10 4 |
| 2001:db8::/32 |
60 1 ← ルールを追加 |
|
なお、今回のマルチプレフィックスの紹介の趣旨からは少し外れますが、IPv6とIPv4のデュアル端末において、ポリシーテーブル内のプレフィックスが「::ffff:0:0/96」のルールのプレシデンス値を調整することによって、IPv6とIPv4のどちらを優先させるかの設定を行うこともできます。


・発生する問題
インターネットマルチホームの環境では、閉域ネットワークによるASPのケースとは異なり、ルーティング的には送信先アドレスに対して通信到達が不可能な送信元アドレスの候補は存在しません。しかし、接続するISPで”Ingress Filter”と呼ばれるフィルタ設定が行われる場合は、選択する送信元アドレスによっては通信不到達が発生します。
”Ingress Filter”は、ユーザサイトからインターネット方向への通信において、ユーザサイトに払い出したアドレス以外を送信元アドレスに指定する通信を遮断するフィルタ設定のことを指します。これは、アドレス詐称による不正通信の抑制を目的として行われるものです。この“Ingress Filter”が設定されているISPに対して、そのISPから払い出されたアドレス以外を送信元アドレスとして指定したパケットを送信すると、不正アクセスの意図がなくても、通信が遮断されてしまいます。

|