IP : IP ルーティング

BGP 近隣ルータがアイドル、接続、アクティブ状態間を切り替わる理由

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

目次

概要
前提条件
      要件
      使用するコンポーネント
      ネットワーク ダイアグラム
      表記法
隣接ルータ文が正しくない
      解決方法
隣接ルータのアドレスへのルートが存在しないか、ピアに到達するためにデフォルト ルートが使用されている
      解決方法
BGP で update-source コマンドが消失している
      解決方法
関連するシスコ サポート コミュニティ ディスカッション
関連情報

概要

Border Gateway Protocol(BGP; ボーダー ゲートウェイ プロトコル)セッションを確立する場合、BGP は状態が数回変化した後、確立状態に到達します。 いくつかの理由により、BGP 隣接ルータが正しく確立されない場合があります。 この文書では、この問題の原因として考えられることをいくつか説明します。

前提条件

要件

この文書に関する特別な要件はありません。

使用するコンポーネント

この文書は、特定のソフトウェアやハードウェアのバージョンに限定されるものではありません。

この文書で紹介する情報は、特定のラボ環境にあるデバイスを使用して作成されました。 この文書内で使用されているデバイスはすべて、クリアな状態(デフォルト)から設定作業を始めています。 実稼動中のネットワークで作業する場合は、コマンドの実行によって生じる影響について、事前に理解しておいてください。

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

このネットワーク ダイアグラムは、最初の 3 つの原因の例を示しています。

24a.gif

表記法

文書表記の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。

隣接ルータ文が正しくない

ルータ R1-AGS の show ip bgp summary コマンドは、セッションがアクティブであることを示しています。

R1-AGS(9)# show ip bgp summary
 BGP table version is 1, main routing table version 1
 Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
 10.10.10.2      4   400       0       0        0    0    0 never    Active
 

設定は次のとおりです。

R1-AGS

R6-2500

interface Loopback0
  ip address 2.2.2.2 255.255.255.255
 !
 interface Serial1
  ip address 10.10.10.1 255.255.255.0
 !
 router bgp 400
  neighbor 10.10.10.2 remote-as 400
  neighbor 10.10.10.2 update-source Loopback0
  !
 ip route 1.1.1.1 255.255.255.255 10.10.10.2
interface Loopback0
  ip address 1.1.1.1 255.255.255.255
 !
 interface Serial0
  ip address 10.10.10.2 255.255.255.0
 !
 router bgp 400
  neighbor 10.10.10.1 remote-as 400
  neighbor 10.10.10.1 update-source Loopback0
  !
 ip route 2.2.2.2 255.255.255.255 10.10.10.1

debug ip bgp および debug ip tcp transactions コマンドによって、TCP 接続に失敗したと表示されます。

ルータ R1-AGS 上のデバッグ:

 BGP: 10.10.10.2 open active, local address 2.2.2.2
 TCB00135978 created
 TCB00135978 setting property 0 16ABEA
 TCB00135978 bound to 2.2.2.2.11039
 TCP: sending SYN, seq 3797113156, ack 0
 TCP0: Connection to 10.10.10.2:179, advertising MSS 1460
 TCP0: state was CLOSED -> SYNSENT [11039 -> 10.10.10.2(179)]
 TCP0: state was SYNSENT -> CLOSED [11039 -> 10.10.10.2(179)]
 TCP0: bad seg from 10.10.10.2 -- closing connection: seq 0 ack 3797113157 rcvnxt 0 rcvwnd 0
 TCP0: connection closed - remote sent RST
 TCB00135978 destroyed
 BGP: 10.10.10.2 open failed: Connection refused by remote host
 TCP: sending RST, seq 0, ack 1965664223
 TCP: sent RST to 1.1.1.1:11016 from 10.10.10.1:179

ルータ R6-2500 上のデバッグ:

TCP: sending RST, seq 0, ack 3797113157
 TCP: sent RST to 2.2.2.2:11039 from 10.10.10.2:179
 BGP: 10.10.10.1 open active, local address 1.1.1.1
 TCB001E030C created
 TCB001E030C setting property TCP_WINDOW_SIZE (0) 194F7A
 TCB001E030C setting property TCP_TOS (11) 194F79
 TCB001E030C bound to 1.1.1.1.11016
 TCP: sending SYN, seq 1965664222, ack 0
 TCP0: Connection to 10.10.10.1:179, advertising MSS 1460
 TCP0: state was CLOSED -> SYNSENT [11016 -> 10.10.10.1(179)]
 TCP0: state was SYNSENT -> CLOSED [11016 -> 10.10.10.1(179)]
 TCP0: bad seg from 10.10.10.1 -- closing connection: seq 0 ack 1965664223 rcvnxt 0 rcvwnd 0
 TCP0: connection closed - remote sent RST
 TCB 0x1E030C destroyed
 BGP: 10.10.10.1 open failed: Connection refused by remote host
 

解決方法

この状況に対処するには、近隣ルータ文のループバック アドレスを修正するか、update-source コマンドを設定から削除します。

