【BGP】内部BGP

BGP

 BGPを構成するルータ間は、経路情報を交換するため、ルータ同士を接続(ピアリング)する必要があります。 BGPはTCP179番ポートを使用したTCPセッションによりピアリングします。 そのため、ピアリングするルータ間は、TCPセッションがはれるよう、ネットワーク的に疎通ができないといけません。

スポンサーリンク

内部BGP

直接接続リンク間でのピアリング

直接接続のリンク(192.168.12.0/24)を使用して、BGPピアリングします。
ルータ間でAS番号は同じで、このピアリングは内部BGP(iBGP)ピアリングと言います。

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

BGPを開始するには、AS番号を指定するrouter bgpコマンドを使用します。ネイバーは自動的に発見されません。これは、neighbor コマンドを使用して自分で行う必要があります。 neighbor コマンドで、ピアリングしたいルータのIPアドレスとAS番号を指定します。 しばらくすると、 ルータ間で隣接関係(ネイバー)が起動し、ピアリングが確立されます。

R1#
*Apr 26 03:13:00.720: %BGP-5-ADJCHANGE: neighbor 192.168.12.2 Up

R1とR2間のピアリングネゴシエーションの詳細(バージョン、AS番号、ルータID、タイマー)は以下の通りです。

R1#show ip bgp neighbors 192.168.12.2
BGP neighbor is 192.168.12.2,  remote AS 12,  internal link
  BGP version 4, remote router ID 2.2.2.2
  BGP state = Established, up for 00:06:00
  Last read 00:00:20, last write 00:00:32, hold time is 180, keepalive interval is 60 seconds

BGPで隣接関係を確認するのに、以下のコマンドが便利です。

R1#show ip bgp summary 
BGP router identifier 1.1.1.1, local AS number 12
BGP table version is 1, main routing table version 1

Neighbor        V           AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
192.168.12.2    4           12      22      22        1    0    0 00:16:44        0

State/PfxRcd には、受信したルート数(プレフィックス数)が表示されます。 以下のコマンドで、実際に学習されたBGPプレフィックスを確認できます。

R1#show ip bgp
R1

今は、ルータ間でネイバーを張っただけなので、ゼロで正解です。(ここがActiveになると、ネイバー関係に問題があります)

では、ここで、networkコマンドを使用してR2のループバックアドレスをR1へアドバタイズします。BGPでプレフィックスをアドバタイズする場合は、アドバタイズするネットワークとサブネットマスクは正確に設定する必要があります。

R2(config)#router bgp 12
R2(config-router)#network 2.2.2.2 mask 255.255.255.255

すると、R1でR2のループバックアドレスを学習します。

R1#show ip bgp
BGP table version is 2, 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, 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 2.2.2.2/32       192.168.12.2             0    100      0 i 

show ip bgp summary も確認すると、State/PfxRcdが1 となり、消費メモリなどの情報が出力されます。

R1#show ip bgp summary 
BGP router identifier 1.1.1.1, local AS number 12
BGP table version is 2, main routing table version 2
1 network entries using 140 bytes of memory
1 path entries using 80 bytes of memory
1/1 BGP path/bestpath attribute entries using 144 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 using 364 total bytes of memory
BGP activity 1/0 prefixes, 1/0 paths, scan interval 60 secs


Neighbor        V           AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
192.168.12.2    4           12      46      45        2    0    0 00:38:01        1

ループバックアドレス間でのピアリング

 BGPピアリングはトランスポートにTCPを使用するため、OSPFのマルチキャストのようにネイバーが直接接続されている必要はありません。

 可用性を高めるため、ルータのループバックインタフェース間でピアリングする設計することが多くあります。送信元アドレスをループバックアドレスに設定する必要があり、update-source コマンドで変更できます。また、各ループバックアドレス間が通信できるよう、R1、R2それぞれにスタティックルートも設定します。

R1(config)#ip route 2.2.2.2 255.255.255.255 192.168.12.2  
R1(config)#router bgp 12  
R1(config-router)#neighbor 2.2.2.2 remote-as 12  
R1(config-router)#neighbor 2.2.2.2 update-source loopback 0  
R2(config)#ip route 1.1.1.1 255.255.255.255 192.168.12.1   
R2(config)#router bgp 12  
R2(config-router)#neighbor 1.1.1.1 remote-as 12  
R2(config-router)#neighbor 1.1.1.1 update-source loopback 0  

BGPピアリングするルータ間は、IGPや今回のようにスタティックルートで、疎通できる必要があります。

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

R1(config)#
*May 31 10:26:51.426: %BGP-5-ADJCHANGE: neighbor 2.2.2.2 Up 

その他のピアリングネゴシエーションの詳細以降は、直接接続リンク間でのピアリングと同じです

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

コメント

タイトルとURLをコピーしました