IP : IP ルーティング

ASA/PIX:ASA を経由する BGP の設定例

2009 年 7 月 17 日 - ライター翻訳版
その他のバージョン: PDFpdf | 機械翻訳版 (2013 年 8 月 21 日) | 英語版 (2010 年 4 月 14 日) | フィードバック

目次


概要

この設定例では、セキュリティ アプライアンス(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 の設定』および『基本的なファイアウォール設定』について理解している必要があります。



使用するコンポーネント

このドキュメントのシナリオ例は、次のソフトウェアのバージョンに基づくものです。

  • Cisco IOS(R) ソフトウェア リリース 12.2(27) が稼働する Cisco 2600 ルータ

  • Cisco PIX Firewall バージョン 6.3(3) 以降が稼働する PIX 515

このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されたものです。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。対象のネットワークが実稼働中である場合には、どのような作業についても、その潜在的な影響について確実に理解しておく必要があります。



関連製品

この設定は、次のバージョンのハードウェアとソフトウェアにも使用できます。

  • 7.x バージョン以降が稼働する Cisco Adaptive Security Appliance(ASA; 適応型セキュリティ アプライアンス)5500 シリーズ



表記法

ドキュメント表記の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。



設定

このセクションでは、このドキュメントで説明する機能を設定するために必要な情報を提供しています。

注:このドキュメントで使用されているコマンドの詳細を調べるには、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 のルーティング ポリシーを次のようにします。

  • AS 10 では、すべての発信トラフィック(192.168.10.0/24 からインターネット)について、Router12 から ISP-A へのリンクが優先的に選択されます。

  • ISP-A への接続に障害が発生した場合は、すべてのトラフィックが Router22 から ISP-B へのリンクを通るようにルーティングされます。

  • インターネットから 192.168.10.0/24 に到達するトラフィックでは、すべて ISP-A から Router12 へのリンクが使用されます。

  • ISP-A から Router12 へのリンクで障害が発生した場合は、すべての着信トラフィックが ISP-B から Router22 へのリンクを通るようにルーティングされます。

ネットワーク ダイアグラム



設定例

このシナリオでは、次の設定を使用しています。

Router11
hostname Router11
 !
 interface FastEthernet0/0
  ip address 192.168.10.1 255.255.255.0

!--- Router21 に接続されます。

 !
 interface FastEthernet0/1
  ip address 172.16.11.1 255.255.255.0

!--- PIX1 に接続されます。

 !
 router ospf 1
  log-adjacency-changes
  network 192.168.10.0 0.0.0.255 area 0
  default-information originate metric 5 route-map check-default

!--- デフォルト ルートがメトリック 5 で、
!--- (Router12 から ISP-A へのリンクがアクティブかどうかの)条件付きで
!--- OSPF にアドバタイズされます。

 router bgp 10
  no synchronization
  bgp log-neighbor-changes
  network 192.168.10.0
  neighbor 172.16.12.2 remote-as 10

!--- Router12 を iBGP ピアとして設定します。
.
  distance bgp 20 105 200

!--- iBGP を通じて学習されたルートの管理距離がデフォルトの 200 から 105 に変更されます。

  no auto-summary
 !
 ip route 172.16.12.0 255.255.255.0 172.16.11.10

!--- 直接接続されないため、iBGP ピアへのスタティック ルートです。

 !
 access-list 30 permit 0.0.0.0
 access-list 31 permit 172.16.12.2
 route-map check-default permit 10
  match ip address 30
  match ip next-hop 31

Router12
hostname Router12
!
interface FastEthernet0/0
 ip address 172.16.13.2 255.255.255.0

!--- Router14(ISP-A)に接続されます。

!
interface FastEthernet0/1
 ip address 172.16.12.2 255.255.255.0

!--- PIX1 に接続されます。

!
router bgp 10
no synchronization
 neighbor 172.16.11.1 remote-as 10
 neighbor 172.16.11.1 next-hop-self
 neighbor 172.16.11.1 default-originate route-map
check-ispa-route

!--- デフォルト ルートが、(Router12 から ISP-A へのリンクがアクティブかどうかの)
!--- 条件付きで Router11 にアドバタイズされます。

 neighbor 172.16.11.1 distribute-list 1 out
 neighbor 172.16.13.4 remote-as 20

!--- Router14(ISP-A)を eBGP ピアとして設定します。

 neighbor 172.16.13.4 route-map adv-to-ispa out
 no auto-summary
!
ip route 172.16.11.0 255.255.255.0 172.16.12.10

!--- 直接接続されないため、iBGP ピアへのスタティック ルートです。

!
access-list 1 permit 0.0.0.0
access-list 10 permit 192.168.10.0
access-list 20 permit 10.10.20.0 0.0.0.255
access-list 21 permit 172.16.13.4
!
route-map check-ispa-route permit 10
 match ip address 20
 match ip next-hop 21
!
route-map adv-to-ispa permit 10
 match ip address 10

Router14(ISP-A)
hostname Router14
!
interface Ethernet0/0
 ip address 172.16.13.4 255.255.255.0
!
interface Ethernet0/1
 ip address 10.10.20.1 255.255.255.0
!
router bgp 20
 network 10.10.20.0 mask 255.255.255.0
 neighbor 172.16.13.2 remote-as 10

!--- Router12 を eBGP ピアとして設定します。

!

Router21

hostname Router21
!
interface FastEthernet0/0
 ip address 192.168.10.2 255.255.255.0

!--- Router11 に接続されます。

!
interface FastEthernet0/1
 ip address 172.16.21.1 255.255.255.0

!--- PIX2 に接続されます。

!
router ospf 1
 network 192.168.10.0 0.0.0.255 area 0
 default-information originate metric 30 route-map
check-default

!--- デフォルト ルートがメトリック 30 で、
!--- (Router22 から ISP-B へのリンクがアクティブかどうかの)条件付きで
!--- OSPF にアドバタイズされます。

!
router bgp 10
 no synchronization
 network 192.168.10.0
 neighbor 172.16.22.2 remote-as 10

!--- Router22 を iBGP ピアとして設定します。

!
ip route 172.16.22.0 255.255.255.0 172.16.21.10

!--- 直接接続されないため、iBGP ピアへのスタティック ルートです。

!
access-list 30 permit 0.0.0.0
access-list 31 permit 172.16.22.2
route-map check-default permit 10
 match ip address 30
 match ip next-hop 31
!

Router22
hostname Router22
!
interface FastEthernet0/0
 ip address 172.16.23.2 255.255.255.0

!--- Router24(ISP-B)に接続されます。

!
interface FastEthernet0/1
 ip address 172.16.22.2 255.255.255.0

!--- PIX2 に接続されます。

!
router bgp 10
no synchronization
 bgp log-neighbor-changes
 neighbor 172.16.21.1 remote-as 10

!--- Router21 を iBGP ピアとして設定します。

 neighbor 172.16.21.1 next-hop-self
 neighbor 172.16.21.1 default-originate route-map
check-ispb-route

!--- デフォルト ルートが、(Router22 から ISP-B へのリンクがアクティブかどうかの)
!--- 条件付きで Router21 にアドバタイズされます。

!
neighbor 172.16.21.1 distribute-list 1 out
 neighbor 172.16.23.4 remote-as 30
 neighbor 172.16.23.4 route-map adv-to-ispb out
!
ip route 172.16.21.0 255.255.255.0 172.16.22.10

!--- 直接接続されないため、iBGP ピアへのスタティック ルートです。

!
access-list 1 permit 0.0.0.0
access-list 10 permit 192.168.10.0
access-list 20 permit 10.10.30.0 0.0.0.255
access-list 21 permit 172.16.23.4
!
route-map check-ispb-route permit 10
 match ip address 20
 match ip next-hop 21
!
route-map adv-to-ispb permit 10
 match ip address 10
set as-path prepend 10 10 10

!--- 発信アップデートの AS パス アトリビュートを変更するために使用されるルート マップです。


Router24(ISP-B)
hostname Router24
!
interface Loopback0
 ip address 10.10.30.1 255.255.255.0
!
interface FastEthernet0/0
 ip address 172.16.23.4 255.255.255.0
!
router bgp 30
 bgp log-neighbor-changes
 network 10.10.30.0 mask 255.255.255.0
 neighbor 172.16.23.2 remote-as 10

!--- Router22 を eBGP ピアとして設定します。

!

PIX1
nameif ethernet0 outside security0
nameif ethernet1 inside security100
ip address outside 172.16.12.10 255.255.255.0
ip address inside 172.16.11.10 255.255.255.0

!--- Inside と Outside のインターフェイスの IP アドレスを設定します。

access-list acl-1 permit tcp host 172.16.12.2 host 172.16.11.1 eq bgp

!--- アクセス リストにより、Outside から Inside への BGP トラフィックの通過が許可されます。

 access-list acl-1 permit icmp any any

!--- テストの目的でのみ、ping の通過を許可します。

access-group acl-1 in interface outside
nat (inside) 0 0.0.0.0 0.0.0.0 0 0

!--- Inside の Router11 により、PIX の Outside にある Router12 への BGP セッションが
!--- 開始されることを許可する NAT トランスレーションは存在しません。

static (inside,outside) 172.16.11.1 172.16.11.1 netmask 255.255.255.255

!--- Outside の Router12 により、PIX の Inside にある Router11 への BGP セッションが
!--- 開始されることを許可するスタティック NAT トランスレーション。

route outside 0.0.0.0 0.0.0.0 172.16.12.2 1
route inside 192.168.10.0 255.255.255.0 172.16.11.1 1

PIX2
nameif ethernet0 outside security0
nameif ethernet1 inside security100
ip address outside 172.16.22.10 255.255.255.0
ip address inside 172.16.21.10 255.255.255.0

!--- Inside と Outside のインターフェイスの IP アドレスを設定します。

access-list acl-1 permit tcp host 172.16.22.2 host 172.16.21.1 eq bgp

!--- アクセス リストにより、Outside から Inside への BGP トラフィックの通過が許可されます。

 access-list acl-1 permit icmp any any

!--- テストの目的でのみ、ping の通過を許可します。

access-group acl-1 in interface outside
route outside 0.0.0.0 0.0.0.0 172.16.22.2 1
route inside 192.168.10.0 255.255.255.0 172.16.21.1 1
nat (inside) 0 0.0.0.0 0.0.0.0 0 0

!--- Inside の Router21 により、PIX の Outside にある Router22 への BGP セッションが
!--- 開始されることを許可する NAT トランスレーションは存在しません。

static (inside,outside) 172.16.21.1 172.16.21.1 netmask 255.255.255.255

!--- Outside の Router22 により、PIX の Inside にある Router21 への BGP セッションが
!--- 開始されることを許可するスタティック NAT トランスレーション。




確認

ここでは、設定が正常に動作していることを確認します。

特定の 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 リンクが使用されます。

ネットワーク ダイアグラム



設定例

このシナリオでは、次の設定を使用しています。

Router11
hostname Router11
 !
 interface FastEthernet0/0
  ip address 192.168.10.1 255.255.255.0

!--- Router21 に接続されます。

 !
 interface FastEthernet0/1
  ip address 172.16.11.1 255.255.255.0

!--- PIX1 に接続されます。

 !
 router bgp 10
  no synchronization
  bgp log-neighbor-changes
  network 192.168.10.0
  neighbor 172.16.13.4 remote-as 20
  neighbor 172.16.13.4 ebgp-multihop 3

!--- 直接接続されていないネットワーク上に存在する外部ピアへの BGP 接続を
!--- 受け入れて試行します。

  neighbor 172.16.13.4 route-map set-pref in

!--- 学習されたルートに対して、より高いローカル プリファレンスを設定します。

  neighbor 172.16.13.4 route-map adv_to_ispa out
  neighbor 192.168.10.2 remote-as 10
  neighbor 192.168.10.2 next-hop-self
  no auto-summary
 !
 ip route 172.16.12.0 255.255.255.0 172.16.11.10
 ip route172.16.13.4 255.255.255.255 172.16.11.10

!--- 直接接続されないため、eBGP ピアへのスタティック ルートです。

 !
 access-list 20 permit 192.168.10.0
 !
 route-map set-pref permit 10
  set local-preference 200
 !
 route-map adv_to_ispa permit 10
  match ip address 20
 !

Router12
hostname Router12
!
interface FastEthernet0/0
 ip address 172.16.13.2 255.255.255.0

!--- ISP-A に接続されます。

!
interface FastEthernet0/1
 ip address 172.16.12.2 255.255.255.0

!--- PIX1 に接続されます。

!
ip route 172.16.11.0 255.255.255.0 172.16.12.10
ip route 192.168.10.0 255.255.255.0 172.16.12.10

Router14(ISP-A)
hostname Router14
!
interface Ethernet0/0
 ip address 172.16.13.4 255.255.255.0
!
interface Ethernet0/1
 ip address 10.10.20.1 255.255.255.0
!
router bgp 20
no synchronization
network 10.10.20.0 mask 255.255.255.0
 neighbor 172.16.11.1 remote-as 10
 neighbor 172.16.11.1 ebgp-multihop 3

!--- 直接接続されていないネットワーク上に存在する外部ピアへの BGP 接続を
!--- 受け入れて試行します。

 neighbor 172.16.11.1 default-originate

!--- デフォルト ルートを Router11 にアドバタイズします。

no auto-summary
!
ip route 172.16.11.1 255.255.255.255 172.16.13.2

!--- 直接接続されないため、eBGP ピアへのスタティック ルートです。


Router21
hostname Router21
 !
 interface FastEthernet0/0
  ip address 192.168.10.2 255.255.255.0

!--- Router11 に接続されます。

 !
 interface FastEthernet0/1
  ip address 172.16.21.1 255.255.255.0

!--- PIX2 に接続されます。

 !
 router bgp 10
  no synchronization
  network 192.168.10.0
  neighbor 172.16.23.4 remote-as 30
  neighbor 172.16.23.4 ebgp-multihop 3

!--- 直接接続されていないネットワーク上に存在する外部ピアへの BGP 接続を
!--- 受け入れて試行します。

  neighbor 172.16.23.4 route-map adv_to_ispb out
  neighbor 192.168.10.1 remote-as 10
  neighbor 192.168.10.1 next-hop-self
  no auto-summary
 !
 ip route 172.16.22.0 255.255.255.0 172.16.21.10
 ip route172.16.23.4 255.255.255.255 172.16.21.10

!--- BGP ピアに到達するように設定されたスタティック ルートです。

 !
 access-list 20 permit 192.168.10.0
 !
 route-map adv_to_ispb permit 10
  match ip address 20
  set as-path prepend 10 10 10

Router22
hostname Router22
!
interface FastEthernet0/0
 ip address 172.16.23.2 255.255.255.0

!--- Router24(ISP-B)に接続されます。

!
interface FastEthernet0/1
 ip address 172.16.22.2 255.255.255.0

!--- PIX2 に接続されます。

!
ip route 172.16.21.0 255.255.255.0 172.16.22.10
ip route 192.168.10.0 255.255.255.0 172.16.22.10

Router24(ISP-B)
hostname Router24
!
interface Loopback0
 ip address 10.10.30.1 255.255.255.0
!
interface FastEthernet0/0
 ip address 172.16.23.4 255.255.255.0

!--- Router22 に接続されます。

!
router bgp 30
no synchronization
bgp log-neighbor-changes
network 10.10.30.0 mask 255.255.255.0
 neighbor 172.16.21.1 remote-as 10
 neighbor 172.16.21.1 ebgp-multihop 3

!--- 直接接続されていないネットワーク上に存在する外部ピアへの BGP 接続を
!--- 受け入れて試行します。

neighbor 172.16.21.1 default-originate

!--- デフォルト ルートを Router21 にアドバタイズします。

no auto-summary
!
ip route 172.16.21.1 255.255.255.255 172.16.23.2

!--- 直接接続されないため、BGP ピア Router11 のスタティック ルートです。


PIX1
nameif ethernet0 outside security0
nameif ethernet1 inside security100
ip address outside 172.16.12.10 255.255.255.0
ip address inside 172.16.11.10 255.255.255.0
access-list acl-1 permit tcp host 172.16.13.4 host 172.16.11.1 eq bgp

!-- アクセス リストにより、Outside から Inside への BGP トラフィックの通過が許可されます。

 access-list acl-1 permit icmp any any

!-- テストの目的でのみ、ping の通過を許可します。

access-group acl-1 in interface outside
nat (inside) 0 0.0.0.0 0.0.0.0 0 0
static (inside,outside) 172.16.11.1 172.16.11.1 netmask 255.255.255.255
route outside 0.0.0.0 0.0.0.0 172.16.12.2 1
route inside 192.168.10.0 255.255.255.0 172.16.11.1 1

PIX2
nameif ethernet0 outside security0
nameif ethernet1 inside security100
ip address outside 172.16.22.10 255.255.255.0
ip address inside 172.16.21.10 255.255.255.0
access-list acl-1 permit tcp host 172.16.23.4 host 172.16.21.1 eq bgp

!-- アクセス リストにより、Outside から Inside への BGP トラフィックの通過が許可されます。

 access-list acl-1 permit icmp any any

!-- テストの目的でのみ、ping の通過を許可します。

access-group acl-1 in interface outside
route outside 0.0.0.0 0.0.0.0 172.16.22.2 1
route inside 192.168.10.0 255.255.255.0 172.16.21.1 1
nat (inside) 0 0.0.0.0 0.0.0.0 0 0
static (inside,outside) 172.16.21.1 172.16.21.1 netmask 255.255.255.255



確認

最初に、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 では、TCP シーケンス番号および ACK 番号が含まれるこのデータと、BGP ネイバーのパスワードを使用して、128 ビットのハッシュ値が作成されます。ハッシュ値は、パケット内の TCP ヘッダー オプション フィールドに入っています。デフォルトでは、PIX は TCP フローごとにランダム番号でシーケンス番号をオフセット処理します。送信側 BGP ピアでは、TCP はオリジナルのシーケンス番号を使用して 128 ビットの MD5 ハッシュ値を作成し、このハッシュ値をパケットに入れます。受信側 BGP ピアがこのパケットを受け取ると、TCP は PIX で変更されたシーケンス番号を使用して 128 ビットの MD5 ハッシュ値を作成し、これをパケットに含まれているハッシュ番号と比較します。

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 キーワードの使用法を説明しています。

Router11
hostname Router11
 !
 interface FastEthernet0/0
  ip address 192.168.10.1 255.255.255.0

!--- Router21 に接続されます。

 !
 interface FastEthernet0/1
  ip address 172.16.11.1 255.255.255.0

!--- PIX1 に接続されます。

 !
 router ospf 1
  log-adjacency-changes
  network 192.168.10.0 0.0.0.255 area 0
  default-information originate metric 5 route-map
 check-default

!--- デフォルト ルートがメトリック 5 の条件付きで発信されます。

 !
 router bgp 10
  no synchronization
  bgp log-neighbor-changes
  network 192.168.10.0
  neighbor 172.16.12.2 remote-as 10
  neighbor 172.16.12.2 password 7 08345C5A001A1511110D04


!--- BGP で MD5 認証を設定します。

  distance bgp 20 105 200

!--- iBGP を通じて学習されたルートの管理距離がデフォルトの 200 から 105 に変更されます。
!--- BGP に MD5 認証が設定されます。

no auto-summary
 !
 ip route 172.16.12.0 255.255.255.0 172.16.11.10

!--- 直接接続されないため、iBGP ピアへのスタティック ルートです。

!
 access-list 30 permit 0.0.0.0
 access-list 31 permit 172.16.12.2
 route-map check-default permit 10
  match ip address 30
  match ip next-hop 31

Router12
hostname Router12
!
interface FastEthernet0/0
 ip address 172.16.13.2 255.255.255.0

!--- ISP-A に接続されます。

!
interface FastEthernet0/1
 ip address 172.16.12.2 255.255.255.0

!--- PIX1 に接続されます。

!
router bgp 10
no synchronization
 neighbor 172.16.11.1 remote-as 10
 neighbor 172.16.11.1 next-hop-self
 neighbor 172.16.11.1 default-originate route-map
 neighbor 172.16.11.1 password 7 08345C5A001A1511110D04

!--- BGP で MD5 認証を設定します。

check-ispa-route

!--- check-ispa-route の成功を条件にデフォルトが Router11 に発信されます。
!--- BGP に MD5 認証が設定されます。

 neighbor 172.16.11.1 distribute-list 1 out
 neighbor 172.16.13.4 remote-as 20
 neighbor 172.16.13.4 route-map adv-to-ispa out
 no auto-summary
!
ip route 172.16.11.0 255.255.255.0 172.16.12.10

!--- 直接接続されないため、iBGP ピアへのスタティック ルートです。

!
access-list 1 permit 0.0.0.0
access-list 10 permit 192.168.10.0
access-list 20 permit 10.10.20.0 0.0.0.255
access-list 21 permit 172.16.13.4
!
route-map check-ispa-route permit 10
 match ip address 20
 match ip next-hop 21
!
route-map adv-to-ispa permit 10
 match ip address 10

PIX1
nameif ethernet0 outside security0
nameif ethernet1 inside security100
ip address outside 172.16.12.10 255.255.255.0
ip address inside 172.16.11.10 255.255.255.0
access-list acl-1 permit tcp host 172.16.13.4 host 172.16.11.1 eq bgp

!--- アクセス リストにより、Outside から Inside への BGP トラフィックの通過が許可されます。

 access-list acl-1 permit icmp any any

!--- テストの目的でのみ、ping の通過を許可します。

access-group acl-1 in interface outside
nat (inside) 0 0.0.0.0 0.0.0.0 0 0
static (inside,outside) 172.16.11.1 172.16.11.1 netmask 255.255.255.255 norandomseq


!--- PIX による TCP シーケンス番号のオフセット処理が停止されます。

route outside 0.0.0.0 0.0.0.0 172.16.12.2 1
route inside 192.168.10.0 255.255.255.0 172.16.11.1 1



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 検査をアクティブにします。

PIX/ASA 7.x/8.x
access-list BGP-MD5-ACL remark *** Allow BGP MD5 Authentication ****
access-list BGP-MD5-ACL permit tcp host 172.16.13.4 host 172.16.11.1 eq bgp

!--- アクセス リストにより、Outside から Inside への BGP トラフィックの通過が許可されます。

access-group BGP-MD5-ACL in interface outside

tcp-map BGP-MD5
  tcp-options range 19 19 allow
!
class-map BGP-MD5-CLASSMAP
 match access-list BGP-MD5-ACL
!
policy-map global_policy
 class BGP-MD5-CLASSMAP
  set connection advanced-options BGP-MD5
  set connection random-sequence-number disable
service-policy global_policy global

注: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



関連するシスコ サポート コミュニティ ディスカッション

シスコ サポート コミュニティは、どなたでも投稿や回答ができる情報交換スペースです。


関連情報




Document ID: 6500