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)」で検証していきます。
