BGP ルートポリシー属性のリファレンス

このページでは、Cloud Router の Common Expression Language(CEL)を使用した BGP ルートポリシーの例を示します。

一致属性

次の表に、BGP ルートポリシーで使用可能な一致属性を示します。

属性

説明

communities

BGP ルートに関連付けられたコミュニティのリスト

destination

BGP ルートの IP 範囲

一致オペレーション

次の表に、BGP ルートポリシーで使用可能な一致オペレーションを示します。

オペレーション

説明

communities.matchesEvery('65001:1234')

コミュニティがリスト '65001:1234' のスーパーセットである場合は true を返します。

community_value は、32 ビット フィールドで、2 つの 16 ビット セクションに分かれています。通常、値の最初の 16 ビットは、コミュニティの送信元となるネットワークの自律システム(AS)番号をエンコードしますが、Cloud Router はこの規則を強制しません。値の 2 番目の 16 ビットは、送信元 AS によって割り当てられた一意の番号をエンコードします。

インポートのみに制限されます。

destination == '192.168.0.0/24'

BGP ルートが 192.168.0.0/24 と一致する場合、true を返します(完全一致)。

destination != '192.168.0.0/24'

BGP ルートが 192.168.0.0/24 と一致しない場合は、true を返します(完全一致)。

destination.inAnyRange(r)

BGP ルートが r の範囲内にある場合、true を返します。ここで、r は次のいずれかです。

  • CIDER でエンコードされた接頭辞を含む文字列(192.168.0.0/24 など)。
  • prefix() によって返される抽象型、または prefix() で呼び出せる柔軟なメソッド(longer() など)のいずれか。
  • 各要素が前述のいずれかの値である必要のある複数種のリスト。

! で否定できます。

prefix('192.168.0.0/24')

destination.inAnyRange() で使用される CIDR 範囲 192.168.0.0/24 を表すプレフィックス オブジェクトを返します。

prefix('192.168.0.0/24').longer()

prefix() のコピーであるプレフィックス範囲オブジェクトを返します。範囲の末尾に入力プレフィックスのアドレス ファミリーあたりの最大値(/32 または /128)が設定され、範囲の先頭に入力プレフィックスの長さ + 1 が設定されます。

prefix().orLonger()

prefix() のコピーであるプレフィックス範囲オブジェクトを返します。範囲の末尾に、入力プレフィックスのアドレス ファミリーあたりの最大値(/32 または /128)が設定されています。

prefix().lengthRange(20, 30)

prefix() のコピーであるプレフィックス範囲オブジェクトを返します。範囲の開始が /20、終了が /30 に設定されています。

prefix().upTo(30)

prefix() のコピーであるプレフィックス範囲オブジェクトを返します。範囲の末尾が入力プレフィックスの /30 に設定されています。

x || y

x または y のいずれかが true の場合は、true を返します。

xx は、communities 属性または destination 属性を使用するブール式でなければなりません。

||(OR)演算のルールにより、すべての条件は、OR で接続された 0 個以上の destination 一致オペレーションと見なされます。

(D0 || D1 || ... || Dm)

次の表は、prefix を使用して、一部のルーターのベンダーと比較して複雑な正規表現を構築する例です。

Cloud Router Cisco Juniper 説明

'192.168.0.1'

192.168.0.1

192.168.0.1

プレフィックス 192.168.0.1/32 と完全一致

'192.168.0.0/24'

prefix('192.168.0.0/24')

192.168.0.0/24

192.168.0.0/24 exact

プレフィックス 192.168.0.0/24 と完全一致

prefix('192.168.0.0/24').longer()

192.168.0.0/24 ge 25 le 32

192.168.0.0/24 longer

192.168.0.0/25 内の範囲を 192.168.0.0/32 と一致させる

prefix('192.168.0.0/24').orLonger()

192.168.0.0/24 le 32

192.168.0.0/24 orlonger

192.168.0.0/24 内の範囲を 192.168.0.0/32 と一致させる

prefix('192.168.0.0/24').lengthRange(25, 30)

192.168.0.0/24 ge 25 le 30

192.168.0.0/24 prefix-length-range /25-/30

192.168.0.0/25 内の範囲を 192.168.0.0/30 と一致させる

prefix('192.168.0.0/24').upTo(30)

192.168.0.0/24 le 30

192.168.0.0/24 up to /30

192.168.0.0/24 内の範囲を 192.168.0.0/30 と一致させる

アクション属性

次の表に、BGP ルートポリシーで使用可能なアクション属性を示します。

属性

説明

制限事項

asPath

BGP ルート更新が通過した AS 番号のリスト

エクスポートとインポート

communities

ルートのコミュニティのリスト

エクスポートのみ

med

ルートの Multipath Exit Discriminator(MED)

エクスポートとインポート

アクション オペレーション

次の表に、BGP ルートポリシーで使用可能なアクション オペレーションを示します。

オペレーション

説明

制限事項

accept()

BGP ルートを受け入れ、BGP ルートポリシーまたは条件の評価を停止します(このアクション以降のアクションも含みます)。

なし

drop()

BGP ルートを除外し、BGP ポリシーまたは条件の評価を停止します。このアクションの後に発生するアクションも停止されます。

なし

nextPolicy()

この BGP ルートポリシーの残りの条件(この条件の後のアクションを含む)の実行を停止し、次に適用される BGP ルートポリシー(存在する場合)に進みます。

なし

asPath.prependSequence([1, 2, 3])

AS 番号のリストを AS-PATH 属性にシーケンスとして追加します。

引数は 32 ビットの範囲内の整数にする必要があります。

なし

communities.add('65001:1234')

コミュニティの値をコミュニティのリストに追加します。

コミュニティの値は、単一のコミュニティでもリストでもかまいません。

次の Google 所有の ASN にマッピングされたプライベート コミュニティのコミュニティ値は、Cloud Router では無視されます。

6432、15169、16550、16591、19448、19527、22859、26910、32381、36039、36384、36385、36492、55023

エクスポートのみ

communities.remove('65001:1234')

コミュニティのリストからコミュニティの値を削除します。

コミュニティの値は、単一のコミュニティでもリストでもかまいません。

次の Google 所有の ASN にマッピングされたプライベート コミュニティのコミュニティ値は、Cloud Router では無視されます。

6432、15169、16550、16591、19448、19527、22859、26910、32381、36039、36384、36385、36492、55023

エクスポートのみ

communities.replaceAll('65001:1234')

コミュニティのリストがコミュニティの値に置き換えられます。この値は空にすることもできます。

次の Google 所有の ASN にマッピングされたプライベート コミュニティのコミュニティ値は、Cloud Router では無視されます。

6432、15169、16550、16591、19448、19527、22859、26910、32381、36039、36384、36385、36492、55023

エクスポートのみ

med.set(12345)

MED を 12345 に設定します。

なし