ネットワークのおべんきょしませんか? 究める BGP サンプル COMMUNITY アトリビュートここまで解説してきた WEIGHT LOCAL_PREFERENCE MED AS_PATH アトリビュートはベストパス決定で利用します ですが COMMUNITY アトリビュートはベストパスの決定とは

Similar documents
BGPルートがアドバタイズされない場合のトラブルシューティング

宛先変更のトラブルシューティ ング

All Rights Reserved. Copyright(c)1997 Internet Initiative Japan Inc. 1

BGP ( ) BGP4 community community community community July 3, 1998 JANOG2: What is BGP Community? 2

橡C14.PDF

PowerPoint プレゼンテーション

Microsoft PowerPoint irs14-rtbh.ppt

JUNOSインターネットソフトウェアとIOSのコンフィグレーション変換

25.pdf

【公開】村越健哉_ヤフーのIP CLOSネットワーク

外部ルート向け Cisco IOS と NXOS 間の OSPF ルーティング ループ/最適でないルーティングの設定例

ループ防止技術を使用して OSPFv3 を PE-CE プロトコルとして設定する

15群(○○○)-8編

Inter-IX IX/-IX 10/21/2003 JAPAN2003 2

RPKI in DNS DAY

VyOSではじめるBGPルータ

今日のトピック 実験結果の共有 RPKI/Router 周りの基本的な動き 今後の課題と展望 2012/7/6 copyright (c) tomop 2

ip nat outside source list コマンドを使用した設定例

Microsoft PowerPoint - janog20-bgp-public-last.ppt

Firepower Threat Defense の BGP

EIGRP MPLS VPN PE-CE Site of Origin の設定

RENAT - NW検証自動化

経路奉行の取り組み

Clos IP Fabrics with QFX5100 Switches

スライド 1

untitled

Juniper Networks Corporate PowerPoint Template

JANOG14-コンバージェンスを重視したMPLSの美味しい使い方

Polling Question 1

ICND2-Road to ICND2- 前提知識 ICND 2では CCEN Tレベルの知識がある方 (ICND 1 試験の合格レベル ) を対象とし それ同等 の知識が必要になってきます 研修に参加されるまでに以下の項目を復習しておくことを お勧めします IP アドレスとサブネットマスク ホスト

IPv6 リンクローカル アドレスについて

橡3-MPLS-VPN.PDF

routing_tutorial key

ISPのトラフィック制御とBGPコミュニティの使い方

BGPベストパス選択の実際

本日のお話 運用 / 運用システムの現状 ネットワーク運用の自動化のススメ 1) ネットワーク管理の自動化 2) ネットワーク工事 ( 設定 ) の自動化 3) ネットワーク運用時 ( 障害時 ) の自動化 Copyright 2012 NTT Communications Corporation.

9.pdf

2004 IPv6 BGP G01P005-5


MPLS-VPN とは C 社を中心として RFC2547(Informational) に記された ISP サービスとしての IP-VPN 実現技術 網内パケット転送に MPLS(LDP/TDP) VPN 経路情報交換に BGP(mpBGP:RFC2283) を使用 ルーティングプロトコルがエッジ

SCREENOS NAT ScreenOS J-Series(JUNOS9.5 ) NAT ScreenOS J-Series(JUNOS9.5 ) NAT : Destination NAT Zone NAT Pool DIP IF NAT Pool Egress IF Loopback Grou

¥¤¥ó¥¿¡¼¥Í¥Ã¥È·×¬¤È¥Ç¡¼¥¿²òÀÏ Âè5²ó

アライドテレシス・コアスイッチ AT-x900 シリーズ で実現するエンタープライズ・VRRPネットワーク

D-3案

November 29, 2016 BGP COMMUNITY の世界動向 吉村知夏 NTT America Internet Week 2016 / Tokyo 1

ユーザ デバイス プロファイル エクス ポートの使用方法

Microsoft PowerPoint - s07-nakano tatsuya-iw2011-s7-nakano( ) [互換モード]

rpki-test_ver06.pptx

SMTP ルーティングの設定

IIJ Technical WEEK2017 経路制御の課題と対策

第1回 ネットワークとは

untitled

U コマンド

初めてのBFD

Cisco ルータと Novell NetWare Server の間の IPX 初期設定およびトラブルシューティング

Juniper Networks Corporate PowerPoint Template

Packet Tracer: 拡張 ACL の設定 : シナリオ 1 トポロジ アドレステーブル R1 デバイスインターフェイス IP アドレスサブネットマスクデフォルトゲートウェイ G0/ N/A G0/

<4D F736F F F696E74202D C F815B834E95D2836E E9197BF2E707074>

関連事項の整理 62 IGP と EGP の違い ルータルータ ルータルータ EGP は Routing Domain 間の中の経路のみ扱う EGP の Next Hop は境界ルータへの IP アドレス Routing Domain - A ルータ ルータ IGP は Routing Domain