この例では、アドレスが修正されています。

R1-AGS

R6-2500

router bgp 400
  neighbor 1.1.1.1 remote-as 400
  neighbor 1.1.1.1 update-source Loopback0
  !
 ip route 1.1.1.1 255.255.255.255 10.10.10.2
 
router bgp 400
  neighbor 2.2.2.2 remote-as 400
  neighbor 2.2.2.2 update-source Loopback0
  !
 ip route 2.2.2.2 255.255.255.255 10.10.10.1
 

show ip bgp summary コマンドによって、ルータ R1-AGS が確立状態であると表示されます。

R1-AGS(9)# show ip bgp summary
 BGP table version is 1, main routing table version 1
 Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
 1.1.1.1         4   400       3       3        1    0    0 00:00:26        0

隣接ルータのアドレスへのルートが存在しないか、ピアに到達するためにデフォルト ルートが使用されている

ルータ R1-AGS で実行した show ip bgp summary コマンドによって、セッションが現在アクティブであると表示されます。

R1-AGS(9)# show ip bgp summary
 BGP table version is 1, main routing table version 1
 Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
 1.1.1.1         4   400       0       0        0    0    0 never    Active

設定は次のとおりです。

R1-AGS

R6-2500

interface Loopback0
  ip address 2.2.2.2 255.255.255.255
 !
 interface Serial1
  ip address 10.10.10.1 255.255.255.0
 !
 router bgp 300
  neighbor 1.1.1.1 remote-as 400
  neighbor 1.1.1.1 ebgp-multihop 2
  neighbor 1.1.1.1 update-source Loopback0
interface Loopback0
  ip address 1.1.1.1 255.255.255.255
 !
 interface Serial0
  ip address 10.10.10.2 255.255.255.0
 !
 router bgp 400
  neighbor 2.2.2.2 remote-as 300
  neighbor 2.2.2.2 ebgp-multihop 2
  neighbor 2.2.2.2 update-source Loopback0

debug コマンドを実行すると、隣接ルータへのルートが存在しないことが示されます。

ルータ R1-AGS 上のデバッグ:

BGP: 1.1.1.1 open active, delay 9568ms
 BGP: 1.1.1.1 multihop open delayed 19872ms (no route)
 BGP: 1.1.1.1 multihop open delayed 12784ms (no route)

ルータ R6-2500 上のデバッグ:

BGP: 2.2.2.2 open active, delay 6531ms
 BGP: 2.2.2.2 multihop open delayed 14112ms (no route)
 BGP: 2.2.2.2 multihop open delayed 15408ms (no route)

解決方法

この状況に対処するには、BGP 近隣ルータ文にネクストホップのルートを含めます。 状況に応じて、スタティック ルートまたはダイナミック ルートのどちらかを使用できます。 制御がより可能な内部 BGP(iBGP)環境では、ルーティング プロトコルを使用してルートをダイナミックに伝搬できます。 外部 BGP(eBGP)状況では、ネクストホップに到達するためにスタティック ルートを設定することをお勧めします。

neighbor ebgp-multihop コマンドは、eBGP ピアでピア接続先の IP アドレスが直接接続されていない場合にだけ使用してください。

この例では、スタティック ルートが使用されています。

R1-AGS

R6-2500

router bgp 300
  neighbor 1.1.1.1 remote-as 400
  neighbor 1.1.1.1 ebgp-multihop 2
  neighbor 1.1.1.1 update-source Loopback0
  !
 ip route 1.1.1.1 255.255.255.255 10.10.10.2
 
router bgp 400
  neighbor 2.2.2.2 remote-as 300
  neighbor 2.2.2.2 ebgp-multihop 2
  neighbor 2.2.2.2 update-source Loopback0
  !
 ip route 2.2.2.2 255.255.255.255 10.10.10.1
 

show ip bgp summary コマンドは、ルータ R1-AGS が確立状態であることを示しています。

R1-AGS(9)# show ip bgp summary
 BGP table version is 1, main routing table version 1
 Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
 1.1.1.1         4   400       3       3        1    0    0 00:00:26        0

注: デフォルト ルートは、BGP セッション(iBGP/eBGP)を確立するときには使用しません。また、BGP 隣接ルータに PING を送信することはできますが、デバッグには同じ(ルートなし)出力が表示されます。 解決方法はやはり、BGP 隣接ルータにルートを追加することです。

BGP で update-source コマンドが消失している

ルータ R1-AGS の show ip bgp summary コマンドは、セッションがアクティブであることを示しています。

R1-AGS(9)# show ip bgp summary
 BGP table version is 1, main routing table version 1
 Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
 1.1.1.1         4   400       0       0        0    0    0 never    Active

設定は次のとおりです。

R1-AGS

R6-2500

interface Loopback0
  ip address 2.2.2.2 255.255.255.255
 !
 interface Serial1
  ip address 10.10.10.1 255.255.255.0
 !
 router bgp 400
  neighbor 1.1.1.1 remote-as 400
 !
 ip route 1.1.1.1 255.255.255.255 10.10.10.2
