CCNP ENCOR対策!CMLでBGP Route Reflectorを構築【設定例・疎通確認付き】

ネットワーク

CCNP ENCOR対策として、私がCisco Modeling Labs(CML)で実際に構築した内容を紹介します。

私はCML Freeを使用していました。

無料版は5ノードまでという制限がありますが、CCNP ENCORの学習には十分でした。

なお、Windows 11+VMware Workstation環境でCMLが起動できなかった際のトラブルと解決方法については、以下の記事にまとめています。

【解決】Windows 11でCMLが起動しない!VBSを無効化したら改善した話 | Yuu Log

CCNP ENCORの学習方法や実際の合格までの勉強法については、以下の記事でまとめています。

CCNP ENCOR合格体験記|使った教材や勉強法、試験当日の感想を紹介 | Yuu Log

構築した構成

AS200の192.168.0.0/24をAS100に伝播してRT4からping 192.168.0.1で疎通がゴール

項目内容
検証環境Cisco Modeling Labs(CML Free)
ノード数4台
ルーティングプロトコルBGP
ASAS200 / AS100
検証内容eBGP / iBGP / Route Reflector
最終確認RT4 → 192.168.0.1 ping

今回の構成では以下の内容を一度に学習できます。

・eBGP
・iBGP
・Loopbackピアリング
・update-source
・ebgp-multihop
・next-hop-self
・Route Reflector
・BGP経路伝播

設定した内容

RT1

interface Loopback0
 ip address 1.1.1.1 255.255.255.255
!
interface Loopback1
 ip address 192.168.0.1 255.255.255.0 
!
interface Ethernet0/1
 ip address 100.0.0.2 255.255.255.0
!
router bgp 200
 network 192.168.0.0
 neighbor 2.2.2.2 remote-as 100
 neighbor 2.2.2.2 ebgp-multihop 255
 neighbor 2.2.2.2 update-source Loopback0
!
ip route 2.2.2.2 255.255.255.255 100.0.0.1

networkコマンドで192.168.0.0/24をBGPへ広報します。なお、networkコマンドだけでは広報されず、ルーティングテーブルに192.168.0.0/24が存在している必要があります。show ip routeで確認しましょう。

neighbor ebgp-multihopコマンドでTTLを255に変更し、Loopback同士でeBGPピアを確立できるようにします。

neighbor update-source コマンドでBGPパケットの送信元IPアドレスをLoopback0に変更します。

ip route コマンドでループバック間の到達性を確保。

RT2

interface Loopback0
 ip address 2.2.2.2 255.255.255.255
!
interface Ethernet0/0
 ip address 100.0.0.1 255.255.255.0
!
interface Ethernet0/1
 ip address 10.0.0.2 255.255.255.0
!
router bgp 100
 neighbor 1.1.1.1 remote-as 200
 neighbor 1.1.1.1 ebgp-multihop 255
 neighbor 1.1.1.1 update-source Loopback0
 neighbor 3.3.3.3 remote-as 100
 neighbor 3.3.3.3 update-source Loopback0
 neighbor 3.3.3.3 next-hop-self
!
ip route 1.1.1.1 255.255.255.255 100.0.0.2
ip route 3.3.3.3 255.255.255.255 10.0.0.1

neighbor ebgp-multihopコマンドでTTLを255に変更し、Loopback同士でeBGPピアを確立できるようにします。

neighbor update-source コマンドでBGPパケットの送信元IPアドレスをLoopback0に変更します。

neighbor next-hop-self コマンドでeBGPで学習した経路をiBGPへ広告する際、ネクストホップを自身(2.2.2.2)に変更します。

ip route コマンドでループバック間の到達性を確保。

neighbor next-hop-selfを入れない場合

RT2がRT1から192.168.0.0/24を学習すると、
Next HopはRT1(1.1.1.1)のままRT3へ広告されます。

neighbor next-hop-selfを入れると、、、

RT2がRT3へ192.168.0.0/24を広告する際、
Next HopがRT2(2.2.2.2)に変更されます。

