BGPのLARGE_COMMUNITY属性

BGPのLARGE_COMMUNITY属性について説明しています。

LARGE_COMMUNITY属性の定義

LARGE_COMMUNITY属性の定義は、以下のとおりです。

【LARGE_COMMUNITY属性の定義】
項目 説明
タイプコード 32
カテゴリ オプション転送(Optional transitive)
概略 ルーティングポリシー決定で利用
パス属性値 以下フォーマットを参照

カテゴリがOptional transitiveの場合、BGPスピーカーでサポートは必須ではないため、解釈できない可能性があります。解釈できない場合は、そのままBGPピアに転送する必要があります。

LARGE_COMMUNITYのパス属性値は、以下フォーマットになっています。

LARGE_COMMUNITYのフォーマット

それぞれの説明は、以下のとおりです。

【LARGE_COMMUNITY属性値の説明】
項目 説明
Global Administrator AS番号
Local Data Part 1 ユーザー定義値1
Local Data Part 2 ユーザー定義値2

COMMUNITY属性ではAS番号は2バイト分しかありませんでしたが、LARGE_COMMUNITY属性では4バイトあります。このため、4バイトのAS番号に対応可能です。

また、COMMUNITY属性では情報部分も2バイトしかありませんでしたが、LARGE_COMMUNITY属性ではLocal Data Part 1と2合わせて8バイトもあります。

使い方

Local Data Part 1と2を、どのように使うのかですが、RFC 8195 - Use of BGP Large Communitiesでは使い方の例を説明しています。

まず、パス属性値の定義を以下としています。

【LARGE_COMMUNITY属性値の利用例】
項目 RFC 8195での定義
Global Administrator AS番号
Local Data Part 1 Function(訳:機能)
Local Data Part 2 Parameter(訳:設定値)

つまり、Local Data Part 1で機能とか役割を指定して、Local Data Part 2でその値を指定するという訳です。

コミュニティは、以下の2とおりの使い方があると説明しています。

  • 情報コミュニティ
  • アクションコミュニティ

次からは、それぞれについて説明します。

情報コミュニティ

情報コニュニティは、分析や障害対応に役立つ情報を提供します。

Function部分は、以下のように定義しています。

【情報コミュニティのFunction定義例】
説明
1 ISO 3166-1を使って経路を受信した国などを指定
2 国連M.49を使って経路を受信した地域などを指定
3 受信した経路との関係を指定

それぞれのFunctionを使った例は、以下のとおりです(赤字部分がFunctionの値です)。

【情報コミュニティのfunction利用例】
属性値 説明
64500:1:392 日本からの経路
64500:2:30 東アジアからの経路
64500:3:1 内部から発生した経路

1行目の例で、392が日本を表します。これは、ISO 3166 Country Codesで定められてるコードを利用しています。

2行目の例で、30が東アジアを表します。これは、UNSD — Methodology(UN M.49)で定められているコードを利用しています。

3行目の例で、1は内部、2は顧客、3がピアリング、4がトランジットから発生した経路と定義しています。ピアリングとは同等のISP間などの接続、トランジットとは顧客が多くの場合有償でより大規模なISPなどに接続することを言います。

これを受信したASは、どこから来た経路かの判断ができます。

また、上記を組み合わせた複数の情報コミュニティを付与することもできます。

アクションコミュニティ

アクションコミュニティは、特定の処理を要求するために使います。

Function部分は、以下のように定義しています。

【アクションコミュニティのFunction定義例】
説明
4 AS番号ごとのNO_EXPORT
5 場所ごとのNO_EXPORT
6 AS番号ごとにAS_PATHを1回Prepend
7 場所ごとにAS_PATHを1回Prepend

それぞれのFunctionを使った例は、以下のとおりです(赤字部分がFunctionの値です)。

【アクションコミュニティのfunction利用例】
属性値 説明
64500:4:64501 受信した経路を64501に広報しない
64500:5:392 受信した経路を日本に広報しない
64500:6:64501 受信した経路を64501へ広報する時、AS_PATH属性に1回多くAS番号を追加
64500:7:392 受信した経路を日本へ広報する時、AS_PATH属性に1回多くAS番号を追加

また、LOCAL_PREF属性は他ASへ広報する際に付与してはいけませんが、LARGE_COMMUNITY属性で通知することができます。

この場合、以下のようなFunctionが挙げられています。

【アクションコミュニティのLOCAL_PREF操作】
説明
8 通常の経路
9 バックアップ経路
10 ピアリング経路
11 上位のトランジット経路

例えば、64500:9:0とすることで、LOCAL_PREFに低い値を設定し、バックアップ経路にするよう広報できます。最後の0は、AS内全体に適用するという意味です。

最後の数字をUN M.49を使って64500:9:30とすると、東アジア全体に適用するよう指摘できます。

BGPのパス属性一覧」に戻る