interface Loopback0
  ip address 1.1.1.1 255.255.255.255
 !
 interface Serial0
  ip address 10.10.10.2 255.255.255.0
 !
 router bgp 400
  neighbor 2.2.2.2 remote-as 400
 !
 ip route 2.2.2.2 255.255.255.255 10.10.10.1

debug コマンドを実行すると、TCP 接続に失敗したと表示されます。

ルータ R1-AGS 上のデバッグ:

TCP: sending RST, seq 0, ack 2248020754
 TCP: sent RST to 10.10.10.2:11018 from 2.2.2.2:179
 BGP: 1.1.1.1 open active, local address 10.10.10.1
 TCB0016B06C created
 TCB0016B06C setting property 0 16ADEA
 TCB0016B06C bound to 10.10.10.1.11042
 TCP: sending SYN, seq 4099938541, ack 0
 TCP0: Connection to 1.1.1.1:179, advertising MSS 536
 TCP0: state was CLOSED -> SYNSENT [11042 -> 1.1.1.1(179)]
 TCP0: state was SYNSENT -> CLOSED [11042 -> 1.1.1.1(179)]
 TCP0: bad seg from 1.1.1.1 -- closing connection: seq 0 ack 4099938542 rcvnxt 0 rcvwnd 0
 TCP0: connection closed - remote sent RST
 TCB0016B06C destroyed
 BGP: 1.1.1.1 open failed: Connection refused by remote host
 

ルータ R6-2500 上のデバッグ:

 BGP: 2.2.2.2 open active, local address 10.10.10.2
 TCB00194800 created
 TCB00194800 setting property TCP_WINDOW_SIZE (0) E6572
 TCB00194800 setting property TCP_TOS (11) E6571
 TCB00194800 bound to 10.10.10.2.11018
 TCP: sending SYN, seq 2248020753, ack 0
 TCP0: Connection to 2.2.2.2:179, advertising MSS 556
 TCP0: state was CLOSED -> SYNSENT [11018 -> 2.2.2.2(179)]
 TCP0: state was SYNSENT -> CLOSED [11018 -> 2.2.2.2(179)]
 TCP0: bad seg from 2.2.2.2 -- closing connection: seq 0 ack 2248020754 rcvnxt 0 rcvwnd 0
 TCP0: connection closed - remote sent RST
 TCB 0x194800 destroyed
 BGP: 2.2.2.2 open failed: Connection refused by remote host
 TCP: sending RST, seq 0, ack 4099938542
 TCP: sent RST to 10.10.10.1:11042 from 1.1.1.1:179
 

解決方法

この問題を解決するには、両方のルータで update-source コマンドを設定するか、update-source コマンドを削除し両方のルータで近隣ルータ文を変更します。 次に両方の解決方法の例を示します。

次の例では、両方のルータで update-source コマンドが設定されています。

R1-AGS

R6-2500

interface Loopback0
  ip address 2.2.2.2 255.255.255.255
 !
 interface Serial1
  ip address 10.10.10.1 255.255.255.0
 !
 router bgp 400
  neighbor 1.1.1.1 remote-as 400
  neighbor 1.1.1.1 update-source Loopback0
  !
 ip route 1.1.1.1 255.255.255.255 10.10.10.2
interface Loopback0
  ip address 1.1.1.1 255.255.255.255
 !
 interface Serial0
  ip address 10.10.10.2 255.255.255.0
 !
 router bgp 400
  neighbor 2.2.2.2 remote-as 400
  neighbor 2.2.2.2 update-source Loopback0
  !
 ip route 2.2.2.2 255.255.255.255 10.10.10.1

show ip bgp summary コマンドは、ルータ R1-AGS が確立状態であることを示しています。

R1-AGS(9)# show ip bgp summary
 BGP table version is 1, main routing table version 1
 Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
 2.2.2.2         4   400       3       3        1    0    0 00:00:26        0

update-source コマンドは、ループバック アドレスにピア接続する場合にしか使用する必要はありません。 これは、iBGP ピアと eBGP ピアの場合も同様です。

次の例では、両方のルータで update-source コマンドが削除され、隣接ルータ文が変更されています。

R1-AGS

R6-2500

interface Loopback0
  ip address 2.2.2.2 255.255.255.255
 !
 interface Serial1
  ip address 10.10.10.1 255.255.255.0
 !
 router bgp 400
  neighbor 10.10.10.2 remote-as 400
 
interface Loopback0
  ip address 1.1.1.1 255.255.255.255
 !
 interface Serial0
  ip address 10.10.10.2 255.255.255.0
 !
 router bgp 400
  neighbor 10.10.10.1 remote-as 400
 

show ip bgp summary コマンドは、ルータ R1-AGS が確立状態であることを示しています。

R1-AGS(9)# show ip bgp summary
 BGP table version is 1, main routing table version 1
 Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
 10.10.10.2      4   400       3       3        1    0    0 00:00:26        0

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

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


関連情報


Document ID: 13752