6. 宛先アドレス選択 (Destination Address Selection)
6. 宛先アドレス選択 (Destination Address Selection)
宛先アドレス選択アルゴリズムは宛先アドレスのリストを受け取り、アドレスを並べ替えて新しいリストを生成します。DA が元のリストで DB より前に現れる場合の DA と DB のペアワイズ比較として規定されています。
アルゴリズムは IPv6 と IPv4 のアドレスを一緒に並べ替えます。ポリシーテーブルで IPv4 アドレスのプロパティを見つけるには、IPv4 アドレスを IPv4 マップアドレスとして表現しなければなりません。
宛先 D に対して選択された送信元アドレスを Source(D) と表記します。宛先 D に利用可能な送信元アドレスがない場合、Source(D) は未定義です。
宛先アドレスのペアワイズ比較には 10 のルールが含まれ、順番に適用されなければなりません。
ルール 1: 使用不可能な宛先を避ける (Avoid unusable destinations)
DB が到達不可能であることが既知か Source(DB) が未定義の場合、DA を優先します。同様に、DA が到達不可能か Source(DA) が未定義の場合、DB を優先します。
ルール 2: 一致するスコープを優先する (Prefer matching scope)
Scope(DA) = Scope(Source(DA)) かつ Scope(DB) ≠ Scope(Source(DB)) の場合、DA を優先します。同様に、Scope(DA) ≠ Scope(Source(DA)) かつ Scope(DB) = Scope(Source(DB)) の場合、DB を優先します。
ルール 3: 非推奨アドレスを避ける (Avoid deprecated addresses)
Source(DA) が非推奨で Source(DB) がそうでない場合、DB を優先します。同様に、Source(DA) が非推奨でなく Source(DB) が非推奨の場合、DA を優先します。
ルール 4: ホームアドレスを優先する (Prefer home addresses)
Source(DA) がホームアドレスと気付アドレスの両方で Source(DB) がそうでない場合、DA を優先します。Source(DA) がホームアドレスのみで Source(DB) が気付アドレスのみの場合、DA を優先します。
ルール 5: 一致するラベルを優先する (Prefer matching label)
Label(Source(DA)) = Label(DA) かつ Label(Source(DB)) ≠ Label(DB) の場合、DA を優先します。同様に、Label(Source(DA)) ≠ Label(DA) かつ Label(Source(DB)) = Label(DB) の場合、DB を優先します。
ルール 6: より高い優先度を優先する (Prefer higher precedence)
Precedence(DA) > Precedence(DB) の場合、DA を優先します。同様に、Precedence(DA) < Precedence(DB) の場合、DB を優先します。
ルール 7: ネイティブトランスポートを優先する (Prefer native transport)
DA がカプセル化移行メカニズム(例えば IPv4 内の IPv6)を通じて到達され DB がそうでない場合、DB を優先します。同様に、DB がカプセル化を通じて到達され DA がそうでない場合、DA を優先します。
ルール 8: より小さいスコープを優先する (Prefer smaller scope)
Scope(DA) < Scope(DB) の場合、DA を優先します。同様に、Scope(DA) > Scope(DB) の場合、DB を優先します。
ルール 9: 最長一致プレフィックスを使用する (Use longest matching prefix)
DA と DB が同じアドレスファミリー(両方 IPv6 または両方 IPv4)に属する場合: CommonPrefixLen(Source(DA), DA) > CommonPrefixLen(Source(DB), DB) なら DA を優先します。同様に、CommonPrefixLen(Source(DA), DA) < CommonPrefixLen(Source(DB), DB) なら DB を優先します。
ルール 10: それ以外の場合、順序を変更しない (Otherwise, leave the order unchanged)
DA が元のリストで DB より前にある場合、DA を優先します。そうでなければ DB を優先します。