<43434E505F E291E88F575F88F38DFC977090B38CEB955C28328DFC88C88D7E292E786C73>

はじめに xsp のルータにおいて設定を推奨するフィルタの項目について の IPv6 版 最低限 設定することが推奨されるフィルタ について まず議論したい 接続形態に変化はないので IPv6 対応をメインに IETF draft RIR でproposal 進行中のものについては今回の検討外とした

untitled

Policy Based Routing:ポリシー ベース ルーティング

アライドテレシス・コアスイッチ AT-x900 シリーズとディストリビューションスイッチ AT-x600 シリーズで実現するACLトラフィックコントロール

Microsoft PowerPoint - janog15-irr.ppt

総セク報告書(印刷発出版_.PDF

障害およびログの表示

ii 2011 by Juniper Networks, Inc. All rights reserved. Juniper Networks Juniper Networks Junos NetScreen ScreenOS Juniper Networks, Inc. Junose 1 5,47

橡2-TrafficEngineering(revise).PDF

L3/L3VPN 用のセグメント ルーティング オン デマンド ネクスト ホップ

アドレス プールの設定

Policy Based Routing:ポリシー ベース ルーティング

電話機のファイル形式

設定例: 基本 ISDN 設定

実習 :VLAN 間ルーティングのトラブルシューティング トポロジ 2014 Cisco and/or its affiliates. All rights reserved. This document is Cisco Public. 1 / 8 ページ

内容 お知らせとご利用方法 ( ポイント ) RPKIとOrigin Validation JPNICのRPKIシステム ~ 試験提供とは~ RPKIシステムの使い方 ROAキャッシュサーバの設置方法 RPKIの技術課題 1

第11回ネットワークプランニング18(CS・荒井)

untitled

Microsoft PowerPoint f-InternetOperation04.ppt

リング型IPカメラ監視ソリューション(マルチキャスト編)

PowerPoint Presentation

IP.dvi

マルチポイント GRE トンネルを使用するダイ ナミック レイヤ 3 VPN

TCP/IP Internet Week 2002 [2002/12/17] Japan Registry Service Co., Ltd. No.3 Internet Week 2002 [2002/12/17] Japan Registry Service Co., Ltd. No.4 2

PfRv2 での Learn-List と PfR-Map の設定

ユニキャスト RIB および FIB の管理

CCIE IP Anycast RP Anycast RP Anycast RP Anycast RP PIM-SM RP RP PIM-SM RP RP RP PIM Register RP PIM-SM RP PIM-SM RP RP RP RP Auto RP/BSR RP RP RP RP

2011 NTT Information Sharing Platform Laboratories

リング型IPカメラ監視ソリューション

RADIUS サーバを使用して NT のパスワード期限切れ機能をサポートするための Cisco VPN 3000 シリーズ コンセントレータの設定

Office 365 とのドメイン間フェデレーション

網設計のためのBGP入門

total.dvi

Microsoft PowerPoint - ie ppt

BGP/MPLS-VPN とは ルータによる 多様な IF による提供が可能 (ATM~ HSD などの非対称構成も可能 ) 暗号に頼らないセキュリティの確保が可能 (FR などと同等の機能を IP ネットワークで実現 ) お客様側への特別な装置が不要 (a)ipsec-vpn 方式 暗号化装置 (

実習 : シングルエリアでの OSPFv3 の基本設定 トポロジ 2014 Cisco and/or its affiliates. All rights reserved. This document is Cisco Public. 1 / 11 ページ

PowerPoint プレゼンテーション

PIM-SSMマルチキャストネットワーク

PowerPoint プレゼンテーション

Transcription:

COMMUNITY アトリビュートここまで解説してきた WEIGHT LOCAL_PREFERENCE MED AS_PATH アトリビュートはベストパス決定で利用します ですが COMMUNITY アトリビュートはベストパスの決定とは直接関係しません COMMUNITY アトリビュートを利用すると 特定の条件に基づいてルート情報をグループ化する ことができます グループ化したルート情報の識別情報 ( タグ ) が COMMUNITY アトリビュートです COMMUNITY アトリビュートは 32 ビットの数値です しかし 32 ビットの数値をそのまま使うと分かりにくいため COMMUNITY アトリビュートは次のように 16 ビットの AS 番号と 16 ビットの識別子を組み合わせて表記されます AS 番号 : 識別子 16 ビット 16 ビット 図 1 COMMUNITY のフォーマット Cisco ルータでこの形式で COMMUNITY アトリビュートを扱うためには ip bgp-community new-format コマンドが必要です 1 つのルートに複数の COMMUNITY を付加することも可能です COMMUNITY アトリビュートによってグループ化したルート情報をどのように扱うかは 自由です フィルタしたり LOCAL_PREFERENCE や MED などのアトリビュートを再設 定したりします 1

AS1 AS2 COMMUNITY1 20.0.0.0/8 100.0.0.0./8 212.150.1.0/24 30.0.0.0/8 150.0.0.0./8 200.150.1.0/24 COMMUNITY2 R1 特定の条件に基づいてルート情報をグループ化 グループを識別するために COMMUNITY アトリビュートをルートに付加する R2 図 2 COMMUNITY の利用 COMMUNITY アトリビュートの特徴として アトリビュートが伝達されていく範囲も注目すべき点です LOCAL_PREFERENCE は自 AS 内 MED はネイバー AS 内というようにアトリビュートが伝達される範囲が限られています しかし COMMUNITY アトリビュートは AS を越えてルート情報に付加されて伝達されていきます そのため 離れた AS 間でのルート情報の制御に COMMUNITY アトリビュートを利用することが可能です 2

AS1 LOCAL_PREFER ENCE は自 AS 内でのみ有効 100.0.0.0/8 LOCAL_PREF 削除 MED COMMUNITY AS2 100.0.0.0/8 AS1 で 100.0.0.0/8 に LOCAL_PREF MED COMMUNITY を付加 R1 MED はネイバー AS 内でのみ有効 100.0.0.0/8 LOCAL_PREF 削除 MED 削除 COMMUNITY R2 R3 BGP テーブル 100.0.0.0/8 COMMUNITY COMMUNITY は AS を越えてルート情報に付加されて伝達 R3 図 3 COMMUNITY の有効範囲 このような COMMUNITY アトリビュートの特徴をまとめると 次のようになります 特定の条件に基づいてルート情報をグループ化する グループ化したルート情報の識別情報である AS を越えて伝達される 離れた AS 間でのルート情報の制御が可能になる 3

Well-Known COMMUNITY COMMUNITY の値には 予約されている Well-known COMMUNITY があります Well-known COMMUNITY をルートに付加すると その種類に応じて自動的にルートのフィルタが可能です Well-known COMMUNITY で どこまで BGP ルートが伝わるようにするかを簡単に制御することができます Well-known COMMUNITY の種類とその動作は次の通りです 表 1 Well-known COMMUNITY Well known COMMUNITY 動作 値 (16 進数 ) no_export EBGP ネイバーにルートを送信しない 0xFFFFFF01 no_advertise いかなる BGP ネイバーにもルートを送信 0xFFFFFF02 しない local_as EBGP/IEBGP ネイバーにルートを送信しない 0xFFFFFF03 Well-known COMMUNITY とその動作を図で表すと次のようになります no_export を付加してルートを送信 AS65001 EBGP IBGP IEBGP AS1 BGP ルート no_export AS65002 noexport の COMMUNITY がついているルートは EBGP ネイバーに送信しない AS2 AS3 図 4 Well-known COMMUNITY no_export 4

no_advertise を付加してルートを送信 AS65001 EBGP IBGP IEBGP AS1 BGP ルート no_advertise AS65002 no_advertise の COMMUNITY がついているルートは他のネイバーに送信しない AS2 AS3 図 5 Well-known COMMUNITY no_advertise local_as を付加してルートを送信 local_as の COMMUNITY がついているルートは IEBGP ネイバーに送信しない AS65001 EBGP IBGP IEBGP AS1 BGP ルート local_as AS65002 AS2 AS3 図 6 Well-known COMMUNITY local_as COMMUNITY を付加するルータと実際にルートをフィルタするルータが違うルータであることに注意してください ここが通常のルートフィルタが異なる点です Well-known COMMUNITY を付加することで 他のルータにおけるルートの送信に影響を及ぼすことができます 5

COMMUNITY アトリビュートを利用するための手順 Well-known COMMUNITY 以外にも任意のプライベート COMMUNITY でルート制御を行うことができます プライベート COMMUNITY では 離れた AS 間でフィルタだけでなくアトリビュートの再設定などのさまざまな制御を行うことができます そのためには 次のような手順で行います 1. 制御を行いたい AS 間で協議 AS が異なるということは管理している組織も異なります 単体の AS だけですべて完結するというわけにはいきせん まず AS 間でどのようなルート情報に対してどのような制御を行うかを協議します 制御したいルート情報に対してどのような値の COMMUNITY アトリビュートを設定するかを決定します 2. ルートの送信元 AS で COMMUNITY アトリビュートを付加 COMMUNITY アトリビュートの付加はルートマップで行います ルートマップの match の条件に一致したルート情報に対して set community コマンドで任意の COMMUNITY 値を付加することができます あらかじめ協議した条件に基づいて ルート情報に COMMUNITY を付加します Cisco ルータでは デフォルトでネイバーに対して COMMUNITY アトリビュートをアドバタイズしません ネイバーに対して COMMUNITY アトリビュートをアドバタイズするためには neighbor send-community コマンドが必要です 3. ルートの送信先 AS で COMMUNITY アトリビュートを参照してルート情報を制御 COMMUNITY アトリビュートの参照もルートマップで行います ルートマップの match 条件で match community コマンドにより ルート情報に付加されている COMMUNITY アトリビュートを参照できます ルートマップで COMMUNITY アトリビュートを参照して あらかじめ協議していたルート情報の制御を行います ルート情報の制御として フィルタを行うことが一般的です Well-known COMMUNITY では明示的な設定は不要です 前述のように Well-known COMMUNITY の種類に応じて自動的にルートフィルタが行われます 6

2. ルートの送信元 AS で COMMUNITY アトリビュートを付加 route-map <map-tag> permit <seq> match <condition> set community <community> AS1 AS2 AS1 と AS3 で AS1 のルート情報に対して COMMUNITY による制御を行いたい 1.AS1 と AS3 で協議 どのようにルートをグループ化するか どのようなルートの制御を行うか どのような COMMUNITY アトリビュートを付加するか AS3 AS4 3. ルートの送信先 AS で COMMUNITY アトリビュートを参照して ルート情報の制御 route-map <map-tag> permit <seq> match community <community-list> set <action> 図 7 COMMUNITY アトリビュートの利用 7

COMMUNITY の設定コマンド COMMUNITY を利用する場合の設定コマンドを紹介します set community <community> {additive} ルートマップ内のコマンドです match 条件に一致したルートに対して指定した COMMUNITY を付加します すでに何らかの COMMUNITY が付加されている場合 上書きされます additive のオプションがついていれば 既存の COMMUNITY に追加で新しい COMMUNITY を付加します set community none とすると 現在ルートに付加されている COMMUNITY アトリビュートを削除します set comm-list <community-list-num> delete コミュニティリストで指定された COMMUNITY 値を削除します match community <community-list-num> ルートマップ内のコマンドです COMMUNITY に基づいたアクションを行うルータでルートに付加されている COMMUNITY を参照するために使います 実際には コミュニティリストを作成し そのコミュニティリストによって COMMUNITY を参照します ip community-list <num> permit <community> グローバルコンフィグレーションモードのコマンドです 参照したい COMMUNITY を指定するためのリストです neighbor <ip-address> send-community BGP の設定モード内のコマンドです Cisco ルータのデフォルトの動作では BGP ルートに付加されている COMMUNITY をすべて削除してしまいます COMMUNITY を削除せずに ネイバーに送信するためには このコマンドが必要です COMMUNITY を利用する場合は 関連するルータすべてに設定が必要です 設定が抜けているルータが含まれると意図したとおりに COMMUNITY による制御ができませんので 注意してください ピアグループのテンプレートに入れると設定漏れがなくなります ip bgp community new-format グローバルコンフィグレーションモードのコマンドです COMMUNITY の値を 32 ビットの数値の代わりに AS 番号 : 識別子 の形式で扱えるようになります show ip bgp <address> ルートに付加されている COMMUNITY を確認することができます show ip bgp community [<community> <community-list-num>] show ip bgp community では 何らかの COMMUNITY が付加されているルートを一 8

覧で表示することができます 特定の COMMUNITY やコミュニティリスト番号を指 定すると 指定した COMMUNITY が付加されているルートを一覧表示します COMMUNITY の確認ログ R1#show ip bgp community BGP table version is 7, local router ID is 1.1.1.1 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP,? - incomplete Network Next Hop Metric LocPrf Weight Path *> 100.1.1.0/24 172.16.1.11 0 0 1 i *> 100.1.2.0/24 172.16.1.11 0 0 1 i *> 100.1.3.0/24 172.16.1.11 0 0 1 i R1#show ip bgp 100.1.1.0 BGP routing table entry for 100.1.1.0/24, version 7 Paths: (1 available, best #1, table Default-IP-Routing-Table, not advertised to any peer) Flag: 0x880 Not advertised to any peer 1 172.16.1.11 from 172.16.1.11 (111.1.1.11) Origin IGP, metric 0, localpref 100, valid, external, best Community: no-advertise R1#show ip bgp 100.1.2.0 BGP routing table entry for 100.1.2.0/24, version 6 Paths: (1 available, best #1, table Default-IP-Routing-Table, not advertised outside local AS) Flag: 0x880 Advertised to non peer-group peers: 3.3.3.3 1 172.16.1.11 from 172.16.1.11 (111.1.1.11) Origin IGP, metric 0, localpref 100, valid, external, best 9

Community: local-as R1#show ip bgp 100.1.3.0 BGP routing table entry for 100.1.3.0/24, version 5 Paths: (1 available, best #1, table Default-IP-Routing-Table, not advertised to EBGP peer) Flag: 0x880 Advertised to non peer-group peers: 3.3.3.3 1 172.16.1.11 from 172.16.1.11 (111.1.1.11) Origin IGP, metric 0, localpref 100, valid, external, best Community: no-export 10

ケーススタディ 6: COMMUNITY 次のネットワーク構成で Well-known COMMUNITY の動作をみていきましょう AS1 192.168.13.0/24 AS65001 Lo 1.1.1.1 R1 172.16.1.0/24 ISP1 100.1.1.0/24 100.1.2.0/24 100.1.3.0/24 R3 Lo 3.3.3.3 192.168.23.0/24 172.16.2.0/24 AS100 AS65002 R2 Lo 2.2.2.2 ISP2 AS2 EBGP IBGP IEBGP 各ルータのホストアドレス R1:1 R2:2 R3:3 ISP1:11 ISP2:22 図 8 Well-known COMMUNITY 確認用のネットワーク構成 ここでは単純にするために AS1 の ISP1 が生成する 100.1.1.0/24 100.1.2.0/24 100.1.3.0/24 の 3 つのルートだけを考えます 11

Well-known COMMUNITY ISP1 が生成するルートについて 伝わる範囲を制限します 100.1.1.0/24 は R1 まで 100.1.2.0/24 は R3 まで 100.1.3.0/24 は R2 まで これを実現するために ISP1 は次のように Well-known COMMUNITY を付加します 100.1.1.0/24 に no_advertise 100.1.2.0/24 に local_as 100.1.3.0/24 に no_export 100.1.1.0/24 は R1 から先のいかなるネイバーにも送信しないように no_advertise の Well-known COMMUNITY を付加します 100.1.2.0/24 にはコンフェデレーション構成のサブ AS から外部に出て行かないように local_as の Well-known COMMUNITY を付加します 100.1.3.0/24 には AS100 から外に出て行かないように no_export の Well-known COMMUNITY を付加します BGP ルート 100.1.1.0/24 no_advertise 100.1.2.0/24 local_as 100.1.3.0/24 no_export AS1 AS65001 R1 ISP1 100.1.1.0/24 100.1.2.0/24 100.1.3.0/24 R3 AS100 AS65002 R2 ISP2 AS2 図 9 ISP1 で Well-known COMMUNITY を付加してルートを送信 12

ISP1 では 次のように設定して各ルートに Well-known COMMUNITY を付加します ISP1 Well-known COMMUNITY の付加 ISP1(config)#access-list 10 permit 100.1.1.0 ISP1(config)#access-list 20 permit 100.1.2.0 ISP1(config)#access-list 30 permit 100.1.3.0 ISP1(config)#route-map COMMUNITY permit 10 ISP1(config-route-map)#match ip address 10 ISP1(config-route-map)#set community no-advertise ISP1(config-route-map)#exit ISP1(config)#route-map COMMUNITY permit 20 ISP1(config-route-map)#match ip address 20 ISP1(config-route-map)#set community local-as ISP1(config-route-map)#exit ISP1(config)#route-map COMMUNITY permit 30 ISP1(config-route-map)#match ip address 30 ISP1(config-route-map)#set community no-export ISP1(config-route-map)#exit ISP1(config)#route-map COMMUNITY permit 1000 ISP1(config-route-map)#exit ISP1(config)#router bgp 1 ISP1(config-router)#neighbor 172.16.1.1 route-map COMMUNITY out ISP1(config-router)#end ISP1#clear ip bgp 172.16.1.1 out R1 で ISP1 によって付加された COMMUNITY を確認します R1 show ip bgp community R1#show ip bgp community R1# 13

ISP1 で付加されたはずの COMMUNITY を R1 では確認できません これは Cisco ルータではデフォルトでルートを送信するときに COMMUNITY を削除するからです COMMUNITY を削除せずにルートを送信するためには neighbor send-community の設定が必要です ISP1 で neighbor send-community の設定を追加します ISP1 neighbor send-community ISP1(config)#router bgp 1 ISP1(config-router)#neighbor 172.16.1.1 send-community ISP1 でルートを再送信して R1 で再度 COMMUNITY を確認すると 次のようになります R1 show ip bgp community R1#show ip bgp community BGP table version is 7, local router ID is 1.1.1.1 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP,? - incomplete Network Next Hop Metric LocPrf Weight Path *> 100.1.1.0/24 172.16.1.11 0 0 1 i *> 100.1.2.0/24 172.16.1.11 0 0 1 i *> 100.1.3.0/24 172.16.1.11 0 0 1 i R1#show ip bgp 100.1.1.0 BGP routing table entry for 100.1.1.0/24, version 7 Paths: (1 available, best #1, table Default-IP-Routing-Table, not advertised to any peer) Flag: 0x880 Not advertised to any peer 1 172.16.1.11 from 172.16.1.11 (111.1.1.11) Origin IGP, metric 0, localpref 100, valid, external, best Community: no-advertise 14

R1#show ip bgp 100.1.2.0 BGP routing table entry for 100.1.2.0/24, version 6 Paths: (1 available, best #1, table Default-IP-Routing-Table, not advertised outside local AS) Flag: 0x880 Advertised to non peer-group peers: 3.3.3.3 1 172.16.1.11 from 172.16.1.11 (111.1.1.11) Origin IGP, metric 0, localpref 100, valid, external, best Community: local-as R1#show ip bgp 100.1.3.0 BGP routing table entry for 100.1.3.0/24, version 5 Paths: (1 available, best #1, table Default-IP-Routing-Table, not advertised to EBGP peer) Flag: 0x880 Advertised to non peer-group peers: 3.3.3.3 1 172.16.1.11 from 172.16.1.11 (111.1.1.11) Origin IGP, metric 0, localpref 100, valid, external, best Community: no-export ISP1 で neighbor send-community の設定をすれば COMMUNITY が削除されないことがわかります COMMUNITY を利用した制御を行うためには 必ず neighbor send-community の設定が必要なので忘れないように気をつけてください ISP1 だけでなく COMMUNITY による制御を行うすべてのネイバーに対して設定してください 特に明記していませんが R1 R2 R3 で neighbor send-community はすでに設 定しています 15

次に Well-known COMMUNITY によるルートの制御について確認しましょう R1 から R3 へ送信しているルートをみると 次の通りです R1 から R3 へ送信しているルート R1#show ip bgp neighbors 3.3.3.3 advertised-routes BGP table version is 7, local router ID is 1.1.1.1 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP,? - incomplete Network Next Hop Metric LocPrf Weight Path *> 100.1.2.0/24 172.16.1.11 0 0 1 i *> 100.1.3.0/24 172.16.1.11 0 0 1 i R1 から R3 へは no_advertise が付加されている 100.1.1.0/24 を送信していないことがわか ります BGP ルート 100.1.1.0/24 no_advertise 100.1.2.0/24 local_as 100.1.3.0/24 no_export R3 R1 AS65001 図 10 R1 から R3 へのルート送信 16

続いて R3 から R2 へのルートの送信を確認します R3 から R2 へ送信しているルート R3#show ip bgp BGP table version is 7, local router ID is 100.100.1.3 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP,? - incomplete Network Next Hop Metric LocPrf Weight Path *>i100.1.2.0/24 1.1.1.1 0 100 0 1 i *>i100.1.3.0/24 1.1.1.1 0 100 0 1 i R3#show ip bgp neighbors 2.2.2.2 advertised-routes BGP table version is 7, local router ID is 100.100.1.3 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP,? - incomplete Network Next Hop Metric LocPrf Weight Path *>i100.1.3.0/24 1.1.1.1 0 100 0 1 i R3 からみると R2 は IEBGP ネイバーです そのため local_as が付加されている 100.1.2.0/24 のルートを送信していないことがわかります 17

BGP ルート 100.1.1.0/24 no_advertise 100.1.2.0/24 local_as 100.1.3.0/24 no_export R1 R3 AS65001 BGP ルート 100.1.2.0/24 local_as 100.1.3.0/24 no_export AS65002 R2 図 11 R3 から R2 へのルート送信 また R2 から ISP2 へのルート送信は次の通りです R2 から ISP2 へ送信しているルート R2#show ip bgp BGP table version is 7, local router ID is 2.2.2.2 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP,? - incomplete Network Next Hop Metric LocPrf Weight Path *> 100.1.3.0/24 1.1.1.1 0 100 0 (65001) 1 i R2#show ip bgp neighbors 172.16.2.22 advertised-routes Total number of prefixes 0 R2 からみると ISP2 は EBGP ネイバーです そのため no_export の COMMUNITY が付 加されている 100.1.3.0/24 のルートを送信しません 18

AS65002 R2 AS100 BGP ルート 100.1.3.0/24 no_export AS2 図 12 R2 から ISP2 へのルート送信 このように Well-known COMMUNITY を付加すると その COMMUNITY に応じて自動 的にフィルタがかかり ルートが伝わる範囲を限定することができます 19

プライベート COMMUNITY によるルート制御 Well-known COMMUNITY では自動的なルートのフィルタが可能ですが その影響範囲が限定的です COMMUNITY を付加する AS と実際にフィルタする AS の間に他の AS が含まれている場合 Well-known COMMUNITY ではフィルタできません また Well-known COMMUNITY ではフィルタ以外の動作もできません 離れた AS 間でルートフィルタや他のアトリビュートのセットなどの制御を行うためにプ ライベート COMMUNITY を利用します 次のネットワーク構成で実際に設定してみます AS300 R3 192.168.13.0/24 AS100 Lo 1.1.1.1 R1 172.16.1.0/24 ISP1 AS1 100.1.1.0/24 100.1.2.0/24 100.1.3.0/24 111.1.1.0/24 150.1.0.0/16 Lo 3.3.3.3 192.168.23.0/24 AS200 R2 Lo 2.2.2.2 インターネット EBGP 各ルータのホストアドレス R1:1 R2:2 R3:3 ISP1:11 図 13 COMMUNITY によるルート制御の構成図 R1-R3 R3-R2 の EBGP ネイバーはそれぞれループバックインタフェースの IP ア ドレスで確立しています この図の AS1 と AS300 で次のようにルートを制御します 111.1.1.0/24 と 150.1.0.0/16 は AS200 へ送信しない 100.1.1.0/24 には MED 10 を付加して AS200 へ送信する 100.1.2.0/24 には AS300 を追加でプリペンドして AS200 へ送信する 100.1.3.0/24 には追加の COMMUNITY 10:3 を付加して AS200 へ送信する ルートを制御するために ISP1 で COMMUNITY を付加します 付加する COMMUNITY は自由に決められます 今回は下記の表ように各ルートに COMMUNITY を付加します 20

表 2 ISP1 で付加する COMMUNITY ルート 111.1.1.0/24 1:1000 150.1.0.0/16 1:1000 100.1.1.0/24 1:1 100.1.2.0/24 1:2 100.1.3.0/24 1:3 付加する COMMUNITY COMMUNITY によってルートをグループ化するので 同じ制御を行いたいルートには同じ COMMUNITY を付加します 今回は 111.1.1.0/24 と 150.1.0.0/16 は同じ制御を行うため同じ値の COMMUNITY を付加します それ以外の 3 つのルートはそれぞれ異なる制御なので 個別に COMMUNITY を付加します ISP1 での COMMUNITY 付加の設定は次の通りです ISP1 COMMUNITY 付加 ISP1(config)#ip bgp-community new-format ISP1(config)#access-list 1 permit 111.11.1.0 ISP1(config)#access-list 1 permit 150.1.0.0 ISP1(config)#access-list 10 permit 100.1.1.0 ISP1(config)#access-list 20 permit 100.1.2.0 ISP1(config)#access-list 30 permit 100.1.3.0 ISP1(config)#route-map COMMUNITY2 permit 10 ISP1(config-route-map)#match ip address 1 ISP1(config-route-map)#set community 1:1000 ISP1(config-route-map)#exit ISP1(config)#route-map COMMUNITY2 permit 20 ISP1(config-route-map)#match ip address 10 ISP1(config-route-map)#set community 1:1 ISP1(config-route-map)#exit ISP1(config)#route-map COMMUNITY2 permit 30 ISP1(config-route-map)#match ip address 20 ISP1(config-route-map)#set community 1:2 ISP1(config-route-map)#exit ISP1(config)#route-map COMMUNITY2 permit 40 21

ISP1(config-route-map)#match ip address 30 ISP1(config-route-map)#set community 1:3 ISP1(config-route-map)#exit ISP1(config)#route-map COMMUNITY permit 1000 ISP1(config-route-map)#exit ISP1(config)#router bgp 1 ISP1(config-router)#neighbor 172.16.1.1 route-map COMMUNITY2 out ISP1(config-router)#end ISP1#clear ip bgp 172.16.1.1 out COMMUNITY を AS 番号 : 識別子 のフォーマットで扱うために ip bgp-community new-format を設定しています 他のルータも同様です 今回の設定では 各ルータのネイバーの設定に neighbor send-community をすでに入れて います 実際に COMMUNITY による制御を行う R3 において ISP1 で付加した COMMUNITY を確認します R3 COMMUNITY の確認 R3#sh ip bgp community 1:1000 ~ 省略 ~ Network Next Hop Metric LocPrf Weight Path *> 111.1.1.0/24 1.1.1.1 0 100 1 i *> 150.1.0.0 1.1.1.1 0 100 1 i R3#sh ip bgp community 1:1 ~ 省略 ~ Network Next Hop Metric LocPrf Weight Path *> 100.1.1.0/24 1.1.1.1 0 100 1 i R3#sh ip bgp community 1:2 ~ 省略 ~ Network Next Hop Metric LocPrf Weight Path 22

*> 100.1.2.0/24 1.1.1.1 0 100 1 i R3#sh ip bgp community 1:3 ~ 省略 ~ Network Next Hop Metric LocPrf Weight Path *> 100.1.3.0/24 1.1.1.1 0 100 1 i R3 で 付加されている COMMUNITY を参照してルート制御を行います そのための設定 は次のようになります R3 COMMUNITY によるルート制御の設定 R3(config)#ip community-list 1 permit 1:1000 R3(config)#ip community-list 2 permit 1:1 R3(config)#ip community-list 3 permit 1:2 R3(config)#ip community-list 4 permit 1:3 R3(config)#route-map COMMUNITY_ACTION deny 10 R3(config-route-map)#match community 1 R3(config-route-map)#exit R3(config)#route-map COMMUNITY_ACTION permit 20 R3(config-route-map)#match community 2 R3(config-route-map)#set metric 10 R3(config-route-map)#exit R3(config)#route-map COMMUNITY_ACTION permit 30 R3(config-route-map)#match community 3 R3(config-route-map)#set as-path prepend 300 R3(config-route-map)#exit R3(config)#route-map COMMUNITY_ACTION permit 40 R3(config-route-map)#match community 4 R3(config-route-map)#set community 10:3 additive R3(config-route-map)#exit R3(config)#route-map COMMUNITY_ACTION permit 1000 R3(config-route-map)#exit R3(config)#router bgp 300 R3(config-router)#neighbor 2.2.2.2 route-map COMMUNITY_ACTION out 23

R3(config-router)#end R3#clear ip bgp * out この設定について もう少し詳しく解説します まず 付加されている COMMUNITY を 参照するためのコミュニティリストを作成しています コミュニティリストの作成 R3(config)#ip community-list 1 permit 1:1000 R3(config)#ip community-list 2 permit 1:1 R3(config)#ip community-list 3 permit 1:2 R3(config)#ip community-list 4 permit 1:3 コミュニティリストをルートマップの match 条件で指定することで ルートに付加されて いる COMMUNITY の値を参照した制御が可能です ルートマップ COMMUNITY_ACTION で最初に決めた実際のルート制御を設定してい ます まず シーケンス 10 ではルートのフィルタです 1:1000( コミュニティリスト 1) が 付加されているルートは deny でフィルタします R3(config)#route-map COMMUNITY_ACTION deny 10 R3(config-route-map)#match community 1 シーケンス 20 では 1:1( コミュニティリスト 2) が付加されているルートに MED 10 を付加 して送信しています R3(config)#route-map COMMUNITY_ACTION permit 20 R3(config-route-map)#match community 2 R3(config-route-map)#set metric 10 24

シーケンス 30 は 1:2( コミュニティリスト 3) が付加されているルートに対して追加の AS_PATH プリペンドを行っています R3(config)#route-map COMMUNITY_ACTION permit 30 R3(config-route-map)#match community 3 R3(config-route-map)#set as-path prepend 300 シーケンス 40 は 1:3( コミュニティリスト 4) が付加されているルートに対して追加の COMMUNITY 10:3 を付加しています additive のオプションがないと COMMUNITY 値が書き換わってしまうので注意してください R3(config)#route-map COMMUNITY_ACTION permit 40 R3(config-route-map)#match community 4 R3(config-route-map)#set community 10:3 additive また シーケンス 1000 はそのほかのルートをすべて permit するためのものです R3(config)#route-map COMMUNITY_ACTION permit 1000 今回考えている構成では 扱っているルートが全部で 6 つしかなく これまでのシーケンスで処理されているのでシーケンス 1000 は不要です ですが 実際の環境では その他のたくさんのルートがあることがほとんどです それらを送信するためにシーケンス 1000 が必要です 25

COMMUNITY をみてルート制御ルートマップ COMMUNITY_ACTION AS300 R3 BGP ルート 111.1.1.0/24 1:1000 150.1.0.0/16 1:1000 100.1.1.0/24 1:1 MED 10 100.1.2.0/24 1:2 AS_PATH 300 300 100 1 100.1.3.0/24 1:3 10:3 AS100 R1 R2 BGP ルート 111.1.1.0/24 1:1000 150.1.0.0/16 1:1000 100.1.1.0/24 1:1 100.1.2.0/24 1:2 100.1.3.0/24 1:3 AS200 ISP1 AS1 100.1.1.0/24 100.1.2.0/24 100.1.3.0/24 COMMUNITY を付加ルートマップ COMMUNITY2 111.1.1.0/24 150.1.0.0/16 インターネット EBGP 図 14 COMMUNITY 付加と制御の様子 R2 で実際の BGP テーブルを確認しましょう R2 BGP テーブル R2#show ip bgp BGP table version is 18, local router ID is 2.2.2.2 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP,? - incomplete Network Next Hop Metric LocPrf Weight Path *> 100.1.1.0/24 3.3.3.3 10 0 300 100 1 i *> 100.1.2.0/24 3.3.3.3 0 300 300 100 1 i *> 100.1.3.0/24 3.3.3.3 0 300 100 1 i R2#show ip bgp 100.1.1.0 BGP routing table entry for 100.1.1.0/24, version 16 Paths: (1 available, best #1, table Default-IP-Routing-Table) Not advertised to any peer 300 100 1 3.3.3.3 (metric 2) from 3.3.3.3 (100.100.1.3) Origin IGP, metric 10, localpref 100, valid, external, best 26

Community: 1:1 R2#show ip bgp 100.1.2.0 BGP routing table entry for 100.1.2.0/24, version 18 Paths: (1 available, best #1, table Default-IP-Routing-Table) Flag: 0x820 Not advertised to any peer 300 300 100 1 3.3.3.3 (metric 2) from 3.3.3.3 (100.100.1.3) Origin IGP, localpref 100, valid, external, best Community: 1:2 R2#show ip bgp 100.1.3.0 BGP routing table entry for 100.1.3.0/24, version 17 Paths: (1 available, best #1, table Default-IP-Routing-Table) Not advertised to any peer 300 100 1 3.3.3.3 (metric 2) from 3.3.3.3 (100.100.1.3) Origin IGP, localpref 100, valid, external, best Community: 1:3 10:3 R2 の BGP テーブルをみると 意図したとおりにルート制御ができていることがわかりま す このように COMMUNITY を利用すれば 離れた AS 間で何らかの条件でルートをグ ループ化してさまざまな制御を行うことが可能になります 27