【BGP】外部BGPの設定と動作確認 Cisco

 外部BGPではリモートのAS番号がローカルのAS番号とは異なります。これが、内部BGP(iBGP)と外部BGP(eBGP)の大きな違いです。

スポンサーリンク

外部BGPの設定

設定

 設定コマンドは、内部BGPの設定から、リモートASの番号をローカルAS番号と異なる値に設定します。

R1(config)#router bgp 1
R1(config-router)#neighbor 192.168.12.2 remote-as 23
R2(config)#router bgp 23
R2(config-router)#neighbor 192.168.12.1 remote-as 1

 しばらくすると、 ルータ間で隣接関係(ネイバー)が起動し、ピアリングが確立されます。

R1#
*Apr 26 05:16:45.486: %BGP-5-ADJCHANGE: neighbor 192.168.12.2 Up

 iBGPとの違いを見ていきます。

R1#show ip bgp neighbors 192.168.12.2
BGP neighbor is 192.168.12.2,  remote AS 23, external link
  BGP version 4, remote router ID 2.2.2.2
  BGP state = Established, up for 00:02:19
  Last read 00:00:23, last write 00:00:27, hold time is 180, keepalive interval is 60 seconds

 AS23とのピアリングで、外部リンク(external link)と認識しています。

TTL(Time To Live)の確認

 R1とR2のTCPセッションをWireSharkでみてみます。

 TTLが255ではなく1になっています。これは、ネイバーが直接接続されていなければいけないことを意味します。複数ホップを経由すると、BGPのTCPセッションはドロップします。

プレフィックスの広告

 それでは、R1のループバックインタフェースをBGPにアドバタイズしてみます。

R1(config)#router bgp 1
R1(config-router)#network 1.1.1.1 mask 255.255.255.255

 R2で1.1.1.1/32を学習していることを確認します。

R2#show ip bgp
BGP table version is 2, 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, m multipath, b backup-path, f RT-Filter, 
              x best-external, a additional-path, c RIB-compressed, 
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found


     Network          Next Hop            Metric LocPrf Weight Path
 *>  1.1.1.1/32       192.168.12.1             0             0 1 I

 Next Hop は R1(192.168.12.1) になります。

 show ip bgp出力の左列にある記号(>)は、ベストパスであることを意味します。複数ルータから同一プレフィックを学習した際に、どのルータから学習したものがベストパスなのかがわかります。 ベストパスはルーティングテーブルに保存され、他のBGPネイバーにアドバタイズされます。

R2#show ip route 

      1.0.0.0/32 is subnetted, 1 subnets
B        1.1.1.1 [20/0] via 192.168.12.1, 00:04:20

NextHopの到達性

 次に、R2とR3で、iBGP設定し、R3で、1.1.1.1/32がどのように見えるか確認してみます。

R2(config)#router bgp 23
R2(config-router)#neighbor 192.168.23.3 remote-as 23
R3(config)#router bgp 23
R3(config-router)#neighbor 192.168.23.2 remote-as 23

*Apr 26 05:35:14.348: %BGP-5-ADJCHANGE: neighbor 192.168.23.2 Up 

 R3で1.1.1.1/32を学習しているか確認します。

R3#show ip bgp
BGP table version is 1, local router ID is 3.3.3.3
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, 
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, 
              x best-external, a additional-path, c RIB-compressed, 
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found


     Network          Next Hop            Metric LocPrf Weight Path
 *  i 1.1.1.1/32       192.168.12.1             0    100      0 1 i

 show ip bgp出力の左列にある記号(>)がなく、ベストパスではありません。そのため、ルーティングテーブルにも、保存されません。 1.1.1.1/32に対して、もう少し詳しくみます。

R3#show ip bgp 1.1.1.1
BGP routing table entry for 1.1.1.1/32, version 0
Paths: (1 available, no best path)
  Not advertised to any peer
  Refresh Epoch 1
  1
    192.168.12.1 (inaccessible) from 192.168.23.2 (2.2.2.2)
      Origin IGP, metric 0, localpref 100, valid, internal
      rx pathid: 0, tx pathid: 0

 まず、Next HopがR1(192.168.12.1) であり、R2からR3へアドバタイズする際に、Next Hop値が変更されていません。

 iBGPでは、Next Hop値はデフォルトでは変更されません。 R3に192.168.12.1へのルーティングがないため、NextHopに到達できず(inaccessible)、1.1.1.1をベストパスとして認識しません。

 R3 に192.168.12.1 へのスタティックルートを設定してみます。

R3(config)#ip route 192.168.12.1 255.255.255.255 192.168.23.2
R3#sh ip bgp 1.1.1.1
BGP routing table entry for 1.1.1.1/32, version 2
Paths: (1 available, best #1, table default)
  Not advertised to any peer
  Refresh Epoch 1
  1
    192.168.12.1 from 192.168.23.2 (2.2.2.2)
      Origin IGP, metric 0, localpref 100, valid, internal, best
      rx pathid: 0, tx pathid: 0x0

 inaccessibleが消えました。ベストパスになったかどうか確認します。

R3#show ip bgp 
BGP table version is 2, local router ID is 3.3.3.3
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, 
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, 
              x best-external, a additional-path, c RIB-compressed, 
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found


     Network          Next Hop            Metric LocPrf Weight Path
 *>i 1.1.1.1/32       192.168.12.1             0    100      0 1 I

 記号 > が出力され、ベストパスになりました。ルーティングテーブルにも、登録されています。

R3#show ip route bgp 

      1.0.0.0/32 is subnetted, 1 subnets
B        1.1.1.1 [200/0] via 192.168.12.1, 00:03:16

補足

 R3に追加したルーティングテーブルですが、実際にNextHopへの到達ができるかどうかは関係ありません。 単純に192.168.12.1へ到達できるルーティングテーブルが存在するか否かのみチェックされます。

R3(config)#ip route 192.168.12.1 255.255.255.255 Null 0

 例えば、192.168.12.1 へのルーティングテーブルでNextHopをNULLインタフェースにします。 これでも、R3は、1.1.1.1をベストパスとみなします。

R3#show ip bgp

     Network          Next Hop            Metric LocPrf Weight Path
 *>i 1.1.1.1/32       192.168.12.1             0    100      0 1 i

その他 BGP関連記事は   >>  ルーティングプロトコル(BGP)まとめ << より参照できます。

コメント