メインコンテンツまでスキップ

5. 送信元アドレス選択 (Source Address Selection)

5. 送信元アドレス選択 (Source Address Selection)

送信元アドレス選択アルゴリズムは、特定の宛先アドレスに対して単一の送信元アドレスを出力として生成します。このアルゴリズムは IPv6 宛先アドレスにのみ適用され、IPv4 アドレスには適用されません。

アルゴリズムは、候補セット CandidateSource(D) 内のアドレスに「より大きい」順序を課す一連のペアワイズ比較ルールとして規定されています。アルゴリズム完了後にリストの先頭にあるアドレスがアルゴリズムが選択するアドレスです。

候補セット内のアドレスの順序付けは 8 つのペアワイズ比較ルールのリストによって定義されます。各ルールは 2 つの送信元アドレス間に「より大きい」「より小さい」または「等しい」順序を置きます。あるルールが引き分けを生じさせる場合、残りのルールが(順番に)引き分けのアドレスにのみ適用されます。

2 つのアドレス SA と SB を比較する際、「SA を優先する (prefer SA)」は SA が SB より「大きい」ことを意味し、「SB を優先する (prefer SB)」は SA が SB より「小さい」ことを意味します。

ルール 1: 同じアドレスを優先する (Prefer same address)
SA = D の場合、SA を優先します。同様に、SB = D の場合、SB を優先します。

ルール 2: 適切なスコープを優先する (Prefer appropriate scope)
Scope(SA) < Scope(SB) の場合: Scope(SA) < Scope(D) なら SB を優先し、そうでなければ SA を優先します。同様に、Scope(SB) < Scope(SA) の場合: Scope(SB) < Scope(D) なら SA を優先し、そうでなければ SB を優先します。

ルール 3: 非推奨アドレスを避ける (Avoid deprecated addresses)
一方の送信元アドレスが「優先 (preferred)」で他方が「非推奨 (deprecated)」(RFC 4862 の意味で)の場合、「優先」の方を優先します。

ルール 4: ホームアドレスを優先する (Prefer home addresses)
SA がホームアドレスと気付アドレスの両方であり SB がそうでない場合、SA を優先します。SA がホームアドレスのみで SB が気付アドレスのみの場合、SA を優先します。

ルール 5: 送信インターフェースを優先する (Prefer outgoing interface)
SA が D への送信に使用されるインターフェースに割り当てられており SB が異なるインターフェースに割り当てられている場合、SA を優先します。

ルール 5.5: ネクストホップが通告するプレフィックスのアドレスを優先する
SA または SA のプレフィックスが D への送信に使用される選択されたネクストホップによって割り当てられており、SB または SB のプレフィックスが異なるネクストホップによって割り当てられている場合、SA を優先します。

ルール 6: 一致するラベルを優先する (Prefer matching label)
Label(SA) = Label(D) かつ Label(SB) ≠ Label(D) の場合、SA を優先します。同様に、Label(SB) = Label(D) かつ Label(SA) ≠ Label(D) の場合、SB を優先します。

ルール 7: 一時アドレスを優先する (Prefer temporary addresses)
SA が一時アドレスで SB がパブリックアドレスの場合、SA を優先します。同様に、SB が一時アドレスで SA がパブリックアドレスの場合、SB を優先します。

実装は、アプリケーションがこの優先の意味を逆転させ、一時アドレスよりパブリックアドレスを優先できるメカニズムを提供しなければなりません(例えば [RFC5014] などの適切な API 拡張を通じて)。

ルール 8: 最長一致プレフィックスを使用する (Use longest matching prefix)
CommonPrefixLen(SA, D) > CommonPrefixLen(SB, D) の場合、SA を優先します。同様に、CommonPrefixLen(SB, D) > CommonPrefixLen(SA, D) の場合、SB を優先します。