RT3

interface Loopback0
 ip address 3.3.3.3 255.255.255.255
!
interface Ethernet0/0
 ip address 10.0.0.1 255.255.255.0
!
interface Ethernet0/1
 ip address 10.2.0.1 255.255.255.0
!
router bgp 100
 network 10.2.0.0 mask 255.255.255.0
 neighbor 2.2.2.2 remote-as 100
 neighbor 2.2.2.2 update-source Loopback0
 neighbor 2.2.2.2 route-reflector-client
 neighbor 4.4.4.4 remote-as 100
 neighbor 4.4.4.4 update-source Loopback0
!
ip route 2.2.2.2 255.255.255.255 10.0.0.2
ip route 4.4.4.4 255.255.255.255 10.2.0.2

networkコマンドでRT4が属する10.2.0.0/24をBGPへ広報します。RT4からRT1へpingする際、ICMP Echo ReplyがRT4まで戻れるようにするため。

neighbor update-source コマンドでBGPパケットの送信元IPアドレスをLoopback0に変更します。

route-reflector-clientコマンドでRT2をルートリフレクタクライアントとして設定。

ip route コマンドでループバック間の到達性を確保。

RT4

interface Loopback0
 ip address 4.4.4.4 255.255.255.255
!
interface Ethernet0/0
 ip address 10.2.0.2 255.255.255.0
!
router bgp 100
 neighbor 3.3.3.3 remote-as 100
 neighbor 3.3.3.3 update-source Loopback0
!
ip route 2.2.2.2 255.255.255.255 10.2.0.1
ip route 3.3.3.3 255.255.255.255 10.2.0.1

neighbor update-source コマンドでBGPパケットの送信元IPアドレスをLoopback0に変更します。

ip route コマンドでループバック間の到達性を確保。

RT4にはRT2(2.2.2.2)がネクストホップとして通知されるため、2.2.2.2まで到達できるようホストルートを設定しています。

ポイント

RT3をルートリフレクタにすることにより、RT4へ192.168.0.0/24を伝播できる。

iBGPでは、iBGPから学習した経路を別のiBGPピアへ広告できません。そのため通常はフルメッシュ構成が必要です。Route Reflectorを利用することで、この制限を緩和し、RT3がRT2から学習した経路をRT4へ反射(Reflect)できます。

RT3はRoute ReflectorとしてRT2から受信したiBGP経路をRT4へ反射しますが、Route Reflectorによる経路反射ではNext Hopは基本的に維持されます。そのため、RT4から見る192.168.0.0/24のNext HopはRT2(2.2.2.2)になります。

neighbor ebgp-multihopによるTTLの変更はループバック間でeBGPピアとする場合に必要です。

eBGPはデフォルトのTTLが1のためです。

対しiBGPはTTLがデフォルト255です。

そのため、今回のようにLoopbackアドレス同士でiBGPピアを確立する場合、ebgp-multihopによるTTL変更は必要ありません。

実際にパケットキャプチャで確認すると、、、

iBGPピアであるRT2⇔RT3のBGPキープアライブメッセージのTTLは255でした。

確認コマンド

show ip bgp summary

BGPピアの確立状態を確認します。

show ip bgp

受信したBGP経路を確認します。

show ip route bgp

BGPで学習したルートだけ表示できます。

ping 192.168.0.1

RT4から疎通確認します。

Loopbackからpingしているわけではなく、送信元は出口インターフェース10.2.0.2になります。

今回の検証で分かったこと

今回の検証では、Route Reflectorを使用することで、AS100内のRT2とRT4をiBGPフルメッシュにすることなく、RT1からRT2が学習した192.168.0.0/24をRT4まで伝播できることを確認しました。

特に今回の構成では、RT2のnext-hop-selfとRT3のRoute Reflector設定が重要でした。また、eBGPのLoopbackピアリングではebgp-multihopupdate-sourceが必要になる一方、iBGPではebgp-multihopは不要であることもCML上で確認できました。

コメント

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