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 |
| AS | AS200 / 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-multihopとupdate-sourceが必要になる一方、iBGPではebgp-multihopは不要であることもCML上で確認できました。




コメント