Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

ポリシーの表記について

ポリシーの式によって、ポリシーフレームワークソフトウェアは、ルーティングポリシーを評価するためのさまざまな方法を提供しています。ポリシー式では、ブール論理演算子とポリシーを使用しています。論理オペレータは、ポリシーを評価するためのルールを確立します。

ポリシー式のルーティングポリシーの評価中、accept、拒否、または次のポリシーのポリシーアクションは、真または偽の値に変換されます。この値は、指定された論理演算子に対して評価され、真または偽の出力を生成します。その後、出力は、accept、reject、または次のポリシーのフロー制御アクションに戻ります。ポリシー式の結果は、単一のポリシーに適用されるのと同じように適用されます。ルートが受け入れられるか拒否されて、評価が終了するか、または次のポリシーが評価されます。

表 1ポリシーアクションとそれに対応する真および偽値とフロー制御アクション値をまとめたものです。表 2は、論理演算子について説明しています。ポリシー式の評価の詳細についてポリシー式の評価は、を参照してください。

ポリシー式はかっこで囲む必要があります。ポリシー式はimport or exportステートメントfrom policy内の任意の場所に記述できます。

表 1: ポリシーアクションの変換値

ポリシーアクション

変換値

フロー制御アクションの変換値

同意

当て

同意

受け入れ

いいえ

受け入れ

次のポリシー

当て

次のポリシー

表 2: ポリシー式の論理演算子

論理演算子

ポリシー式ロジック

論理演算子がポリシー式評価に与える影響

& & (論理 AND)

論理として TRUE の出力を生成するには、すべての値が真である必要があります。

True と TRUE のルーティングポリシー値によって、TRUE の出力が生成されます。値が TRUE で FALSE の場合は、FALSE の出力が得られます。False と FALSE の値は、FALSE の出力を生成します。

最初のルーティングポリシーが TRUE の値を返した場合、次のポリシーが評価されます。最初のポリシーが FALSE という値を返した場合、式の評価が終了し、その後のポリシーが評価されません。

||(論理 OR)

論理 OR の場合、TRUE の出力を生成するには、少なくとも1つの値が TRUE である必要があります。

TRUE と FALSE のルーティングポリシー値によって真の出力が生成されます。True と TRUE の値により、TRUE の出力が生成されます。False と FALSE の値は、FALSE の出力を生成します。

最初のルーティングポリシーが TRUE という値を返した場合、式の評価が終了し、その後のポリシーが評価されません。最初のポリシーが FALSE という値を返した場合、次のポリシーが評価されます。

! (論理 NOT)

論理によって TRUE の値が FALSE に逆転されるのではありません。 FALSE が真になります。また、accept と next のポリシーのアクションを取り消して却下し、拒否することもできます。

論理 AND 演算子とともに使用した場合、FALSE の最初のルーティングポリシー値が TRUE に逆になると、次のポリシーが評価されます。TRUE が FALSE に逆転された場合は、式の評価が終了し、その後のポリシーが評価されません。

論理 OR 演算子とともに使用した場合、FALSE の最初のルーティングポリシー値が TRUE に逆になると、式の評価が終了し、その後のポリシーが評価されません。TRUE の値が FALSE に逆転された場合、次のポリシーが評価されます。

ポリシーで使用し、フロー制御アクションを accept または next policy とした場合、これらのアクションは拒否されます。フロー制御アクションが拒否された場合、このアクションは受け入れられます。

詳細については、以下のセクションを参照してください。

ポリシー式の例

次の例は、論理演算子を使用してポリシー表現を作成する方法を示しています。

  • 論理 AND — 次の例では、 policy1 最初に評価されます。After policy1が評価されると、TRUE の値が返さpolicy2れ、評価されます。値 FALSE が返された場合、 policy2は評価されません。

  • 論理 OR — 次の例では、 policy1 最初に評価されます。After policy1が評価されると、TRUE が返さpolicy2れた値は評価されません。値 FALSE が返された場合はpolicy2 、が評価されます。

  • 論理 OR および論理 AND — 次の例では、 policy1 最初に評価します。After policy1が評価されると、TRUE の値が返さpolicy2れ、スキップpolicy3されて評価されます。After policy1が評価されると、FALSE の値が返さpolicy2れ、評価されます。TRUE policy2が返された場合はpolicy3 、値が評価されます。値policy2 FALSE を返す場合、 policy3は評価されません。

  • 論理 NOT — 次の例では、 policy1 最初に評価されます。After policy1が評価された場合、値 TRUE が返され、値は FALSE policy2に逆になり、評価されません。値 FALSE が返された場合、値は TRUE に反転されpolicy2て評価されます。

シーケンシャルリスト[policy1 policy2 policy3]はポリシー式(policy1 && policy2 && policy3)と同じではありません。

順次リストは、ルーティングポリシーに一致するルートに基づいて評価されます。たとえば、が一致policy1し、アクションがaccept or rejectpolicy2policy3ある場合は、評価されません。がpolicy1一致しない場合policy2は、一致が発生し、そのアクションがaccept or rejectになるまで、が評価されます。

ポリシー式は、ルーティングポリシーのアクションに基づいて、TRUE または FALSE の値に変換された論理演算子のロジックに評価されます。(ポリシー式の評価に関する詳細についポリシー式の評価ては、を参照してください)。たとえば、値がpolicy1 FALSE でpolicy2policy3ある場合、評価されません。TRUE policy1が返された場合はpolicy2 、値が評価されます。値policy2 FALSE を返す場合、 policy3は評価されません。TRUE policy2が返された場合はpolicy3 、値が評価されます。

