BGP(eBGPマルチホップ その1)

 eBGPでピアを確立するには、ピア張るBGPスピーカ同士が直接隣接されいて、対向ルータのインタフェースのアドレスをneighborコマンド指定する必要があります。

 それは、eBGPパケットのTTL(time to live)がデフォルトで1に設定されているからです。

 つまり、対向ルータのインタフェースのIPアドレスに1ホップで到達できなければなりません。

 そこで、eBGPのパケットのTTLを増やして、直接接続していないルータ同士でもBGPピアを確立する機能が用意されています。

その機能を「BGPマルチホップ」と呼びます。

eBGPマルチホップ機能を使うケース

●直接つながっていないBGPスピーカーとピアを張る場合

 BGPの設定では、ピアを確立する近接ルータを指定します。しかし、場合によっては、通信しようとするリモートBGPスピーカーと直接つながっていないことがあります。BGPが動作しないルータも存在します。

原則、eBGPは、直接接続したルータとしかBGPピアを確立できません。

●eBGPピア同士で、ループバックアドレスを使ってピアを張る場合

 eBGPマルチホップを使うことで、eBGPピア同士でもループバックアドレスを使って障害対策を行うことが可能になります。

それでは、eBGPマルチホップを検証してゆきます。

使用するネットワークは、下図になります。Router_Bは、BGPが動作していません。

ここでは、「直接つながっていないBGPスピーカーとピアを張る場合」についてプを検証していきます。

上のネットワーク構成図を見て下さい。

Router_AとRouter_Cの間には、BGPを使用していない別のルータが存在します。

eBGPマルチホップの制約

eBGPマルチホップを設定するには、次の制約があります。

●少なくとも1つのループバックインタフェースからピアを張る。

ネクストホップは、ループバックインターフェイスになります。

●2つのBGPスピーカー間に経路がなくてはならない。

 BGPスピーカー同士が、お互いを見つけることができなければ、ピアを張ることができません。この経路の学習には、IGPを利用することができます。IGPもしくは、スタティックルートなどで経路を確保する必要があります。

eBGPマルチホップの設定

・該当するルータでeBGPマルチホップの設定を行います。

Router(config-router)#neighbor address ebgp-multihop [ttl]

address :  リモートBGPスピーカーのIPアドレス
ttl : オプションパラメータ。隣接ルータまでの最大ポップ数を知らせるために設定する。デフォルト値は255。

・送信元にループバックインタフェースを指定します。

Router(config-router)#neighbor address update-source Loopback[番号]

●ルータの設定

それでは、ルータを設定してゆきます。

eBGPマルチホップの設定は、以下のようになります。

Router_A(config-router)#neighbor 2.2.2.2 ebgp-multihop
Router_A(config-router)#neighbor 2.2.2.2 update-source Loopback0

Router_C(config-router)#neighbor 1.1.1.1 ebgp-multihop
Router_C(config-router)#neighbor 1.1.1.1 update-source Loopback0

2つのBGPスピーカー間の経路を確保するために以下のルートを設定します。

Router_A(config)#ip route 2.2.2.2 255.255.255.255 172.16.0.2
Router_A(config)#ip route 172.17.0.0 255.255.0.0 172.16.0.2

Router_B(config)#ip route 1.1.1.1 255.255.255.255 172.16.0.1
Router_B(config)#ip route 2.2.2.2 255.255.255.255 172.17.0.2

Router_C(config)#ip route 1.1.1.1 255.255.255.255 172.17.0.1
Router_C(config)#ip route 172.16.0.0 255.255.0.0 172.17.0.1

この続きは、「BGP(eBGPマルチホップ その2)」で検証していきます。