📎

RFC 8212: ポリシーの設定がない場合のデフォルトの外部BGP(EBGP)経路伝播動作

2024/03/02に公開

要旨

本文書はRFC 4271を改訂し、外部BGPセッションに使われるインポートまたはエクスポート・ポリシーが存在しない場合のBGPスピーカーのデフォルト動作を定義する。

本文書の位置付け

本文書はインターネット標準化過程の文書である。

本文書はインターネット・エンジニアリング・タスク・フォース(IETF)の成果物である。IETFコミュニティのコンセンサスを表すものである。文書は公開レビューを受けており、インターネット・エンジニアリング・ステアリング・グループ(IESG)によって公開が承認されている。IESGによって承認されたすべての文書が、あらゆるレベルのインターネット標準の候補となるわけではない。RFC 7841のセクション2を参照のこと。

文書の現在の位置付け、正誤表、フィードバックの提供方法に関する情報は、http://www.rfc-editor.org/info/rfc8212 で入手できる。

著作権表示

Copyright (c) 2017 IETFトラストおよび文書の著者として特定された人物。無断転載を禁じる。

本文書は、BCP 78および文書の発行日において有効なIETF文書に関するIETFトラストの法的規定(https://trustee.ietf.org/license-info)に従うものとする。これらの文書には、本文書に関するあなたの権利と制限が記載されているため、注意深く確認して欲しい。文書から抽出されたコード・コンポーネントには、トラスト法的条項のセクション4.eに記載されている簡易BSDライセンスのテキストを含まなければならず、簡易BSDライセンスに記載されているように保証なしで提供する。

1. はじめに

インターネットをより安定させるには、BGPルーティング・セキュリティの問題に対処する必要がある。経路漏洩[RFC7908]は問題の一部だが、ソフトウェアの欠陥やオペレータの設定ミスも原因になる可能性がある。本文書は[RFC4271]を改訂し、特に設定を有効にしない限り、経路はインポートもエクスポートも行われないようにする。この変更により、これらの問題の影響が軽減され、インターネット・ルーティング・セキュリティのデフォルト・レベルが向上する。

多くの導入済みのBGPスピーカーは、デフォルトでBGPネイバー間のあらゆる経路アナウンスを送信し、受け入れる。この慣行は、インターネット初期にさかのぼるもので、当時、すべてのネットワークが相互に到達できるように、オペレータはルーティング情報の送ることに寛容だった。インターネットの相互接続がより密になるにつれ、BGPスピーカーの誤動作の危険性がインターネット・ルーティングに重大なリスクをもたらすようになった。

この仕様は、すべての有効なアドレス・ファミリーについて、カスタマ、ピア、コンフェデレーション境界などの外部BGP(EBGP)セッションに対して、BGPインポート・ポリシーとエクスポート・ポリシーの両方に明示的な設定を要求することで、この状況を改善することを目的としている。前述の要件を規格化(codification)することで、オペレータは様々なBGP実装間での一貫した動作の恩恵を受けることができる。

この仕様に従うBGPスピーカーは、特に設定を有効にしない限り、EBGPセッションで経路を使用または送信することはない。

⚠️ コメント

RFC 8212に準拠しないルータで上流のISPとマルチホームをしている場合、上流とのピアリングで何もフィルタを設定しないと、上流から受け取ったすべての経路をもう一方の上流に広告してしまう。

router bgp 64510
  neighbor 192.0.2.1 remote-as 64496
  neighbor 192.0.2.1 description Upstream 1
  !
  neighbor 192.0.2.5 remote-as 64497
  neighbor 192.0.2.5 description Upstream 2

cfig1

RFC 8212に準拠しているルータであれば、ポリシーの設定を行わなくても、上流に経路が漏洩することを防ぐことができる。次のような設定を行うのと同じ意味合いになる。

router bgp 64510
  neighbor 192.0.2.1 remote-as 64496
  neighbor 192.0.2.1 description Upstream 1
  neighbor 192.0.2.1 route-map implicit-deny-all in
  neighbor 192.0.2.1 route-map implicit-deny-all out
  !
  neighbor 192.0.2.5 remote-as 64497
  neighbor 192.0.2.5 description Upstream 2
  neighbor 192.0.2.5 route-map implicit-deny-all in
  neighbor 192.0.2.5 route-map implicit-deny-all out
!
route-map implicit-deny-all deny 1

2. 用語

[RFC4271]は、ルーティング情報ベース(RIB)の情報に適用できるローカル・ポリシーを含むポリシー情報ベース(PIB)について記載する。本文書では、その適用に基づいてポリシーのタイプを区別する。

インポート・ポリシー: Adj-RIBs-Inに含まれる情報に適用されるローカル・ポリシー。セクション3.2 [RFC4271]に記載されているように、Adj-RIBs-Inには他のBGPスピーカーから学習した情報が含まれており、インポート・ポリシーを適用した結果、ローカルBGPスピーカーによる決定プロセスで考慮する経路となる。

エクスポート・ポリシー: Adj-RIBs-Outに含まれる情報の選択に適用されるローカル・ポリシー。セクション 3.2 [RFC4271]に記載されているように、Adj-RIBs-Outは他のBGPスピーカーに広告するために選択された情報を含む。

2.1. 要件言語

この文書のキーワード「MUST」、「MUST NOT」、「REQUIRED」、「SHALL」、「SHALL NOT」、「SHOULD」、「SHOULD NOT」、「RECOMMENDED」、「NOT RECOMMENDED」、「MAY」、および「OPTIONAL」は、ここに示すように、すべて大文字で表示される場合に限り、 BCP 14 [RFC2119] [RFC8174]の記述に従って解釈される。

3. RFC 4271の改訂

このセクションでは[RFC4271]を改訂し、特定のEBGPセッションに使われるインポート・ポリシーまたはエクスポート・ポリシーが存在しない場合のBGPスピーカーのデフォルト動作を規定する。BGPスピーカーは、以下の更新された動作から逸脱する設定オプションを提供してもよい(MAY)。

⚠️ RFC 8212の実装

https://github.com/bgp/RFC8212

準拠している実装

  • Cisco IOS XR
  • BIRD (2.0.1以降)
  • OpenBGPD (6.4以降)
  • Nokia SR Linux (19.11.R1以降)
  • Nokia SR OS (19.5.R1以降)
  • FRRouting (7.4以降)
  • Bio routing / bio-rd
  • freeRouter (22.4.1以降)

非・準拠の実装

  • Arista EOS

  • Cisco IOS (classic) / NX-OS

  • Cisco IOS XE: IOS XE 17.2.1では、以下の設定によってRFC 8212の動作をエミュレートすることができるが、これはまだデフォルトではない。

    bgp safe-ebgp-policy
    
  • Juniper Junos: Junos 20.3R1以降、[edit protocols bgp]階層レベルでdefaults ebgp no-policyを設定することで暗黙フィルタを導入できる。詳細はこちら

    defaults {
        ebgp {
            no-policy {
                advertise (accept | reject | reject-always);
                receive (accept | reject | reject-always);
            }
        }
    }
    
  • Quagga

  • Extreame IronWare

  • Huawei VRP

セクション9.1 (決定プロセス)の「経路集約と経路情報削減」で終わる5段落目の後に以下の段落が追加される:

EBGPピアに関連付けられたAdj-RIB-Inに含まれる経路は、明示的なインポート・ポリシーが適用されていない場合、決定プロセスにおいて適格だと見なしてはならない(SHALL NOT)。

セクション9.1.3 (フェーズ3: 経路伝播)の3段落目「UPDATEメッセージによって(9.2を参照)」の後に以下の段落が追加される。

明示的なエクスポート・ポリシーが適用されていない場合、EBGPピアに関連付けられたAdj-RIB-Outに経路を追加してはならない(SHALL NOT)。

4. セキュリティに関する考慮事項

寛容なデフォルト・ルーティング・ポリシーは、経路漏洩[RFC7908]のような不注意な影響を引き起こす可能性があり、一般に予期しないパスでトラフィックがルーティングされることになる。オペレーターが予期しないフローを検出するためにモニタリングすることは可能だが、適用できる一般的なフレームワークは存在しない。また、これらのポリシーは、ソフトウェアの欠陥や設定ミスを露呈する可能性があり、予期せぬ技術上・ビジネス上の影響を与える可能性がある。

本文書で規定される[RFC4271]の改訂は、こうした不注意による影響を排除することを目的としている。オペレータは、期待される目標を達成するために、インポート・ポリシーとエクスポート・ポリシーを明示的に設定しなければならない。もちろん、悪意のある、または不正確な明示的設定に対する防御は存在しない。

[RFC4271]に記載されているセキュリティに関する考慮事項と、[RFC4272]に記載されている脆弱性分析も本文書に適用される。

5. IANA に関する考慮事項

本文書はIANAのアクションを必要としない。

6. 参考文献

6.1. 引用規格

[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, <http://www.rfc-editor.org/info/rfc2119>.

[RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A Border Gateway Protocol 4 (BGP-4)", RFC 4271, DOI 10.17487/RFC4271, January 2006, <http://www.rfc-editor.org/info/rfc4271>.

[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, May 2017, <http://www.rfc-editor.org/info/rfc8174>.

6.2. 参考規格

[RFC4272] Murphy, S., "BGP Security Vulnerabilities Analysis", RFC 4272, DOI 10.17487/RFC4272, January 2006, <http://www.rfc-editor.org/info/rfc4272>.

[RFC7908] Sriram, K., Montgomery, D., McPherson, D., Osterweil, E., and B. Dickson, "Problem Definition and Classification of BGP Route Leaks", RFC 7908, DOI 10.17487/RFC7908, June 2016, <http://www.rfc-editor.org/info/rfc7908>.

付録 A. BGP実装者向けの移行に関する考慮事項

この付録は規範となるものではない。

実装者にとって、準拠したBGP実装への移行には数年かかるプロセスが必要になるかもしれない。

未定義の動作を利用しているオペレータは、常にその動作の変更に驚かれることを理解し、認識している。

A.1. 「N+1 N+2」リリース戦略

実装者は、「N+1 N+2」リリース戦略として説明されるアプローチを活用することができる。リリースN+1では、実装者はBGPスピーカーが「ebgp insecure-mode」で動作していることを示す新しいデフォルト設定パラメータを導入する。新しいパラメータの導入に加えて、実装者は、設定の特定の部分が不完全であることを示す情報警告をオペレータに表示し始める可能性がある。リリースN+1では、BGP実装のオペレータは、実装に設定可能なデフォルトが存在することを認識し、それに応じて準備できるようになる。リリースN+2以降では、リリースN+1で導入された以前のデフォルト設定パラメータの逆が新しいデフォルトになる。

その結果、リリースN+2の新規インストールはすべてこの文書に従う。バージョン・リリースN+1からアップグレードされたインストールは、「ebgp insecure-mode」設定パラメータに変更がない場合、以前の安全でない動作に従う。s

謝辞

著者らは、以下の方々のコメント、サポート、レビューに感謝したい: シェーン・アマンテ、クリストファー・モロー、ロバート・ラズク、グレッグ・スキナー、アダム・チャペル、スリラム・コティカラプディ、ブライアン・ディクソン、ジェフリー・ハース、ジョン・ヒーズリー、イグナス・バグドナス、ドナルド・スミス、 アルバロ・レタナ、ジョン・スカダー、デール・ウォーリー。

貢献者

この文書に記載されているソリューションの導入の成功には、以下の人々が貢献した。

ヤコブ・ハイツ
Cisco
メール: jheitz@cisco.com

オンドレイ・フィリップ
CZ.NIC
メール: ondrej.filip@nic.cz

著者のアドレス

ジャレッド・マウチ
Akamai Technologies
8285 Reese Lane
Ann Arbor Michigan 48103
アメリカ合衆国
メール: jared@akamai.com

ジョブ・スナイデルス
NTT Communications
Theodorus Majofskistraat 100
Amsterdam 1065 SZ
オランダ
メール: job@ntt.net

グレッグ・ハンキンス
Nokia
777 E. Middlefield Road
Mountain View, CA 94043
アメリカ合衆国
メール: greg.hankins@nokia.com

変更履歴

  • 2024.3.2
  • 2024.3.5
GitHubで編集を提案

Discussion