また、ポリシーの式とシーケンシャルリストを組み合わせて使用することもできます。次の例でpolicy1policy2は、値 FALSE が返されると、その結果が評価されます。TRUE policy2の値を返し、 next policyアクションが含まれてpolicy3いる場合は、is が評価されます。値policy2が TRUE の場合でも、アクションを含むnext policyアクションが含まれていpolicy3ないと評価されます。アクションが指定されていない場合、次の用語または次のポリシーがデフォルトのアクションになります。TRUE policy2の値を返し、 acceptアクションが含まれてpolicy3いる場合、は評価されません。

ポリシー式の評価

評価期間中、ポリシー・フレームワーク・ソフトウェアは、ポリシーアクションを真または偽の値に変換します。これは、ルートに対して実行されるフロー制御アクションを決定するための要因となります。ただし、ソフトウェアはポリシー式全体を評価するまで、ルート上でフロー制御アクションを実行するわけではありません。

ポリシーフレームワークソフトウェアは、ポリシーの式を次のように評価します。

  1. このソフトウェアは、ポリシー式の最初のルーティングポリシーに対してルートを評価し、指定またはデフォルトのアクションを値 TRUE または FALSE に変換します。(ポリシーアクション変換値の詳細については表 1、を参照してください)。

  2. ソフトウェアは TRUE または FALSE の値を取得し、ポリシー式で使用される論理演算子と比較し表 2て評価します (を参照)。使用された論理演算子に基づいて、次のポリシーを評価するかどうかを決定します。

    ポリシーフレームワークソフトウェアは、次のようなショートカット方式を評価します。ポリシーの評価によってポリシー式全体の値が事前に決定された場合、ソフトウェアは式の後続のポリシーを評価しません。たとえば、ポリシー式が論理 AND 演算子を使用し、ポリシーの評価が FALSE の値を返す場合、式の最終値が偽になることが保証されていないため、ソフトウェアは式の後続のポリシーを評価しません。未評価のポリシーの値に関係します。

  3. ソフトウェアは、ポリシー表現の後続の手順 1 とステップ 2 ルーティング ポリシー を実行します(存在する場合は、評価する必要があります)。

  4. 最後のルーティングポリシーを評価した後、適切な場合、ソフトウェアは、各ルーティングポリシーの評価から取得された真または偽の値を評価します。使用された論理演算子に基づいて、真または偽の出力を計算します。

  5. ソフトウェアは、TRUE または FALSE の出力をアクションに変換します。(ポリシーアクション変換値の詳細については表 1、を参照してください)。アクションが実行されます。

    式の各ポリシーが値 TRUE を返した場合、ソフトウェアは実際の出力を最後のポリシーで指定されたフロー制御アクションに戻します。(policy1 && policy2)たとえば、ポリシー式が指定さpolicy1れて指定acceptおよびpolicy2next term指定されてnext termいる場合、アクションが実行されます。

    ポリシーのいずれかで指定されたアクションがルート特性を操作する場合、ポリシーフレームワークソフトウェアは、残りのポリシーを評価する際に新しいルートの特性を事前に伝達します。たとえば、ポリシー式の最初のポリシーで指定されたアクションがルートのメトリックを 500 に設定している場合、このルートは次のポリシーで定義された条件に一致 metric 500 します。ただし、ポリシー式の中間または末尾にあるポリシーでルート特性の操作アクションが指定されている場合は、ショートカットの評価によってポリシーが評価されず、ルートの操作ができない可能性があります。代表がありません。

ポリシーの式を評価する

以下のルーティングポリシーは、3つのポリシー表現を使用しています。

ポリシーフレームワークソフトウェアは、サンプルルーティングポリシーに指定されている3つのポリシー条件式と、次のように、転送 BGP ルート 10.10.1.0/24 を評価します。

  • (policy-A && policy-B)—10.10.1.0/24 に対して評価され、 policy-A . 10.10.1.0/24 で指定されたルート リストと一致すると、指定されたアクションが戻されます。 は FALSE の値に変換され policy-Arejectreject 、FALSE は指定された論理 AND に対して評価されます。偽の結果は、評価policy-Bの結果 (ポリシー式ロジック、結果、偽の値) があるかどうかにかかわらず、 policy-B評価されず、偽のアウトプットが生成されるためです。偽の出力はにreject変換され、10.10.1.0/24 は拒否されます。

  • (policy-A || policy-B)—10.10.1.0/24 に対して評価され、 policy-A . 10.10.1.0/24 で指定されたルート リストと一致すると、指定されたアクションが戻されます。 は FALSE の値に変換され policy-Arejectreject 、FALSE は指定された論理 OR に対して評価されます。論理 OR は true の値を1つ以上指定する必要があるため、10.10.1.0/24 は評価さpolicy-Bれません。10.10.1.0/24 は一致policy-Bしないため、のnext-policyデフォルトアクションが返されます。next-policyは値が TRUE に変換され、FALSE (評価用policy-A ) と true (評価用policy-B ) の値が、指定された論理 or に対して評価されます。ポリシー式のロジックでは、FALSE または TRUE にすると、TRUE の出力が生成されます。TRUE の出力はにnext-policy変換されます。(ポリシーフレームワークソフトウェアにnext-policyよっnext-policyて最後に保持されたアクションであるため、TRUE はに変換されます)。policy-Bはポリシー式の最後のルーティングポリシーであるため、BGP のデフォルトのエクスポートポリシーによって指定されたアクションが実行されます。

  • (!policy-A)—10.10.1.0/24 に対して評価され、 policy-A . 10.10.1.0/24 がで指定されたルート リストに一致すると、指定されたアクションが返されるというアクションが FALSE の値に変換され policy-Arejectreject 、FALSE が指定された論理 NOT に対して評価されます。FALSE の値は、論理 NOT のルールに基づいて真の出力に反転されます。TRUE の出力はにaccept変換され、route 10.10.1.0/24 は受け入れられます。