Hierarchical Navigation |
目次概要この設定例では、セキュリティ アプライアンス(PIX/ASA)を経由して Border Gateway Protocol(BGP; ボーダー ゲートウェイ プロトコル)を実行する方法と、マルチホームの BGP および PIX 環境で冗長性を実現する方法を示しています。このドキュメントでは、ネットワーク ダイアグラムを例として使用し、AS 10 から ISP-A への(またはその逆の)接続が失われた際に、AS 10 内のすべてのルータ間で実行されているダイナミック ルーティング プロトコルを使用して、トラフィックを Internet service provider B(ISP-B; インターネット サービス プロバイダー B)に自動的にルーティングする方法を説明しています。 BGP では、ポート 179 のユニキャスト TCP パケットを使用してピアとの通信が行われます。このため、TCP ポート 179 のユニキャスト トラフィックを許可するように、PIX 1 および PIX 2 を設定できます。このようにして、ファイアウォールを経由して接続されたルータ間に BGP ピアリングを確立することができます。BGP アトリビュートを操作することで、冗長性および対象のルーティング ポリシーを実現できます。 前提条件要件このドキュメントの読者は、『BGP の設定』および『基本的なファイアウォール設定』について理解している必要があります。 使用するコンポーネントこのドキュメントのシナリオ例は、次のソフトウェアのバージョンに基づくものです。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されたものです。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。対象のネットワークが実稼働中である場合には、どのような作業についても、その潜在的な影響について確実に理解しておく必要があります。 関連製品この設定は、次のバージョンのハードウェアとソフトウェアにも使用できます。
表記法ドキュメント表記の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。 設定このセクションでは、このドキュメントで説明する機能を設定するために必要な情報を提供しています。 注:このドキュメントで使用されているコマンドの詳細を調べるには、Command Lookup Tool(登録ユーザ専用)を使用してください。 ネットワーク ダイアグラムこのドキュメントでは、次のネットワーク構成を使用しています。
このネットワーク構成では、(AS 10 に属する)Router12 と Router22 は、冗長性を実現するために、それぞれ Router14(ISP-A)と Router24(ISP-B)にマルチホームされています。内部ネットワーク 192.168.10.0/24 はファイアウォールの Inside に存在します。Router11 と Router21 は、ファイアウォールを経由して Router12 と Router22 に接続されます。PIX1 と PIX2 は、Network Address Translation(NAT; ネットワーク アドレス変換)を実行する設定にはなっていません。 シナリオ 1このシナリオでは、AS 10 内の Router12 により AS 20 内の Router14(ISP-A)との external BGP(eBGP; 外部 BGP)ピアリングが行われます。Router12 でも、PIX1 を介して、Router11 との internal BGP(iBGP; 内部 BGP)ピアリングが行われます。eBGP を通じて ISP-A から学習されたルートが存在する場合、Router12 により Router11 に対する iBGP でのデフォルト ルート 0.0.0.0/0 がアナウンスされます。ISP-A へのリンクで障害が発生した場合、Router12 ではデフォルト ルートのアナウンスが停止されます。 同様に、AS 10 内の Router22 では AS 30 内の Router24(ISP-B)との eBGP ピアリングが行われ、ルーティング テーブルに ISP-B ルートが存在することを条件に、Router21 に対する iBGP でのデフォルト ルートがアナウンスされます。 PIX1 および PIX2 は、アクセス リストを使用することで、iBGP ピア間の BGP トラフィック(TCP、ポート 179)を許可するように設定されます。PIX インターフェイスには関連付けられたセキュリティ レベルが設定されることがこの理由です。デフォルトでは、Inside インターフェイス(ethernet1)にはセキュリティ レベル 100 が設定され、Outside インターフェイス(ethernet0)にはセキュリティ レベル 0 が設定されます。通常、セキュリティ レベルの高いインターフェイスからセキュリティ レベルの低いインターフェイスへの接続とトラフィックが許可されます。セキュリティ レベルの低いインターフェイスからセキュリティ レベルの高いインターフェイスへのトラフィックを許可するには、PIX 上でアクセス リストを明示的に定義する必要があります。また、Outside のルータが PIX の Inside のルータとの BGP セッションを開始できるように、PIX1 および PIX2 でスタティック NAT 変換を設定する必要もあります。 Router11 と Router21 のどちらによっても、iBGP を通じて学習されたデフォルト ルートに基づき、Open Shortest Path First(OSPF)ドメインにデフォルト ルートが条件付きでアナウンスされます。Router11 では OSPF ドメインにデフォルト ルートがメトリック 5 でアナウンスされ、Router21 ではデフォルト ルートがメトリック 30 でアナウンスされます。したがって、Router11 からのデフォルト ルートが優先されます。このコンフィギュレーションは、Router11 および Router21 にデフォルト ルート 0.0.0.0/0 のみを伝搬する場合に役立ちます。これにより、Inside のルータでのメモリ消費が抑えられ、最適なパフォーマンスを実現できます。 従って、これらの条件をまとめるために、AS 10 のルーティング ポリシーを次のようにします。
設定例このシナリオでは、次の設定を使用しています。
確認ここでは、設定が正常に動作していることを確認します。 特定の show コマンドは、アウトプットインタープリタ(登録ユーザ専用)(OIT)でサポートされています。OIT を使用すると、show コマンドの出力を分析できます。 両方の BGP セッションがアップしている場合は、すべてのパケットが ISP-A 経由でルーティングされることを予測できます。Router11 の BGP テーブルを確認します。これによって、Router12 からネクストホップ 172.16.12.2 を経由するデフォルト ルート 0.0.0.0/0 が学習されます。 Router11# show ip bgp BGP table version is 14, local router ID is 192.168.10.1 Status codes: s suppressed, d damped, h history, * valid, > best, i - Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *>i0.0.0.0 172.16.12.2 100 0 i *> 192.168.10.0 0.0.0.0 0 32768 i BGP を通じて学習された 0.0.0.0/0 デフォルト ルートは、Router11 の show ip route 出力に示されるように、ルーティング テーブルに格納されます。
Router11# show ip route
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 172.16.12.2 to network 0.0.0.0
C 192.168.10.0/24 is directly connected, FastEthernet0/0
172.16.0.0/24 is subnetted, 2 subnets
S 172.16.12.0 [1/0] via 172.16.11.10
C 172.16.11.0 is directly connected, FastEthernet0/1
B* 0.0.0.0/0 [105/0] via 172.16.12.2, 00:27:24
Router21 の BGP テーブルを確認します。ここでも Router22 経由でデフォルト ルートが学習されます。 Router21# show ip bgp BGP table version is 8, local router ID is 192.168.10.2 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 *>i0.0.0.0 172.16.22.2 100 0 i *> 192.168.10.0 0.0.0.0 0 32768 次に、BGP を通じて学習されたこのデフォルト ルートが、Router21 のルーティング テーブルに格納されているかどうかを調べます。
Router21# show ip route
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 192.168.10.1 to network 0.0.0.0
C 192.168.10.0/24 is directly connected, FastEthernet0/0
172.16.0.0/24 is subnetted, 2 subnets
C 172.16.21.0 is directly connected, FastEthernet0/1
S 172.16.22.0 [1/0] via 172.16.21.10
O*E2 0.0.0.0/0 [110/5] via 192.168.10.1, 00:27:06, FastEthernet0/0
Router21 のデフォルト ルートは OSPF を通じて学習されています(0.0.0.0/0 ルートの O プレフィクスに注目してください)。興味深いことに、BGP を通じて Router22 から学習されたデフォルト ルートが存在するにもかかわらず、show ip route の出力には OSPF を通じて学習されたデフォルト ルートが示されます。 Router21 に OSPF のデフォルト ルートが格納されているのは、Router21 では Router22(iBGP を通じて)と Router11(OSPF を通じて)の 2 つのソースからデフォルト ルートが学習されるためです。ルート選択プロセスの結果、ルーティング テーブルには管理距離がより適切なルートが格納されます。OSPF の管理距離は 110 であるのに対して、iBGP の管理距離は 200 です。110 は 200 よりも小さいため、ルーティング テーブルには OSPF を通じて学習されたデフォルト ルートが格納されます。ルート選択についての詳細は、『Cisco ルータにおけるルートの選択』を参照してください。 トラブルシューティングこのセクションでは、設定のトラブルシューティングについて説明しています。 Router12 と ISP-A の間の BGP セッションをダウンの状態にします。
Router22(config)# interface fas 0/0
b8-12-2621(config-if)# shut
1w0d: %LINK-5-CHANGED: Interface FastEthernet0/0,
changed state to administratively down
1w0d: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0,
changed state to down
Router11 には、BGP を通じて Router12 から学習されたデフォルト ルートがありません。 Router11# show ip bgp BGP table version is 16, local router ID is 192.168.10.1 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 *> 192.168.10.0 0.0.0.0 0 Router11 のルーティング テーブルを確認します。デフォルト ルートが、ネクストホップ Router21 で OSPF(管理距離 110)を通じて学習されています。
Router11# show ip route
!--- 出力を省略。
Gateway of last resort is 192.168.10.2 to network 0.0.0.0
C 192.168.10.0/24 is directly connected, FastEthernet0/0
172.16.0.0/24 is subnetted, 2 subnets
S 172.16.12.0 [1/0] via 172.16.11.10
C 172.16.11.0 is directly connected, FastEthernet0/1
O*E2 0.0.0.0/0 [110/30] via 192.168.10.2, 00:00:09, FastEthernet0/0
この出力は、事前に定義したポリシーに従っているはずです。ただし、この段階で Router11 の distance bgp 20 105 200 設定コマンドについて理解し、このコマンドが Router11 でのルート選択にどのように影響するのかを理解することが重要です。 このコマンドのデフォルト値は distance bgp 20 200 200 で、この場合 eBGP を通じて学習されたルートの管理距離が 20、iBGP を通じて学習されたルートの管理距離が 200、ローカル BGP ルートの管理距離が 200 になります。 Router12 と ISP-A の間のリンクが再びアップすると、Router11 では iBGP を通じて Router12 からデフォルト ルートが学習されます。ただし、この iBGP を通じて学習されたルートのデフォルトの管理距離は 200 なので、OSPF を通じて学習されたルートがこれに置き換えられることはありません(110 は 200 より小さいため)。このため、Router12 から ISP-A へのリンクが再びアップしても、Router21 から Router22 へのリンクへのすべての発信トラフィックは、ISP-B へのルーティングが強制されます。この問題を解決するには、iBGP を通じて学習されたルートの管理距離を、使用される Interior Gateway Protocol(IGP)よりも小さい値に変更します。この例では、IGP は OSPF なので、距離 105 が選択されています(105 は 110 より小さいため)。 distance bgp コマンドについての詳細は、『BGP コマンド』を参照してください。BGP によるマルチホーミングについての詳細は、『シングルホームおよびマルチホーム環境における、BGP を使用したロード シェアリング:設定例』を参照してください。 シナリオ 2このシナリオでは、Router11 によって Router14(ISP-A)との eBGP ピアリングが直接行われ、Router21 によって Router24(ISP-B)との eBGP ピアリングが直接行われています。Router12 と Router22 は BGP ピアリングには関与しませんが、ISP への IP 接続は提供されます。eBGP ピアどうしは直接接続されたネイバーではないので、参加しているルータ上では neighbor ebgp-multihop コマンドが使用されます。neighbor ebgp-multihop コマンドを使用すると、eBGP パケットの Time to Live(TTL; 存続可能時間)がデフォルト値 1 から変更されるため、BGP によるデフォルトの 1 ホップ eBGP 制限の上書きが可能になります。このシナリオでは、eBGP ネイバーの隔たりが 3 ホップであるため、TTL 値が 3 に変更されるように、参加しているルータ上で neighbor ebgp-multihop 3 が設定されます。また、Router11 によって Router14(ISP-A)のアドレス 172.16.13.4 に、また Router21 によって Router24(ISP-B)のアドレス 172.16.23.4 に確実に ping できるように、ルータおよび PIX でスタティック ルートが設定されます。 デフォルトでは、PIX により(ping コマンドが実行された際に送信される)Internet Control Message Protocol(ICMP; インターネット制御メッセージ プロトコル)パケットの通過が許可されません。ICMP パケットを許可するには、次の PIX 設定で示すように access-list コマンドを使用します。access-list コマンドについての詳細は、PIX Firewall の『A から B のコマンド』を参照してください。 ルーティング ポリシーは「シナリオ 1」と同様で、Router12 と ISP-A の間のリンクが Router22 と ISP-B の間のリンクよりも優先されます。ISP-A リンクがダウン状態になると、すべての着信と発信のトラフィックに ISP-B リンクが使用されます。
設定例このシナリオでは、次の設定を使用しています。
確認最初に、ISP-A と ISP-B へのリンクがアップしている状況から確認します。Router11 と Router21 の show ip bgp summary コマンド出力から、ISP-A と ISP-B との BGP セッションがそれぞれ確立していることが確認されます。 Router11# show ip bgp summary BGP router identifier 192.168.10.1, local AS number 10 BGP table version is 13, main routing table version 13 4 network entries and 5 paths using 568 bytes of memory 7 BGP path attribute entries using 420 bytes of memory 2 BGP AS-PATH entries using 48 bytes of memory 0 BGP route-map cache entries using 0 bytes of memory 0 BGP filter-list cache entries using 0 bytes of memory BGP activity 43/264 prefixes, 75/70 paths, scan interval 15 secs Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 172.16.13.4 4 20 1627 1623 13 0 0 02:13:36 2 192.168.10.2 4 10 1596 1601 13 0 0 02:08:47 2 Router21# show ip bgp summary !--- 出力を省略。 Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 172.16.23.4 4 30 1610 1606 8 0 0 02:06:22 2 192.168.10.1 4 10 1603 1598 8 0 0 02:10:16 3 Router11 の BGP テーブルに、ネクストホップ ISP-A 172.16.13.4 に向かうデフォルト ルート(0.0.0.0/0)が表示されます。 Router11# show ip bgp BGP table version is 13, local router ID is 192.168.10.1 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 *> 0.0.0.0 172.16.13.4 200 0 20 i *> 10.10.20.0/24 172.16.13.4 0 200 0 20 i *>i10.10.30.0/24 192.168.10.2 0 100 0 30 i * i192.168.10.0 192.168.10.2 0 100 0 i *> 0.0.0.0 0 32768 i 次に Router21 の BGP テーブルを確認します。Router21 には 2 つの 0.0.0.0/0 ルートがあります。1 つは eBGP を通じて ISP-B から学習されたネクストホップ 172.16.23.4 のルート、もう 1 つは iBGP を通じて学習されたローカル プリファレンス 200 のルートです。Router21 ではローカル プリファレンス アトリビュートが高い、iBGP を通じて学習されたルートが優先的に選択されるため、このルートがルーティング テーブルに格納されます。BGP のパス選択についての詳細は、『BGP で最適パスを選択するアルゴリズム』を参照してください。 Router21# show ip bgp BGP table version is 8, local router ID is 192.168.10.2 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 * 0.0.0.0 172.16.23.4 0 30 i *>i 192.168.10.1 200 0 20 i *>i10.10.20.0/24 192.168.10.1 0 200 0 20 i *> 10.10.30.0/24 172.16.23.4 0 0 30 i *> 192.168.10.0 0.0.0.0 0 32768 i * i 192.168.10.1 0 100 0 i トラブルシューティングRouter11 と ISP-A の BGP セッションをダウンの状態にします。
Router11(config)# interface fas 0/1
Router11(config-if)# shut
4w2d: %LINK-5-CHANGED: Interface FastEthernet0/1,
changed state to administratively down
4w2d: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/1,
changed state to down
4w2d: %BGP-5-ADJCHANGE: neighbor 172.16.13.4 Down BGP Notification sent
4w2d: %BGP-3-NOTIFICATION: sent to neighbor 172.16.13.4 4/0 (hold time expired)0 bytes
ホールドダウン タイマー(180 秒)が時間切れになると、ISP-A への eBGP セッションがダウンの状態になります。 Router11# show ip bgp summary !--- 出力を省略。 Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 172.16.13.4 4 20 1633 1632 0 0 0 00:00:58 Active 192.168.10.2 4 10 1609 1615 21 0 0 02:18:09 ISP-A へのリンクがダウンの状態になると、Router11 では iBGP を通じて学習された 0.0.0.0/0 が、ネクストホップ 192.168.10.2(Router21)でルーティング テーブルに格納されます。これにより、次の出力に示されるように、すべての発信トラフィックが Router 21 を介して ISP-B へとルーティングされます。 Router11# show ip bgp BGP table version is 21, local router ID is 192.168.10.1 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 *>i0.0.0.0 192.168.10.2 100 0 30 i *>i10.10.30.0/24 192.168.10.2 0 100 0 30 i * i192.168.10.0 192.168.10.2 0 100 0 i *> 0.0.0.0 0 32768 i Router21# show ip bgp BGP table version is 14, local router ID is 192.168.10.2 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 *> 0.0.0.0 172.16.23.4 0 30 i *> 10.10.30.0/24 172.16.23.4 0 0 30 i *> 192.168.10.0 0.0.0.0 0 32768 i * i 192.168.10.1 0 100 0 i PIX を介した BGP ネイバーの MD5 認証PIX 6.x の設定他のルーティング プロトコルと同様に、認証のために BGP を設定できます。2 つの BGP ピア間に MD5 認証を設定できますが、これはピア間の TCP 接続上で送信された各セグメントが検証されることを意味します。どちらの BGP ピアでも同じパスワードを使用して MD5 認証を設定する必要があります。そうしない場合は、これらの間の接続が確立されません。MD5 認証の設定により、TCP 接続上で送信された各セグメントの MD5 ダイジェストに対する、Cisco IOS ソフトウェアによる生成とチェックが行われます。認証が呼び出され、セグメントで認証に失敗すると、エラー メッセージがコンソールに表示されます。 PIX のファイアウォールを通過する MD5 認証で BGP ピアを設定している場合、BGP ネイバー間の TCP フローのシーケンス番号がランダムではないようにするために、BGP ネイバー間で PIX を設定することが重要です。これは、PIX のファイアウォール上の TCP ランダム シーケンス番号機能がデフォルトでイネーブルになっており、着信パケットの TCP シーケンス番号が転送前に変更されることがその理由です。 MD5 認証が適用されるのは、TCP 疑似 IP ヘッダー、TCP ヘッダー、およびデータです(RFC 2385 TCP シーケンス値は PIX によって変更されているため、ハッシュ値は異なります。BGP ネイバー上の TCP ではパケットを廃棄し、次のような MD5 失敗メッセージをログします。 %TCP-6-BADAUTH: Invalid MD5 digest from 172.16.11.1:1778 to 172.16.12.2:179 static (inside,outside) 172.16.11.1 172.16.11.1 netmask 255.255.255.0 norandomseq コマンドとともに norandomseq キーワードを使用してこの問題を解決し、PIX により TCP シーケンス番号がオフセット処理されないようにします。次の例では、norandomseq キーワードの使用法を説明しています。
PIX/ASA 7.x 以降デフォルトでは、すべての TCP オプションが、7.0 以降が稼働する PIX/ASA の通過を許可されます。必要なのは、BGP ピア間で MD5 認証がイネーブルになっている場合にランダム化をディセーブルにすることだけです。 これらの TCP オプションでトラフィックを許可するには、tcp-map コマンドを発行して、tcp-map コンフィギュレーション モードに入ります。selective-acknowledgement、window-scale、および timestamp の各 TCP オプションをクリアするには、tcp-map コンフィギュレーション モードで tcp-options コマンドを発行します。また、適切に定義されていないオプションが含まれたパケットをクリアしたり廃棄したりすることもできます。 tcp-map コマンドは、モジュラ ポリシー フレームワーク インフラストラクチャとともに使用されます。class-map コマンドが使用されるトラフィックのクラスを定義し、tcp-map コマンドを使用して TCP 検査をカスタマイズします。policy-map コマンドを使用して新しい TCP マップを適用します。service-policy コマンドを使用して TCP 検査をアクティブにします。
注:BGP が稼働するデバイスのアドレスは NAT 処理できません。これは、MD5 ハッシュの算出には IP ヘッダーや TCP ヘッダーも取り込まれるためで、つまり、その情報のどの部分も変更できないことを意味します。 確認show ip bgp コマンドからの出力には、認証が成功して、Router11 では BGP セッションが確立されていることが示されています。 Router11# show ip bgp BGP table version is 14, local router ID is 192.168.10.1 Status codes: s suppressed, d damped, h history, * valid, > best, i - Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *>i0.0.0.0 172.16.12.2 100 0 i *> 192.168.10.0 0.0.0.0 0 32768 i Cisco サポート コミュニティ - 特集対話関連情報
|