サービスプロバイダにおける基本的なルーティングポリシー
ピーター・ルンドクヴィスト プロフェッショナルサービス ピート・モイヤー プロフェッショナルサービス アネット・ケイ・ドネル マーケティングエンジニアJuniper Networks, Inc.
1194 North Mathilda Avenue
Sunnyvale, CA 94089 USA
408 745 2000 or 888 JUNIPER
www.juniper.net
Part Number : 350005-001J 11/01 ジュニパーネットワークス株式会社 〒163-1035 東京都新宿区西新宿3-7-1 新宿パークタワー N棟 35階 電話 03-5321-2600 FAX 03-5321-2700 URL http://www.juniper.co.jpJUNOSインターネットソフトウェアとIOSのコンフィグレーション変換
目次
はじめに . . . 5 ジュニパー製ルーターの概要 . . . 5 テストセットアップ . . . 6 EGP . . . 7 EBGP . . . 8 IBGP . . . 8 IGP . . . 10 ルーティングポリシー . . . 12 IGPがBGPネクストホップルートを搬送 . . . 12ネクストホップを解決するためのLevel 2からLevel 1ルーターへのIS-ISルートのリーク . . . 13
IOSの例 . . . 13 JUNOSの例 . . . 14 隣接関係の例 . . . 15 JuniperルーターのIS-ISデータベースの例 . . . 15 ルートテーブルの例 . . . 16 CiscoアクセスルーターのIS-IS Level 1コンフィグレーションの例 . . . 18 アクセスルーターIS-IS Level 1隣接関係の例 . . . 18 アクセスルーターIS-ISデータベースの例 . . . 19 アクセスルーターのルートテーブル . . . 20 アクセスルーターBGPテーブルの例 . . . 21 アグリゲーション . . . 21 Cisco IOSプリフィックスアグリケーションの例 . . . 23 JUNOSプリフィックスアグリケーションの例 . . . 25 境界ルーター . . . 33 入力/出力ルーティングBGPポリシー . . . 33 Communityが合致したら、as-pathを付加し、MEDをセットする . . . 33 Pagentの出力例 . . . 46 as-pathを使ったlocal-preferenceの操作 . . . 48 Martianプリフィックスフィルタ . . . 54 JUNOSポリシーの実装 . . . 59 ポリシーの評価順序 . . . 59 1つのポリシー内のポリシー . . . 60 シーケンス内に多数のtermを持つポリシー . . . 61 BGPの安定性に関連する機能 . . . 61 ダンピング . . . 61 IOSダンピングコンフィグレーションの例 . . . 61 JUNOSダンピングコンフィグレーションの例 . . . 64 受信する最大プリフィックスの保護 . . . 68 IOSの最大受信プリフィックスのコンフィグレーション例 . . . 68 JUNOSの最大受信プリフィックスのコンフィグレーション例 . . . 70
JUNOSソフトウェアとIOSの相違点 . . . 72 IGPロードシェアリング . . . 72 IGPとEGPの両方でのルートのアドバタイズ . . . 73 BGPタイマー . . . 73 EBGPパス選択 . . . 74 ルーターのサービスアクセス制限 . . . 75 IOSのアクセス制限のコンフィグレーション . . . 75 JUNOSのアクセス制限のコンフィグレーション . . . 78 付録 . . . 84 JUNOS Lena境界ルーター . . . .84 JUNOS Lunkanコアルートリフレクタと192.168.1/24ネットワークのアクセスルーター . . . .89
JUNOS Ida配信/POPルートリフレクタとIS-IS Level 2-Level 1間のリークルーター . . . 92
IOS Cisco_border境界ルーター . . . 94
IOS Cisco_core_rrコアルートリフレクタと192.168.2/24ネットワークのアクセスルーター . . . 97
IOS Cisco_pop配信/POPルートリフレクタとIS-IS Level 2-Level 1間リークルーター . . . 99
IOS Cisco_accessアクセスIBGPエッジルーター . . . 101
IOS Pagent外部EBGPルーター . . . 104
IOS Dummy外部EBGPルーター . . . 106
参照図
図 1:Test Network Topology . . . 6
図 2:BGP AS Setup . . . 7
図 3:EBGP AS Setup . . . 8
図 4:Connected Access and POP Route Reflector Routers . . . 9
図 5:Route Reflector Topology . . . 10
図 6:IS-IS Setup . . . 11
図 7:Multihomed Autonomous System . . . 22
図 8:Prevention of Internal Announcements with External Link Failures . . . 22
図 9:Prevention of External Announcements with External Link Failures . . . 23
図10:Provision and Prevention of Advertising Intra-AS Routes . . . 34
図11:Manipulation of Announced Aggregate Updates . . . 35
はじめに
ジュニパー社は、Cisco IOSと確実に相互運用可能にすることを目的にJUNOSインターネットソフトウェアを開発し ました。この文書では、IOSの実践的な知識を使って、JUNOSソフトウェア内にルーティングフィルタを設定する方 法について概説します。各例では、JUNOSコンフィグレーションとIOSコンフィグレーションの両方が示されていま す。この文書は、特定のトポロジーやコンフィグレーションに関する推奨ではない点に注意してください。 この文書を有効に活用するために、境界ルーターや配信ルーターが取り扱う構造と機能(たとえば、サービスプロバイ ダBGPルーティングポリシー)に精通しておくことをお奨めします。また、JUNOSソフトウェアとIOSソフトウェア、 ジュニパー社のルーターアーキテクチャ、およびルーティングポリシーに応じたサービスプロバイダ機能に関連するコ ンフィグレーションについても理解しておくことをお奨めします。ジュニパー製ルーターの概要
ジュニパー社のルーターは、高速でパケットフォワーディングを実行するだけの単なる高速バックボーンルーターでは ありません。 次のような役割を担うこともできます。 ■ EBGPコネクションのBGP境界ルーター ■ IBGPコネクションの配信ルーター ■ 広帯域幅キャパシティと機能性を備えたアクセス終端デバイス ■ T1-OC192c/STM64リンク対応のAS境界ルーターまたは配信ルーター どのモデルであっても、ジュニパー社のルーターは、メディアや帯域幅には無関係に、パフォーマンスを低下させるこ となく、もしくは最小限のみの低下でBGPポリシーとフィルタを処理することができます。テストセットアップ
コンフィグレーションを検証する目的で、コンフィグレーションを調整し、showコマンドなどのコマンド出力を表 示するために、テストネットワーク(図1)をセットアップしました。このテストセットアップは、機能を示すためのも ので、推奨トポロジーではありません。 セットアップはインタフェースの制限によって制約されています。たとえば、モジュレータはジュニパー社製の装置で す。特に説明が必要な点は、JUNOSソフトウェアがインストールされたFreeBSDベースのPCが、イーサネットブロ ードキャストベースのコアとなっている点です。Ciscoルーターとしては、2500、1600、3810といったローエン ドの装置を用いています。ただし、これらのルーターがポリシーに影響を及ぼすことはありません。つまり、同じルー ルがハイエンドのルーターにも適用されます。図 1: Test Network Topology
Null0 111.111/16 Null0 222.222/16 Lo1 100.100.1.1/32 Lo2 100.100.2.1/32 Lo0 100.200.1.1/32 Lo0 100.200.2.1/32 UNIX Lunkan Cisco_pop Ida Lena Cisco_border Pagent Access Dummy Cisco_core_rr Lo0 1.1.1.1/32 Lo0 1.1.1.2/32 Lo0 1.1.1.3/32 Lo0 1.1.1.4/32 Lo0 1.1.1.5/32 Lo0 1.1.1.6/32 Lo0 1.1.1.2/32 1.1.1.244/30 1.1.1.248/30 192.168.1/24 172.16.2/24 .1 .2 .1 .4 .6 .5 .3 .2 .2 .3 .22 .3 3 Lo0 1.1.1.7/32 Null0 192.168.2/24 Null0 2.2/16
Plus Route Generation
Null0 3.3/16 Plus Martians 1.1.0.0/24 194.68.128/24 M40 M20 M10
EGP
使用したEGPは、JUNOSソフトウェアとIOSの両方でサポートされる、拡張機能を備えたBGP4です。図2は、BGP ASテストセットアップを示しています。 図 2: BGP AS Setup UNIX Lunkan Cisco_pop Ida Lena Cisco_border Pagent Access AS 2222 AS 3333 Dummy Cisco_core_rr M40 M20 M10EBGP
2本の外部コネクションは、redundantな外部ピアリングを装備するために必要な機能を示しています(図3)。どちら の境界ルーターも、同じプリフィックスをアナウンスし、ホットポテトルーティングと呼ばれるルーティング構造を示 しています。後に、コンフィグレーションは、外部の応答トラフィックを変更するために、修正されます。IBGP
IBGPは、典型的なサービスプロバイダの構成によく似た構成になっています。フルメッシュ問題は、ルートリフレク タを使用することで解決されています。推奨される方法ではありませんが、デモンストレーション目的で、2階層のル ートリフレクタを使用しています。ルートリフレクタは自身の最適ルートだけをアドバタイズするため、レイヤ数が多 過ぎると、クライアントが自分の立場からは最適とは言えないルートを受け取ることがあります。 コンフェデレーションを使用しない主な理由は、ルーターリフレクタまたはコンフェデレーションのどちらを使うかは 特に重要ではないからです。このテストで、コンフェデレーションを使用するには、より多くのルーターが必要となり ます。それが、ルートリフレクタを選択した理由です。ただし、ルートリフレクタ以外にコンフェデレーションを追加 しても特に問題はありません。多くの大手サービスプロバイダのネットワークでは、IBGPフルメッシュとIGPデータ ベースの両方のサイズを縮小する目的で、コンフェデレーションソリューションが実装されています。 IBGPはリソースネットワークのすべての内部プロビジョニングを実行し、IGPはすべてのリンクとループバックアド レスのルーティングを実行します。 図 3: EBGP AS Setup UNIX Lunkan Cisco_pop Ida Lena Cisco_border Pagent Access AS 2222 AS 1111 AS 3333 Dummy Cisco_core_rr M40 M20 M10ピアリングは、2層のルートリフレクタ階層を中心に構成されています。図4は、境界ルーター、コアルートリフレク タ、およびPOPルーター間のIBGPピアリングの一層目のルートリフレクタ構造を示しています。
図 4: Connected Access and POP Route Reflector Routers
UNIX Lunkan Cisco_pop Ida Lena Cisco_border Pagent Access AS 2222 AS 1111 AS 3333 Dummy Cisco_core_rr M40 M20 M10
二層目のルートリフレクタレイヤは、POP配信ルーターが、そのPOPの地域内のアクセスルーターに対応するルート リフレクタとなっている地域または大規模POPをモデル化しています(図5)。
IGP
大手サービスプロバイダのネットワークでもっとも広く使用されているIGPが、RFC 1195で規定されているIS-ISで す。アドレッシングは、NSAPアドレスのユニークなESI部分としてループバックアドレスを使用するクラシカルな方 式に準じています。IS-IS構造(図6)は、Level 2専用コアとLevel 1専用スタブアクセスエリアを持つ階層型構造です。 このトポロジーは推奨デザインではありませんが、IBGPをLevel 1エリアで動作させるために必要な機能を示してい ます。リンクとループバックが、IS-IS内の唯一のルートです。Level 2コアからのループバックは、BGPネクストホ ップを動作させるために、Level 1エリアへリークされます。図 5: Route Reflector Topology
UNIX Lunkan Cisco_pop Ida Lena Cisco_border Pagent Access AS 2222 AS 1111 AS 3333 Dummy Cisco_core_rr M40 M20 M10
NSAPアドレスの構造に留意してください。NETプリフィックスが地域に応じて割り当てられている場合は、同じ地 域内のすべてのルーターが、ESI部分だけが異なる同じNETプリフィックスを持つ必要があります。地域内に多数のル ーターが存在する場合は、必要に応じて、階層型IS-ISトポロジーを構築することができます。その後、Level 2専用か ら、Level 1/Level 2を経て、Level 1ルーターへの変更はかなり容易に実行することができます。
例: NETプリフィックスが地域に従って割り当てられている場合 Stockholm-> 47.0001.[loopback].00 Copenhagen -> 47.0002.[loopback].00 Helsinki-> 47.0003.[loopback].00 Oslo-> 47.0004.[loopback].00 Stockholm内のすべてのルーターは、ESI部分だけが異なる同じNET 47.0001プリフィックスを持ちます。 初めは、MPLSトラフィックエンジニアリングLSPやMPLS VPNなどのサービス実装を簡易化し容易にするために、 1つのリンクステートデータベースを持つLevel 2専用としてネットワークを構築することをお奨めします。前提とす るIGP (IS-IS)のサイズは、IGPで搬送されるLSPとIPプリフィックスの数で決まり、比較的小さいサイズになります。 したがって、Level 2専用アプローチを実現可能な前提条件となります。 図 6: IS-IS Setup UNIX Lunkan Cisco_pop Ida Lena Cisco_border Pagent Access IS-IS Level 2 IS-IS Level 1 Dummy Cisco_core_rr M40 M20 M10
以下は、IS-ISが搬送可能なIPプリフィックス数を算出するための計算式です。 ルーターあたりの最大LSPフラグメント数 = 256 最大LSPサイズ = 1492 最大TLV = 255バイト LSPヘッダ = 27バイト 最大LSPサイズ - LSPヘッダ = 1492 - 27 = 1,465バイト/ペイロード TLVあたり2バイト TLVあたり2バイト x 6 TLV = 12バイトのオーバーヘッド 1465 - 12 = LSPあたり1453バイト IPプリフィックスが12バイトのため、1453/12 = LSPあたり121 IPプリフィックス 256 x 121 = ルーターあたり30,976 IPプリフィックス
ルーティングポリシー
ここでは、JUNOSとIOSを使った例を取り上げ、通常のサービスプロバイダネットワークにルーティングポリシーを 実装する必要がある理由を説明していきます。IGPがBGPネクストホップルートを搬送
多くの場合、リソースネットワークは転送ネットワークから分離されています。リソースネットワークは、WWW、メ ール、FTPサービスなどを備えたサーバーファームの場合があります。転送ネットワークは、リンクとループバック (たとえば、ルーター間のリンク)です。サービスプロバイダネットワーク内でルートをプロビジョニングするための もっとも一般的なモデルは、それらをIBGPによってアナウンスし、IGPによる再帰的なルックアップを通じて搬送す るやり方です。この実装は、ネットワークを大幅に拡張することができ、さらにBGP内のポリシーを使ってフィルタ することができるため、多くの利点を備えています。リンクステートデータベース内のフィルタ機能は、かなり制限さ れているため、できるだけ使用は避けるべきです。さらに、外部ルートは、送信元ですべての外部ルートに next-hop-selfをマークすることで、IGPによる再帰ルックアップを通じて搬送されます。別の方法として、ネットワー クは、外部ルートをIGP内でパッシブとしてマークするか、直接接続されたサブネットとしてインポートすることがで きます。これらは、next-hop-selfを使用してBGPネクストホップを解決する方法の代替となるソリューショ ンです。多数のルーターと大規模なIGPが存在しているために、ネットワークが、複数のIS-ISエリア(Level 1とLevel 2)から構成されている場合は、BGPネクストホップを解決させるために、いくつかの機能が必要となります。ネクストホップを解決するためのLevel 2からLevel 1ルーターへのIS-ISルートのリーク
ここでは、JUNOSソフトウェアがBGPネクストホップを動作させるために、IS-IS Level 2からLevel 1へのルート リークのコンセプトをどのように処理しているかを説明します。この機能は、Cisco用語で「ルートリーク(route leaking)」と呼ばれています。
IOSの例
この例は、ループバックをリークすることができるLevel 1/Level 2 Ciscoルーターのコンフィグレーションの一部 を示しています(たとえば、BGPネクストホップ解決)。
!
router isis
redistribute isis ip level-2 into level-1 distribute-list 100 /* Leak policy from L2 db -> L1 db */ passive-interface Loopback0
net 47.0001.0010.0100.1005.00
metric-style wide/* TLV 135 used for extended metrics, no TLV 128 */ max-lsp-lifetime 65535 lsp-refresh-interval 65000 spf-interval 10 100 500 prc-interval 5 100 250 lsp-gen-interval 10 20 2500 log-adjacency-changes ! router bgp 1111 no synchronization bgp router-id 1.1.1.5 bgp log-neighbor-changes timers bgp 30 90
neighbor internal peer-group neighbor internal remote-as 1111
neighbor internal update-source Loopback0 neighbor pop peer-group
neighbor pop remote-as 1111
neighbor pop update-source Loopback0 neighbor pop_rr peer-group
neighbor pop_rr remote-as 1111
neighbor pop_rr update-source Loopback0 neighbor pop_rr route-reflector-client neighbor 1.1.1.1 peer-group internal neighbor 1.1.1.6 peer-group internal neighbor 1.1.1.7 peer-group pop_rr no auto-summary
!
access-list 1 permit 1.1.1.0 0.0.0.255 !
JUNOSの例
この例は、ループバックをリークすることができるLevel 1/Level 2 Juniperルーターのコンフィグレーションの一部 を示しています(たとえば、BGPネクストホップ解決)。 routing-options { router-id 1.1.1.3; autonomous-system 1111; } protocols { bgp { traceoptions { file bgp;
flag state detail; } log-updown; group internal { type internal; local-address 1.1.1.3; neighbor 1.1.1.1; neighbor 1.1.1.6; } group pop_rr { type internal; local-address 1.1.1.3; cluster 1.1.1.5; neighbor 1.1.1.7; } group pop { type internal; local-address 1.1.1.3; neighbor 1.1.1.4; } } isis { traceoptions { file isis;
flag state detail; }
export isis_leak;/* Leak policy */
lsp-lifetime 65535; /* Default 1200 seconds */
level 2 wide-metrics-only; /* TLV 135 used for extended metrics, default both TLV 128/135 used */ interface fxp0.0 {
level 1 disable;/* Level 2 only to Core */ } interface fxp1.0 {
level 2 disable;/* Level 1 only to access stub area */ }
} }
隣接関係の例
この例は、JuniperルーターのIS-IS Level 1隣接ルーターとCiscoルーター(cisco_access)のLevel 1隣接ルーター を示しています。
JuniperルーターのIS-ISデータベースの例
JUNOSソフトウェアは、他のすべてのルーターのlo0アドレスをLevel 1データベースへエクスポートします。 policy-options { policy-statement isis_leak { term one { from { protocol isis; level 2;route-filter 1.1.1.0/24 longer; /* Prefix where next hop for BGP are within lo0 */ }
to {
protocol isis; /*To L1 area */ level 1;
} } } }
lunkan@ida> show isis adjacency IS-IS adjacency database:
Interface System L State Hold (secs) SNPA
fxp0.0 cisco_pop 2 Up 23 0:0:c:34:74:5b fxp0.0 cisco_border 2 Up 28 0:60:9:c4:23:18 fxp0.0 cisco_core_rr 2 Up 28 0:d0:ba:58:7e:4b fxp0.0 lena 2 Up 26 0:2:b3:22:38:63 fxp0.0 lunkan 2 Up 8 0:2:b3:22:38:61 fxp1.0 cisco_access 1 Up 7 0:d0:ba:58:81:dd
lunkan@ida> show isis database detail IS-IS level 1 link-state database:
ida.00-00 Sequence: 0x1d, Checksum: 0x9774, Lifetime: 64666 secs IS neighbor: cisco_access.01 Metric: 10
IP prefix: 1.1.1.248/30 Metric: 20 Internal
IP prefix: 1.1.1.6/32 Metric: 10 Internal
IP prefix: 1.1.1.5/32 Metric: 10 Internal
IP prefix: 1.1.1.1/32 Metric: 10 Internal
IP prefix: 1.1.1.4/32 Metric: 10 Internal
IP prefix: 1.1.1.2/32 Metric: 10 Internal
IP prefix: 1.1.1.3/32 Metric: 0 Internal
IP prefix: 1.1.1.244/30 Metric: 10 Internal
cisco_access.00-00 Sequence: 0x3, Checksum: 0xd715, Lifetime: 64140 secs IS neighbor: cisco_access.01 Metric: 10
IP prefix: 1.1.1.7/32 Metric: 0 Internal
IP prefix: 1.1.1.244/30 Metric: 10 Internal
cisco_access.01-00 Sequence: 0x3, Checksum: 0x4b86, Lifetime: 64175 secs
IS neighbor: ida.00 Metric: 0
IS neighbor: cisco_access.00 Metric: 0 IS-IS level 2 link-state database:
lunkan.00-00 Sequence: 0x16, Checksum: 0x3c69, Lifetime: 62850 secs
IS neighbor: lunkan.02 Metric: 10
ルートテーブルの例
BGPドリブンのルートは、Level 1エリア内のアクセスルーターと同様に、到達可能でなければなりません。
IP prefix: 1.1.1.1/32 Metric: 0 Internal
lunkan.02-00 Sequence: 0x6, Checksum: 0x920c, Lifetime: 62850 secs
IS neighbor: cisco_pop.00 Metric: 0
IS neighbor: cisco_core_rr.00 Metric: 0 IS neighbor: cisco_border.00 Metric: 0
IS neighbor: ida.00 Metric: 0
IS neighbor: lena.00 Metric: 0
IS neighbor: lunkan.00 Metric: 0
lena.00-00 Sequence: 0x13, Checksum: 0x815c, Lifetime: 62974 secs
IS neighbor: lunkan.02 Metric: 10
IP prefix: 1.1.0.0/24 Metric: 10 Internal
IP prefix: 194.68.128.0/24 Metric: 10 Internal
IP prefix: 1.1.1.2/32 Metric: 0 Internal
ida.00-00 Sequence: 0x21, Checksum: 0x6128, Lifetime: 64666 secs
IS neighbor: lunkan.02 Metric: 10
IP prefix: 1.1.1.7/32 Metric: 10 Internal
IP prefix: 1.1.0.0/24 Metric: 10 Internal
IP prefix: 1.1.1.244/30 Metric: 10 Internal
IP prefix: 1.1.1.3/32 Metric: 0 Internal
cisco_border.00-00 Sequence: 0xb, Checksum: 0x71c8, Lifetime: 62842 secs
IS neighbor: lunkan.02 Metric: 10
IP prefix: 194.68.128.0/24 Metric: 0 Internal
IP prefix: 1.1.1.4/32 Metric: 0 Internal
IP prefix: 1.1.0.0/24 Metric: 10 Internal
cisco_pop.00-00 Sequence: 0xd, Checksum: 0x20c2, Lifetime: 64009 secs
IS neighbor: lunkan.02 Metric: 10
IP prefix: 1.1.1.248/30 Metric: 10 Internal
IP prefix: 1.1.1.5/32 Metric: 0 Internal
IP prefix: 1.1.0.0/24 Metric: 10 Internal
cisco_core_rr.00-00 Sequence: 0xc, Checksum: 0xb9b1, Lifetime: 62842 secs
IS neighbor: lunkan.02 Metric: 10
IP prefix: 1.1.1.6/32 Metric: 0 Internal
IP prefix: 1.1.0.0/24 Metric: 10 Internal
cisco_access.00-00 Sequence: 0x7, Checksum: 0x7373, Lifetime: 64086 secs IS neighbor: cisco_access.01 Metric: 10
IP prefix: 1.1.1.244/30 Metric: 10 Internal
IP prefix: 1.1.1.7/32 Metric: 0 Internal
cisco_access.01-00 Sequence: 0x1, Checksum: 0x69f0, Lifetime: 59794 secs
IS neighbor: ida.00 Metric: 0
IS neighbor: cisco_access.00 Metric: 0
lunkan@ida> show route
inet.0: 19 destinations, 19 routes (19 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both
1.1.0.0/24 *[Direct/0] 01:41:20 > via fxp0.0
1.1.0.3/32 *[Local/0] 01:41:55 Local
1.1.1.1/32 *[IS-IS/18] 00:48:26, metric 10, tag 2 > to 1.1.0.1 via fxp0.0
1.1.1.2/32 *[IS-IS/18] 00:48:33, metric 10, tag 2 > to 1.1.0.2 via fxp0.0
1.1.1.3/32 *[Direct/0] 01:41:55 > via lo0.0
1.1.1.4/32 *[IS-IS/18] 00:48:33, metric 10, tag 2 > to 1.1.0.4 via fxp0.0
1.1.1.5/32 *[IS-IS/18] 00:48:33, metric 10, tag 2 > to 1.1.0.5 via fxp0.0
1.1.1.6/32 *[IS-IS/18] 00:48:33, metric 10, tag 2 > to 1.1.0.6 via fxp0.0
1.1.1.7/32 *[IS-IS/15] 00:26:14, metric 10, tag 1 > to 1.1.1.246 via fxp1.0
1.1.1.244/30 *[Direct/0] 01:41:55 > via fxp1.0
1.1.1.245/32 *[Local/0] 01:41:55 Local
1.1.1.248/30 *[IS-IS/18] 00:27:52, metric 20, tag 2 > to 1.1.0.5 via fxp0.0
2.2.0.0/16 *[BGP/170] 00:18:56, MED 0, localpref 100, from 1.1.1.1 AS path: 2222 I
> to 1.1.0.2 via fxp0.0
[BGP/170] 00:18:56, MED 0, localpref 100, from 1.1.1.6 AS path: 2222 I
> to 1.1.0.2 via fxp0.0
3.3.0.0/16 *[BGP/170] 00:48:09, MED 1, localpref 100, from 1.1.1.1 AS path: 3333 I
> to 1.1.0.2 via fxp0.0
[BGP/170] 00:47:33, MED 1, localpref 100, from 1.1.1.6 AS path: 3333 I
> to 1.1.0.2 via fxp0.0
10.0.0.0/8 *[BGP/170] 00:48:09, MED 1, localpref 100, from 1.1.1.1 AS path: 3333 ?
> to 1.1.0.2 via fxp0.0
[BGP/170] 00:47:33, MED 1, localpref 100, from 1.1.1.6 AS path: 3333 ?
> to 1.1.0.2 via fxp0.0
100.100.1.1/32 *[BGP/170] 00:22:11, MED 0, localpref 100, from 1.1.1.7 AS path: ?
> to 1.1.1.246 via fxp1.0
100.100.2.1/32 *[BGP/170] 00:22:11, MED 0, localpref 100, from 1.1.1.7 AS path: ? > to 1.1.1.246 via fxp1.0 192.168.1.0/24 *[BGP/170] 00:48:20, localpref 100, from 1.1.1.1 AS path: I > to 1.1.0.1 via fxp0.0 [BGP/170] 00:48:26, localpref 100, from 1.1.1.6 AS path: I > to 1.1.0.1 via fxp0.0
194.68.128.0/24 *[IS-IS/18] 00:48:33, metric 10, tag 2 > to 1.1.0.4 via fxp0.0
iso.0: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both
47.0001.0010.0100.1003.00/80
*[Direct/0] 01:41:55 > via lo0.0
CiscoアクセスルーターのIS-IS Level 1コンフィグレーションの例
アクセスルーターIS-IS Level 1隣接関係の例
この隣接関係は、Level 1だけです。 ! router isis passive-interface Loopback0 net 47.0001.0010.0100.1007.00is-type level-1/* Pure L1 ISIS adjacency allowed */
metric-style wide/* TLV 135 used for extended metrics, no TLV 128 */ max-lsp-lifetime 65535 lsp-refresh-interval 65000 spf-interval 10 100 500 prc-interval 5 100 250 lsp-gen-interval 10 20 2500 log-adjacency-changes ! router bgp 1111 no synchronization bgp router-id 1.1.1.7 bgp log-neighbor-changes timers bgp 30 90
redistribute connected route-map access neighbor access peer-group
neighbor access remote-as 1111
neighbor access update-source Loopback0 neighbor 1.1.1.3 peer-group access neighbor 1.1.1.5 peer-group access no auto-summary
!
access-list 1 permit 100.100.1.1 access-list 1 permit 100.100.2.1 route-map access permit 10
match ip address 1 !
cisco_access#sh clns nei det
System Id Interface SNPA State Holdtime Type Protocol ida Et0 0002.b322.39c8 Up 25 L1 IS-IS Area Address(es): 47.0001 IP Address(es): 1.1.1.245* Uptime: 00:10:50 cisco_access#
アクセスルーターIS-ISデータベースの例
この例は、Level 2ルーターをLevel 1エリアへリークするテストセットアップ内のすべてのルーターのlo0アドレス を持つインターエリアルーターを示しています。
cisco_access#sh isis dat det IS-IS Level-1 Link State Database:
LSPID LSP Seq Num LSP Checksum LSP Holdtime ATT/P/OL ida.00-00 0x0000001D 0x9774 65332 0/0/0 Area Address: 47.0001 NLPID: 0xCC Router ID: 1.1.1.3 IP Address: 1.1.1.3 Hostname: ida Metric: 10 IS cisco_access.01
Metric: 10 IS-Extended cisco_access.01 Metric: 10 IP 1.1.1.244 255.255.255.252 Metric: 0 IP 1.1.1.3 255.255.255.255 Metric: 74 IP 1.1.1.2 255.255.255.255 Metric: 74 IP 1.1.1.4 255.255.255.255 Metric: 74 IP 1.1.1.1 255.255.255.255 Metric: 74 IP 1.1.1.5 255.255.255.255 Metric: 74 IP 1.1.1.6 255.255.255.255 Metric: 84 IP 1.1.1.248 255.255.255.252 Metric: 10 IP 1.1.1.244/30 Metric: 0 IP 1.1.1.3/32 Metric: 10 IP-Interarea 1.1.1.2/32 Metric: 10 IP-Interarea 1.1.1.4/32 Metric: 10 IP-Interarea 1.1.1.1/32 Metric: 10 IP-Interarea 1.1.1.5/32 Metric: 10 IP-Interarea 1.1.1.6/32 Metric: 20 IP-Interarea 1.1.1.248/30 cisco_access.00-00 * 0x00000003 0xD715 64805 0/0/0 Area Address: 47.0001 NLPID: 0xCC Hostname: cisco_access IP Address: 1.1.1.7 Metric: 10 IP 1.1.1.244/30 Metric: 0 IP 1.1.1.7/32
Metric: 10 IS-Extended cisco_access.01
cisco_access.01-00 * 0x00000003 0x4B86 64839 0/0/0 Metric: 0 IS-Extended cisco_access.00
Metric: 0 IS-Extended ida.00 cisco_access#
アクセスルーターのルートテーブル
Level 1エリアに対してBGPネクストホップを動作させるために、Level 2ルートがida Level 1/Level 2ルーターか らリークされます。
cisco_access#sh ip ro
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
* - candidate default, U - per-user static route, o - ODR P - periodic downloaded static route
Gateway of last resort is not set
1.0.0.0/8 is variably subnetted, 9 subnets, 2 masks i ia 1.1.1.1/32 [115/20] via 1.1.1.245, Ethernet0 i L1 1.1.1.3/32 [115/10] via 1.1.1.245, Ethernet0 i ia 1.1.1.2/32 [115/20] via 1.1.1.245, Ethernet0 i ia 1.1.1.5/32 [115/20] via 1.1.1.245, Ethernet0 i ia 1.1.1.4/32 [115/20] via 1.1.1.245, Ethernet0 C 1.1.1.7/32 is directly connected, Loopback0 i ia 1.1.1.6/32 [115/20] via 1.1.1.245, Ethernet0 C 1.1.1.244/30 is directly connected, Ethernet0 i ia 1.1.1.248/30 [115/30] via 1.1.1.245, Ethernet0
2.0.0.0/16 is subnetted, 1 subnets B 2.2.0.0 [200/0] via 1.1.1.2, 00:05:32
100.0.0.0/32 is subnetted, 2 subnets
C 100.100.1.1 is directly connected, Loopback1 C 100.100.2.1 is directly connected, Loopback2
3.0.0.0/16 is subnetted, 1 subnets B 3.3.0.0 [200/1] via 1.1.1.2, 00:08:49 B 10.0.0.0/8 [200/1] via 1.1.1.2, 00:08:49 B 192.168.1.0/24 [200/0] via 1.1.1.1, 00:08:49 cisco_access#
アクセスルーターBGPテーブルの例
EBGPルートのネクストホップは1.1.1.2と1.1.1.4で、ASで生成されたルートのネクストホップは1.1.1.1と 1.1.1.6です。アグリゲーション
シングルホーム(境界ルーター1台のみ)の外部BGPコネクションがある場合は、アナウンスメントに特に配慮する必要 はありません。一般に、プリフィックスをアナウンスするためのアグリゲートルートとしてスタティックルートを使用 することができます。 インターネット相互接続点やプライベートピアなどの他の多くのものと接続する複数の外部コネクションがある場合 は、通常、複数台の境界ルーターがあります。複数の外部コネクションを取り扱うための、よく知られた頻繁に実行さ れる方式が、ホットポテトルーティングと呼ばれるコンセプトです。この場合、一般に、IBGP内では、EBGPメトリ ックは一切交換されません。ホストは、いずれかの外部ピアを通じてパケットを送信し、別のピアを通じて応答を取得 することができます。図7は、複数の外部コネクションが存在する際に、プリフィックスアナウンスメントを制御する ことがいかに重要かを示しています。AS 65000は、マルチホームで、2本の外部コネクションを持っています。それ らの両方に192.168/16プリフィックスがアナウンスされます。両方の境界ルーターから入力ルートを受け取ります。 cisco_access#sh ip bgpBGP table version is 14, local router ID is 1.1.1.7
Status codes: s suppressed, d damped, h history, * valid, > best, i -internal Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
* i2.2.0.0/16 1.1.1.2 0 101 0 2222 i *>i 1.1.1.2 0 101 0 2222 i * i3.3.0.0/16 1.1.1.2 1 100 0 3333 i *>i 1.1.1.2 1 100 0 3333 i * i100.100.0.0/16 1.1.1.4 100 0 i *>i 1.1.1.4 100 0 i *> 100.100.1.1/32 0.0.0.0 0 32768 ? *> 100.100.2.1/32 0.0.0.0 0 32768 ? * i100.200.0.0/16 1.1.1.4 100 0 i *>i 1.1.1.4 100 0 i *> 100.200.1.1/32 0.0.0.0 0 32768 ? *> 100.200.2.1/32 0.0.0.0 0 32768 ? *> 111.111.0.0/16 0.0.0.0 0 32768 ? * i192.168.1.0 1.1.1.1 100 0 i *>i 1.1.1.1 100 0 i * i192.168.2.0 1.1.1.6 0 100 0 i *>i 1.1.1.6 0 100 0 i *> 222.222.0.0/16 0.0.0.0 0 32768 ? cisco_access#
物理リンク障害などによって、境界ルーターのいずれかがピアを廃棄した場合、そのルーターは、ブラックホールの発 生を避けるために、内部ASへの外部ルートのアナウンスを停止する必要があります(図8)。
図 7: Multihomed Autonomous System
AS 64512 AS 65000 AS 64513 192.168/16 10/8 172.16/12 10/8 172.16/12 192.168/16 192.168/16 192.168/16 border_1 border_2
図 8: Prevention of Internal Announcements with External Link Failures
AS 64512 AS 65000 AS 64513 10/8 172.16/12 192.168/16 192.168/16 192.168/16 border_1 border_2
このシナリオは、IGPを使用して内部リンクとループバックだけを搬送している場合とデフォルトルートを使用してい ない場合には、容易に解決することができます。デフォルトルートを使用している場合は、ブラックホールシナリオを 避けるために、十分な注意を払ってそれらを使用する必要があります。内部ネットワークが切断された場合(IBGPピア が存在しなくなった場合)は、境界ルーターによるプリフィックスのアナウンスを避けることがなおさら重要となりま す。この状況では、境界ルーターが外部ピアへプリフィックスをアドバタイズしなくなるため、パケットはそのルータ ーへは送信されなくなります(図9)。 外部アナウンスメントは条件付きです。つまり、アグリゲートされたプリフィックスに関与しているルートがない場合、 そのアグリゲートプリフィックスはアドバタイズされません。
Cisco IOSプリフィックスアグリゲートの例
この例は、アグリゲートプリフィックスの条件付きアドバタイズメントという同じ機能を実行するCiscoルーターと Juniperルーターのコンフィグレーションの一部を示しています。図 9: Prevention of External Announcements with External Link Failures
AS 64512 AS 65000 AS 64513 10/8 172.16/12 192.168/16 192.168/16 192.168/16 border_1 border_2 ! router bgp 1111 no synchronization
aggregate-address 100.100.0.0 255.255.0.0 summary-only # Aggregation of 100.100/16 and suppress of routes within prefix with longer mask
timers bgp 30 90
neighbor internal peer-group neighbor internal remote-as 1111
neighbor internal update-source Loopback0 neighbor internal next-hop-self
neighbor 1.1.1.1 peer-group internal neighbor 1.1.1.6 peer-group internal neighbor 194.68.128.22 remote-as 2222 neighbor 194.68.128.33 remote-as 3333 no auto-summary
アナウンスされるルートは、次のとおりです。
IOSは、atomic-aggregate属性と、アグリゲートプリフィックスのデフォルトアクションとしてOrigin
igpを追加します。
この例は、比較的長いマスクを持つルートが拒否されていることを検証します。
cisco_border#sh ip bgp nei 194.68.128.33 adv
BGP table version is 157, local router ID is 1.1.1.4
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path *> 2.2.0.0/16 194.68.128.22 0 0 2222 i *> 100.100.0.0/16 0.0.0.0 32768 i *>i192.168.1.0 1.1.1.1 100 0 i cisco_border#
cisco_border#sh ip bgp 100.100.0.0
BGP routing table entry for 100.100.0.0/16, version 153 Paths: (1 available, best #1, table Default-IP-Routing-Table)
Advertised to peer-groups: internal
Advertised to non peer-group peers: 194.68.128.33
Local, (aggregated by 1111 1.1.1.4) 0.0.0.0 from 0.0.0.0 (1.1.1.4)
Origin IGP, localpref 100, weight 32768, valid, aggregated, local, atomic-aggregate, best
cisco_border#
cisco_border#sh ip bgp
BGP table version is 157, local router ID is 1.1.1.4
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
* i2.2.0.0/16 1.1.1.2 0 100 0 2222 i * i 1.1.1.2 0 100 0 2222 i *> 194.68.128.22 0 0 2222 i * 194.68.128.22 1 0 3333 2222 i * i3.3.0.0/16 1.1.1.2 1 100 0 3333 i * i 1.1.1.2 1 100 0 3333 i * 194.68.128.33 0 2222 3333 i *> 194.68.128.33 1 0 3333 i * i10.0.0.0 1.1.1.2 1 100 0 3333 ? * i 1.1.1.2 1 100 0 3333 ? * 194.68.128.33 0 2222 3333 ? *> 194.68.128.33 1 0 3333 ? *> 100.100.0.0/16 0.0.0.0 32768 i s i100.100.1.1/32 1.1.1.7 0 100 0 ? s>i 1.1.1.7 0 100 0 ? s i100.100.2.1/32 1.1.1.7 0 100 0 ? s>i 1.1.1.7 0 100 0 ? *>i192.168.1.0 1.1.1.1 100 0 i
Network Next Hop Metric LocPrf Weight Path
* i 1.1.1.1 100 0 i
JUNOSプリフィックスアグリゲートの例
この例は、前出のIOSの例に相当するJUNOSコンフィグレーションの一部分を示しています。
routing-options { aggregate {
route 100.100.0.0/16;/* Aggregation of 100.100/16 if more specific exist in route-table */ } router-id 1.1.1.2; autonomous-system 1111; } protocols { bgp { path-selection always-compare-med; traceoptions { file bgp; flag state; } log-updown; group external { type external; local-address 194.68.128.2; export ebgp; peer-as 2222; neighbor 194.68.128.22 { peer-as 2222; } neighbor 194.68.128.33 { peer-as 3333; } } group internal { type internal; local-address 1.1.1.2; export internal; neighbor 1.1.1.1; neighbor 1.1.1.6; } } policy-statement ebgp { term one { from { protocol aggregate; route-filter 100.100.0.0/16 exact; /* Aggregated route */ } then accept; } term two { from { route-filter 100.100.0.0/16 longer;
/* Deny routes (suppress) with longer mask than /16 for prefix 100.100/16 */ } then reject; } } }
この例は、アドバタイズされたルートを示しています。OriginatorフィールドがINCOMPLETEとしてマークさ れている点に注意してください。
ルート100.100/16は次のとおりです。
lunkan@lena# run show route advertising-protocol bgp 194.68.128.33 detail inet.0: 19 destinations, 19 routes (19 active, 0 holddown, 0 hidden)
Prefix Nexthop MED Lclpref AS path
100.100.0.0/16 (3 entries, 1 announced) BGP 194.68.128.33 (External AS 3333) Nexthop: Self AS path: ? <Originator> Cluster list: 1.1.1.1 1.1.1.3 Originator ID: 1.1.1.7 [edit] lunkan@lena#
lunkan@lena> show route 100.100/16 detail all
inet.0: 24 destinations, 24 routes (23 active, 0 holddown, 1 hidden) + = Active Route, - = Last Active, * = Both
100.100.0.0/16 (2 entries, 1 announced) *Aggregate Preference: 130
Next hop type: Reject State: <Active Int Ext> Age: 5d 0:42:08 Task: Aggregate Announcement bits (3): 0-KRT 4-BGP.0.0.0.0+179 5-BGP_Sync_Any AS path: ? <Originator> Cluster list: 1.1.1.1 1.1.1.3 Originator ID: 1.1.1.7
Flags: Depth: 0 Active AS path list:
AS path: ? <Originator> Cluster list: 1.1.1.1.1.1.1.3 Originator ID: 1.1.1.7 Refcount: 2
Contributing Routes (2):
100.100.1.1/32 proto BGP 100.100.2.1/32 proto BGP
BGP Preference: 170/-101/* This route is from IOS border router and is ignored */ Source: 1.1.1.1
Nexthop: 2.2.2.20 via fxp0.0, selected State: <Int Ext>
Inactive reason: Route Preference Local AS: 1111 Peer AS: 1111 Age: 46:30 Metric2: 10 Task: BGP_1111.1.1.1.1+3777 AS path: I <Atomic Originator> Aggregator: 1111 1.1.1.4 Cluster list: 1.1.1.1
Originator ID: 1.1.1.4/* IOS default change originate-id to itself */
BGP next hop: 1.1.1.4 Localpref: 100
この例は、EBGP隣接ルーターのルートテーブルを示しています。そこで、Ciscoルーターが選択されています。 100.100.1.1/32 (1 entry, 1 announced)/* This is the contributing route
from IOS access router */ *BGP Preference: 170/-101
Source: 1.1.1.1
Nexthop: 2.2.2.17 via fxp0.0, selected State: <Active Int Ext>
Local AS: 1111 Peer AS: 1111
Age: 30:02 Metric: 0 Metric2: 20 Task: BGP_1111.1.1.1.1+179
Announcement bits (3): 0-KRT 3-Aggregate 5-BGP_Sync_Any AS path: ? <Originator> /* Note IOS add Origin incomplete
default for provision of routes*/ Cluster list: 1.1.1.1 1.1.1.3 Originator ID: 1.1.1.7 Communities: 1111:1 BGP next hop: 1.1.1.7 Localpref: 100 Router ID: 1.1.1.1
100.100.2.1/32 (1 entry, 1 announced)/* This is the contributing route from IOS access router */ *BGP Preference: 170/-101
Source: 1.1.1.1
Nexthop: 2.2.2.17 via fxp0.0, selected State: <Active Int Ext>
Local AS: 1111 Peer AS: 1111
Age: 30:02 Metric: 0 Metric2: 20 Task: BGP_1111.1.1.1.1+179
Announcement bits (3): 0-KRT 3-Aggregate 5-BGP_Sync_Any AS path: ? <Originator> /* Note IOS add Origin incomplete
default for provision of routes*/ Cluster list: 1.1.1.1 1.1.1.3 Originator ID: 1.1.1.7 Communities: 1111:2 BGP next hop: 1.1.1.7 Localpref: 100 Router ID: 1.1.1.1 lunkan@lena> dummy#sh ip bgp
BGP table version is 78, local router ID is 3.3.3.3
Status codes: s suppressed, d damped, h history, * valid, > best, i -internal
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 3.3.0.0/16 0.0.0.0 0 32768 i *> 10.0.0.0 0.0.0.0 0 32768 i *> 33.33.0.0/16 0.0.0.0 0 32768 i * 100.100.0.0/16 194.68.128.2 0 1111 ? /*JUNOS*/ *> 194.68.128.3 0 1111 I /*IOS*/ * 100.200.0.0/16 194.68.128.2 0 1111 ? *> 194.68.128.3 0 1111 i *> 111.111.0.0/16 194.68.128.2 0 1111 ? * 194.68.128.3 0 1111 ? *> 222.222.0.0/16 194.68.128.2 0 1111 ? * 194.68.128.3 0 1111 ? dummy#
アグリゲーションルートのOriginateフィールドがIGPとしてマークされているため、デフォルトではCiscoルー
ターが選択されます。OriginはMEDより優先順位が高いため、問題が生じることがあります。この問題を解決す
るために、as-pathを先頭に付加するか、同じ構造(Origin igp)にルートを挿入することができます。 この例は同じアグリゲートをアナウンスする場合のIOSとJUNOSソフトウェアの相違点を示しています。
JUNOS routing-options aggregateコマンドを使って (前出の例に示したポリシーの代わりに )、 IOS atomic-aggregateビットとその他のaggregateオプションを追加するためのデフォルトを追加する ことができます。
この例は、アグリゲーションの変更された値(Origin igp, atomic-aggregate, aggregator AS,
およびrouter-id)を示しています。 dummy#sh ip bgp 100.100.0.0
BGP routing table entry for 100.100.0.0/16, version 77
Paths: (2 available, best #2, table Default-IP-Routing-Table) Flag: 0x208
Advertised to peer-groups: external
1111
194.68.128.2 from 194.68.128.2 (1.1.1.2)/* JUNOS router */ Origin incomplete, localpref 100, valid, external
1111, (aggregated by 1111 1.1.1.4)/* IOS router */ 194.68.128.3 from 194.68.128.3 (1.1.1.4)
Origin IGP, localpref 100, valid, external, atomic-aggregate, best
[edit routing-options] lunkan@lena# show aggregate { route 100.100.0.0/16 { as-path { origin igp; atomic-aggregate; aggregator 1111 1.1.1.2; } } }
lunkan@lena# run show route 100.100/16 detail all
inet.0: 24 destinations, 24 routes (23 active, 0 holddown, 1 hidden) + = Active Route, - = Last Active, * = Both
100.100.0.0/16 (2 entries, 1 announced) *Aggregate Preference: 130
Next hop type: Reject State: <Active Int Ext> Age: 5d 1:28:22 Task: Aggregate Announcement bits (3): 0-KRT 4-BGP.0.0.0.0+179 5-BGP_Sync_Any AS path: I <Atomic> Aggregator: 1111 1.1.1.2 Flags: Depth: 0 Active Contributing Routes (2):
100.100.1.1/32 proto BGP 100.100.2.1/32 proto BGP
BGP Preference: 170/-101 Source: 1.1.1.1
Nexthop: 2.2.2.20 via fxp0.0, selected State: <Int Ext>
Inactive reason: Route Preference Local AS: 1111 Peer AS: 1111 Age: 30:02 Metric2: 10 Task: BGP_1111.1.1.1.1+179 AS path: I <Atomic Originator> Aggregator: 1111 1.1.1.4 Cluster list: 1.1.1.1 Originator ID: 1.1.1.4 BGP next hop: 1.1.1.4 Localpref: 100 Router ID: 1.1.1.1 100.100.1.1/32 (1 entry, 1 announced) *BGP Preference: 170/-101 Source: 1.1.1.1
Nexthop: 2.2.2.17 via fxp0.0, selected State: <Active Int Ext>
Local AS: 1111 Peer AS: 1111
Age: 30:02 Metric: 0 Metric2: 20 Task: BGP_1111.1.1.1.1+179
Announcement bits (3): 0-KRT 3-Aggregate 5-BGP_Sync_Any AS path: ? <Originator> Cluster list: 1.1.1.1 1.1.1.3 Originator ID: 1.1.1.7 Communities: 1111:1 BGP next hop: 1.1.1.7 Localpref: 100 Router ID: 1.1.1.1 100.100.2.1/32 (1 entry, 1 announced) *BGP Preference: 170/-101 Source: 1.1.1.1
Nexthop: 2.2.2.17 via fxp0.0, selected State: <Active Int Ext>
Local AS: 1111 Peer AS: 1111
Age: 30:02 Metric: 0 Metric2: 20 Task: BGP_1111.1.1.1.1+179
Announcement bits (3): 0-KRT 3-Aggregate 5-BGP_Sync_Any AS path: ? <Originator> Cluster list: 1.1.1.1 1.1.1.3 Originator ID: 1.1.1.7 Communities: 1111:2 BGP next hop: 1.1.1.7 Localpref: 100 Router ID: 1.1.1.1 [edit routing-options] lunkan@lena#
以下は、その時点でJuniperルーターが優先され、アグリゲートルートに関して同じ値を持っている場合の出力です。 この構造に加えられたいくつかの変更は、ASに入出力するパケットパスを構成する際の一般的なものです。外部ピア は、別の境界ルーターのもう1つのパスより優先順位が低くなるように、該当するパスの先頭にas-pathを付加するこ とができます。また、communityまたはMEDを使って、共通のポリシーをネゴシエートすることもできます。同様に、 外部の宛先へ転送される内部パケットのlocal-preferenceにより高い値をセットすることができます。 アグリゲーションに関して特に注意しなければならない点は、アドレッシング構造です。アグリゲートの条件付きアド バタイズメントを実行する場合は、アグリゲート範囲にループバックが含まれないようにしなければなりません。そう でないと、ループバックが常にアグリゲートルートに内包されるルートとなるため、アグリゲーションが無限に続き、 条件によって消失することもなくなってしまいます。ループバックは、この例に示すように、アグリゲート範囲外の境 界ルーター上の範囲に含まれるようにする必要があります。 dummy#sh ip bgp
BGP table version is 8, local router ID is 3.3.3.3
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 3.3.0.0/16 0.0.0.0 0 32768 i *> 10.0.0.0 0.0.0.0 0 32768 i *> 33.33.0.0/16 0.0.0.0 0 32768 i *> 100.100.0.0/16 194.68.128.2 0 1111 I/* JUNOS */ * 194.68.128.3 0 1111 I/* IOS */ *> 100.200.0.0/16 194.68.128.2 0 1111 i * 194.68.128.3 0 1111 i *> 111.111.0.0/16 194.68.128.2 0 1111 ? * 194.68.128.3 0 1111 ? *> 222.222.0.0/16 194.68.128.2 0 1111 ? * 194.68.128.3 0 1111 ? dummy#sh ip bgp 100.100.0.0
BGP routing table entry for 100.100.0.0/16, version 5
Paths: (2 available, best #1, table Default-IP-Routing-Table) Advertised to peer-groups:
external
1111, (aggregated by 1111 1.1.1.2)/* JUNOS */ 194.68.128.2 from 194.68.128.2 (1.1.1.2)
Origin IGP, localpref 100, valid, external, atomic-aggregate, best 1111, (aggregated by 1111 1.1.1.4)/* IOS */
194.68.128.3 from 194.68.128.3 (1.1.1.4)
この問題は、IOSの抑制機能と同様の方法で解決することもできます。以下の例に示すとおり、lo0はアグリゲート 1.1.1.0/24に関与するルートとは見なされません。
}
routing-options { aggregate {
route 1.1.1.0/24 policy deny_local; } router-id 1.1.1.2; autonomous-system 1111; } protocols { bgp { advertise-inactive; log-updown; group external { type external; description to_ebgp-routers; local-address 194.68.128.2; hold-time 180; damping; import ebgp_in; family inet { unicast { prefix-limit { maximum 100; teardown 70; } } any; } export ebgp; peer-as 2222; neighbor 194.68.128.33 { peer-as 3333; } } } policy-options { policy-statement deny_local { term 1 {
from interface lo0.0; then reject;
} } }
アグリゲートルートを検証します。1.1.1.2/32がアグリゲーションに関与していない点に注意してください。
この例は、ローカル(direct)ルートを示しています。1.1.1.2/32が直接ルートです。 lunkan@junos_lena# run show route 1.1.1.0 detail
inet.0: 27 destinations, 27 routes (25 active, 0 holddown, 2 hidden) + = Active Route, - = Last Active, * = Both
1.1.1.0/24 (1 entry, 1 announced) *Aggregate Preference: 130
Next hop type: Reject State: <Active Int Ext> Age: 18:14:13
Task: Aggregate
Announcement bits (3): 0-KRT 4-BGP.0.0.0.0+179 5-BGP_Sync_Any
AS path: I
Flags: Depth: 0 Active AS path list: AS path: I Refcount: 7 Contributing Routes (7): 1.1.1.3/32 proto IS-IS 1.1.1.4/32 proto IS-IS 1.1.1.5/32 proto IS-IS 1.1.1.6/32 proto IS-IS 1.1.1.7/32 proto IS-IS 1.1.1.8/32 proto IS-IS
This example shows the local (direct) routes. Note 1.1.1.2/32 is a direct route.
lunkan@junos_lena# run show route protocol direct
inet.0: 27 destinations, 27 routes (25 active, 0 holddown, 2 hidden) + = Active Route, - = Last Active, * = Both
1.1.1.2/32 *[Direct/0] 1w4d 20:09:21 > via lo0.0 2.2.2.16/28 *[Direct/0] 17:40:51 > via fxp0.0 194.68.128.0/24 *[Direct/0] 1d 06:24:04 > via fxp1.0
境界ルーター
境界ルーターは、EBGPとIBGPが出会う境界線を処理します。境界ルーターの数と配置場所は、IBGP構造と提供する サービスによって決まります。 IBGPがルートリフレクタ構造の場合は、一般に、境界ルーターはバックボーンを取り巻くエッジに配置されます。コ ンフェデレーションを使用している場合は、各サブASのポリシーを適用できるように、各サブASに境界ルーターを配 置することができます。 境界ルーターには、いくつかのタイプがあります。 ■ サービスプロバイダが互いにピアリングするインターネット相互接続点 ■ サービスプロバイダ間のプライベートピアリング ■ いくつかの境界機能を持つ各CPEルーター ■ EBGPなどのダイナミックルーティングプロトコルを使用している場合は、カスタマのルーターへのコネクション。 たとえば、レイヤ3 RFC 2547bis VPNや、終端ルーターをネットワークサービスを保護するための境界ルータ ーにするカスタマエッジ-プロバイダエッジ間。 境界ルーターはさまざまな機能を管理します。 ■ 入力/出力ルーティングポリシー ■ 入力/出力トラフィックフィルタリング ■ 外部隣接ルーターのリンクに入出力するトラフィックのカウントとアカウンティング ■ 特定のトラフィックのためのルーター/ネットワークの安全性の確保 ■ redundancyの処理 ■ 外部コネクションへのサービス提供入力/出力ルーティングBGPポリシー
ルーティングポリシーは、潜在する多数の状況を処理することができます。それらは、ピアリングとas-pathを使 用する場合のように、論理的または方策的に実行されます。 ポリシーを作成して、ASとの間でやり取りされるトラフィックが経由するパスに影響を与えたり、それらを操作した りすることができます。Communityが合致したら、as-pathを付加し、MEDをセットする
BGPは、ASトラフィックがASからのすべてのルートを経由するか、一部の特定のルートだけを経由するかを操作す るために、ポリシーをルートに適用します。ルートをマークするために使用される主な機能は、communityです。起 点(アクセスルーター)などの特定のルートをマークすることで、境界/配信ルーターは、次のようにそのルートに関す る決定事項を決めることができます。 ■ よく知られたcommunity no-exportを使うことで、外部隣接ルーターへの特定ルートの転送を阻止する ■ 境界ルーターでMEDとas-pathを操作できるように、アクセスルーターで特定のルートにcommunityをマークする
■ アナウンスされたアグリゲートに対して境界ルーターでas-pathとMEDを操作し、ポリシーをASへの応答ト ラフィックに適用する
図10と図11は、トポロジー例と、受信およびアドバタイズされたルート更新情報の例です。図10は、イントラASト ラフィックを対象としたルートのプロビジョニング(たとえば、RFC 1918ルート。この場合は、192.168.1/24、 192.168.2/24、および172.16.2/24)と、適したルートテーブルプリフィックスを示しています。
図11は、ASへの応答トラフィックを制御するための、as-pathとMEDの操作を示しています。境界ルーターはア グリゲーションを実行し、特定のcommunitystringを持つルートの受信時に、アグリゲートされていないカスタ マのプリフィックスへ送るなどのアクションを実行します。
図 10: Provision and Prevention of Advertising Intra-AS Routes
192.168.1/24, no-export 172.16.2/24, 1111:10 192.168.1/24, no-export 100.100.1.1/32, 1111:1 100.100.2.1/32, 1111:2 100.200.1.1/32, 1111:5 100.200.2.1/32, 1111:4 111.111/16, 1111:5 222.222/16, 1111:6 2.2/16 3.3/16 Plus Martians UNIX Lunkan Cisco_pop Ida Lena Cisco_border Pagent Access AS 2222 AS 1111 AS 3333 Dummy Cisco_core_rr M40 M20 M10
CommunityをBGPルートに追加するIOSの例
この例では、Cisco_core_rrが192.168.2/24 rfc1918ルートをアナウンスしています。ルートは、外部に転送さ れないように、community no-exportでマークされています。以下は、Ciscoルーターのコンフィグレーショ ンの一部です。
図 11: Manipulation of Announced Aggregate Updates
100.100/16 MED 0 100.200/16 MED 100 as-path 1111 1111 111.111/16 MED 0 222.222/16 MED 100 as-path 1111 1111 1111 100.200/16 MED 0 100.100/16 MED 100 as-path 1111 1111 1111 111.111/16 MED 0 222.222/16 MED 100 as-path 1111 1111 1111 100.100.1.1/32, 1111:1 100.100.2.1/32, 1111:2 100.200.1.1/32, 1111:5 100.200.2.1/32, 1111:4 111.111/16, 1111:5 222.222/16, 1111:6 UNIX Lunkan Cisco_pop Ida Lena Cisco_border Pagent Access AS 2222 AS 1111 AS 3333 Dummy Cisco_core_rr M40 M20 M10 ! router bgp 1111 no synchronization bgp router-id 1.1.1.6 bgp cluster-id 3232236033 bgp log-neighbor-changes network 192.168.2.0 route-map rfc1918 timers bgp 30 90 redistribute connected
neighbor internal_rr peer-group neighbor internal_rr remote-as 1111
neighbor internal_rr update-source Loopback0 neighbor internal_rr route-reflector-client neighbor internal_rr send-community
neighbor internal_rr route-map rfc1918 out neighbor internal peer-group
neighbor internal remote-as 1111
neighbor internal update-source Loopback0
neighbor internal send-community/* Send community */ neighbor internal route-map rfc1918 out/* Route-map out */ neighbor 1.1.1.1 peer-group internal
この例では、Ciscoアクセスルーターが、後から境界ルーターが判別できるように、communityタグを持つIBGP へのルートをプロビジョンしています。
neighbor 1.1.1.3 peer-group internal_rr neighbor 1.1.1.4 peer-group internal_rr neighbor 1.1.1.5 peer-group internal_rr no auto-summary ! ! ip bgp-community new-format ! !
access-list 1 permit 192.168.2.0 0.0.0.25 /* Access-list that route-map use */
route-map rfc1918 permit 10/* Route-map mark route with no-export community */
match ip address 1 set community no-export ! ! router bgp 1111 no synchronization bgp log-neighbor-changes timers bgp 30 90
redistribute connected route-map access/* Route-map used for connected routes (loopbacks) */
redistribute static route-map static /* Route-map used for static routes */
neighbor access peer-group neighbor access remote-as 1111
neighbor access update-source Loopback0 neighbor access send-community
neighbor 1.1.1.3 peer-group access neighbor 1.1.1.5 peer-group access no auto-summary
!
ip bgp-community new-format !
access-list 1 permit 100.100.1.1/* Access-list that route-map uses */ access-list 2 permit 100.100.2.1
access-list 3 permit 100.200.1.1 access-list 4 permit 100.200.2.1
access-list 5 permit 111.111.0.0 0.0.255.255 access-list 6 permit 222.222.0.0 0.0.255.255
route-map access permit 10/* Route-map that sets community for connected routes */
match ip address 1 set community 1111:1 !
route-map access permit 20 match ip address 2
set community 1111:2 !
route-map access permit 30 match ip address 3
route-map access permit 40 match ip address 4
set community 1111:4 !
route-map static permit 10/* Route-map that set community for staticly routes */
match ip address 5 set community 1111:5 !
route-map static permit 20 match ip address 6
set community 1111:6 !
cisco_access#sh ip bgp commun 1111:1
BGP table version is 12, local router ID is 1.1.1.7
Status codes: s suppressed, d damped, h history, * valid, > best, i -internal Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 100.100.1.1/32 0.0.0.0 0 32768 ?
cisco_access#sh ip bgp commun 1111:2
BGP table version is 12, local router ID is 1.1.1.7
Status codes: s suppressed, d damped, h history, * valid, > best, i -internal Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 100.100.2.1/32 0.0.0.0 0 32768 ?
cisco_access#sh ip bgp commun 1111:3
BGP table version is 12, local router ID is 1.1.1.7
Status codes: s suppressed, d damped, h history, * valid, > best, i -internal Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 100.200.1.1/32 0.0.0.0 0 32768 ?
cisco_access#sh ip bgp commun 1111:4
BGP table version is 12, local router ID is 1.1.1.7
Status codes: s suppressed, d damped, h history, * valid, > best, i -internal Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 100.200.2.1/32 0.0.0.0 0 32768 ?
cisco_access#sh ip bgp commun 1111:5
BGP table version is 12, local router ID is 1.1.1.7
Status codes: s suppressed, d damped, h history, * valid, > best, i -internal Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 111.111.0.0/16 0.0.0.0 0 32768 ?
cisco_access#sh ip bgp commun 1111:6
BGP table version is 12, local router ID is 1.1.1.7
Status codes: s suppressed, d damped, h history, * valid, > best, i -internal Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 222.222.0.0/16 0.0.0.0 0 32768 ?
CommunityをBGPルートに追加するJUNOSソフトウェアの例
この例では、lunkanルーターが、community no-exportをマークした192.168.1/24 rfc1918ルートと、
community1111:10をマークした172.16.2/24ルートをアナウンスし、前出のcisco_accessルーターと同様 のルートプロビジョニングをシミュレートしています。 routing-options { router-id 1.1.1.1; autonomous-system 1111; } protocols { bgp { traceoptions { file bgp; flag state; } log-updown; group internal_rr { type internal; local-address 1.1.1.1;
export service;/* Export policy (for non-reflected routes) */ cluster 1.1.1.1; neighbor 1.1.1.2 { authentication-key "$9$.mT3ApBSrv9ApBRSMW"; } neighbor 1.1.1.3 { authentication-key "$9$h2PclM7-waZjX7-w2aiH"; } neighbor 1.1.1.4; neighbor 1.1.1.5; } group internal { type internal; local-address 1.1.1.1;
export service;/* Export policy (for non-reflected routes) */ neighbor 1.1.1.6; } } policy-options { policy-statement service { term one { from { route-filter 192.168.1.0/24 exact; } then { community add rfc1918; accept; } } term two { from { route-filter 172.16.2.0/24 exact; } then {
community add mcast; accept;
} } }
ここでは、Juniperルーターは、アナウンスされたルートがcommunitystringを持つことを検証しています。
IOSのas-pathとMEDの操作例
これは、ルートを受信するcisco_borderのコンフィグレーションの一部です。いくつかのルートをアグリゲートして いますが、それ以外はアグリゲートしていません。場合によっては、MEDを追加しています。as-pathプリペンド は、communitystringに基づいて付加されます。また、デフォルトとしてcommunity no-exportを持つ ルートはEBGPへはアドバタイズされません。
lunkan@lunkan# run show route advertising-protocol bgp 1.1.1.2 172.16.2/24 detail inet.0: 27 destinations, 27 routes (27 active, 0 holddown, 0 hidden)
Prefix Nexthop MED Lclpref AS path
172.16.2.0/24 (1 entry, 1 announced) BGP group type Internal AS 1111
Nexthop: Self Localpref: 100 AS path: I
Communities: 1111:10 [edit]
lunkan@lunkan# run show route advertising-protocol bgp 1.1.1.2 192.168.1/24 detail inet.0: 27 destinations, 27 routes (27 active, 0 holddown, 0 hidden)
Prefix Nexthop MED Lclpref AS path
192.168.1.0/24 (1 entry, 1 announced) BGP group type Internal AS 1111
Nexthop: Self Localpref: 100 AS path: I Communities: no-export [edit] lunkan@lunkan# ! router bgp 1111 no synchronization bgp router-id 1.1.1.4 bgp log-neighbor-changes bgp deterministic-med
bgp dampening route-map damp
aggregate-address 100.100.0.0 255.255.0.0 summary-only aggregate-address 100.200.0.0 255.255.0.0 summary-only timers bgp 30 90
neighbor internal peer-group neighbor internal remote-as 1111
neighbor internal update-source Loopback0 neighbor internal next-hop-self
neighbor external peer-group
neighbor external prefix-list martians in neighbor external route-map int_policy in
neighbor external route-map ext_policy out /* Route-map (policy) applied to route... */
neighbor 1.1.1.1 peer-group internal neighbor 1.1.1.6 peer-group internal neighbor 194.68.128.22 remote-as 2222 neighbor 194.68.128.22 peer-group external neighbor 194.68.128.33 remote-as 3333 neighbor 194.68.128.33 peer-group external no auto-summary ! ip bgp-community new-format ip community-list 1 permit 1111:5 ip community-list 2 permit 1111:6 !
communityがマークされたルートは、境界ルーターに到達します。 access-list 10 permit 100.100.0.0 0.0.255.255 access-list 20 permit 100.200.0.0 0.0.255.255 route-map ext_policy permit 10
match ip address 10 /* Agggregate 100.100/16 are as-prep and get high (bad) MED */
set metric 100
set as-path prepend 1111 1111 1111 !
route-map ext_policy permit 20
match ip address 20/* Aggregate 100.200/16 get low (good) MED */ set metric 0
!
route-map ext_policy permit 30 match community 1
set metric 100
set as-path prepend 1111 1111 1111 /* 111.111/16 route with community 1111:5 get as-path prepend and high MED (bad) value */
!
route-map ext_policy permit 40
match community 2 /* 222.222/16 route with community 1111:6 get low MED (good) value */
set metric 0 !
route-map ext_policy deny 50 !
cisco_border#sh ip bgp comm 1111:1
BGP table version is 17, local router ID is 1.1.1.4
Status codes: s suppressed, d damped, h history, * valid, > best, i -internal Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
s>i100.100.1.1/32 1.1.1.7 0 100 0 ?
cisco_border#
cisco_border#sh ip bgp comm 1111:2
BGP table version is 17, local router ID is 1.1.1.4
Status codes: s suppressed, d damped, h history, * valid, > best, i -internal Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
s>i100.100.2.1/32 1.1.1.7 0 100 0 ?
cisco_border#
cisco_border#sh ip bgp comm 1111:3
BGP table version is 17, local router ID is 1.1.1.4
Status codes: s suppressed, d damped, h history, * valid, > best, i -internal Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
s>i100.200.1.1/32 1.1.1.7 0 100 0 ?
cisco_border#
cisco_border#sh ip bgp comm 1111:4
BGP table version is 17, local router ID is 1.1.1.4
Status codes: s suppressed, d damped, h history, * valid, > best, i -internal Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
s>i100.200.2.1/32 1.1.1.7 0 100 0 ?
この例は、communitystring1111:10を持つルートを示しています。
この例は、no-export communitystringを持つルートを示しています。
この例は、communitystringに応じて、MEDとas-pathが操作されているルートを示しています。
この例は、EBGP隣接ルーターへアドバタイズされたルートを示しています。192.168.1/24、192.168.2/24、 および172.16.2/24はアドバタイズされません。
cisco_border#sh ip bgp com 1111:10
BGP table version is 18, local router ID is 1.1.1.4
Status codes: s suppressed, d damped, h history, * valid, > best, i -internal Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*>i172.16.2.0/24 1.1.1.1 100 0 i
cisco_border#
cisco_border#sh ip bgp comm no-export
BGP table version is 19, local router ID is 1.1.1.4
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*>i192.168.1.0 1.1.1.1 100 0 i
*>i192.168.2.0 1.1.1.6 0 100 0 i
* i 1.1.1.6 0 100 0 i
cisco_border#
cisco_border#sh ip bgp comm 1111:5
BGP table version is 17, local router ID is 1.1.1.4
Status codes: s suppressed, d damped, h history, * valid, > best, i -internal Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*>i111.111.0.0/16 1.1.1.7 0 100 0 ?
cisco_border#
cisco_border#sh ip bgp comm 1111:6
BGP table version is 17, local router ID is 1.1.1.4
Status codes: s suppressed, d damped, h history, * valid, > best, i -internal Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*>i222.222.0.0/16 1.1.1.7 0 100 0 ?
cisco_border#
cisco_border#sh ip bgp nei 194.68.128.33 adv
BGP table version is 17, local router ID is 1.1.1.4
Status codes: s suppressed, d damped, h history, * valid, > best, i -internal Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 100.100.0.0/16 0.0.0.0 32768 i
*> 100.200.0.0/16 0.0.0.0 32768 i
*>i111.111.0.0/16 1.1.1.7 0 100 0 ?
*>i222.222.0.0/16 1.1.1.7 0 100 0 ?
as-pathとMEDを操作するJUNOSソフトウェアの例
これは、前出のIOSの例と同じ結果をもたらすJuniper境界ルーターのコンフィグレーションです。 routing-options { aggregate { route 100.100.0.0/16 { as-path { origin igp; atomic-aggregate; aggregator 1111 1.1.1.2; } } route 100.200.0.0/16 { as-path { origin igp; atomic-aggregate; aggregator 1111 1.1.1.2; } } } router-id 1.1.1.2; autonomous-system 1111; } protocols { bgp { traceoptions { file bgp;flag damping detail; } log-updown; group external { type external; local-address 194.68.128.2; damping; import ebgp_in;
export ebgp; /* Policy used for EBGP peering */ neighbor 194.68.128.22 { peer-as 2222; } neighbor 194.68.128.33 { peer-as 3333; } } group internal { type internal; local-address 1.1.1.2; export internal; neighbor 1.1.1.1 { authentication-key "$9$0UylORSvWxwYoevWx-waJ"; } neighbor 1.1.1.6; } } policy-options { policy-statement ebgp {
term two {/* Agggregate 100.200/16 are as-prep and get high (bad) MED */
from { route-filter 100.200.0.0/16 exact; } then { metric 100; as-path-prepend "1111 1111"; accept; } }
term three {/* Aggregate 100.100/16 get low (good) MED */ from { route-filter 100.100.0.0/16 exact; } then { metric 0; accept; } }
term four {/* 222.222/16 route with community 1111:5 get as-path prepend and high MED (bad) value */
from community bad; then { metric 100; as-path-prepend "1111 1111 1111"; accept; } }
term five {/* 111.111/16 route with community 1111:6 get low MED (good) value */
from community good; then { metric 0; accept; } } term last { then reject; } }
community bad members 1111:6; community good members 1111:5;
communityがマークされたルートは、境界ルーターに到達します。
この例は、communitystring1111:10を持つルートを示しています。
lunkan@lena> show route community 1111:1
inet.0: 28 destinations, 28 routes (26 active, 0 holddown, 4 hidden) + = Active Route, - = Last Active, * = Both
100.100.1.1/32 *[BGP/170] 01:55:38, MED 0, localpref 100, from 1.1.1.1 AS path: ?
> to 1.1.0.3 via fxp0.0 to 1.1.0.5 via fxp0.0
iso.0: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both
lunkan@lena> show route community 1111:2
inet.0: 28 destinations, 28 routes (26 active, 0 holddown, 4 hidden) + = Active Route, - = Last Active, * = Both
100.100.2.1/32 *[BGP/170] 01:55:41, MED 0, localpref 100, from 1.1.1.1 AS path: ?
to 1.1.0.3 via fxp0.0 > to 1.1.0.5 via fxp0.0
iso.0: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both
lunkan@lena> show route community 1111:3
inet.0: 28 destinations, 28 routes (26 active, 0 holddown, 4 hidden) + = Active Route, - = Last Active, * = Both
100.200.1.1/32 *[BGP/170] 01:55:43, MED 0, localpref 100, from 1.1.1.1 AS path: ?
> to 1.1.0.3 via fxp0.0 to 1.1.0.5 via fxp0.0
iso.0: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both
lunkan@lena> show route community 1111:4
inet.0: 28 destinations, 28 routes (26 active, 0 holddown, 4 hidden) + = Active Route, - = Last Active, * = Both
100.200.2.1/32 *[BGP/170] 01:55:45, MED 0, localpref 100, from 1.1.1.1 AS path: ?
> to 1.1.0.3 via fxp0.0 to 1.1.0.5 via fxp0.0
iso.0: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both
lunkan@lena> show route community 1111:10
inet.0: 28 destinations, 28 routes (26 active, 0 holddown, 4 hidden) + = Active Route, - = Last Active, * = Both
172.16.2.0/24 *[BGP/170] 00:22:42, localpref 100, from 1.1.1.1 AS path: I
> to 1.1.0.1 via fxp0.0
iso.0: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both