はじめに
こんにちは。ネットワークエンジニアの「だいまる」です。
今回はBGPシリーズとして「MP-BGP」についてまとめていきたいと思います。
MP-BGPとは?
概要
MP-BGPとは「IPv6やVPNv4、VPNv6も利用できるマルチプロトコルなBGP」になります。
このプロトコルでは、従来のIPv4ピアの設定でIPv6の経路交換を実施できたり、IPv6ピアの設定でIPv4の経路交換ができたりします。
その機能を実現するために、「MP_REACH_NLRI」と「MP_UNREACH_NLRI」が追加されています。
- 概要:オプションのNon-Transitive属性であり、経路情報に加え、どのアドレスタイプかを定義
- Non-Transitve:他ASには広報しない属性
- フィールド
| フィールド名 | サイズ | 用途 |
|---|---|---|
| Address Family Identifier(AFI) | 2オクテット | IPv4やIPv6などのアドレスタイプを定義 |
| Subsequent Address Family Identitifier(SAFI) | 1オクテット | ユニキャストやマルチキャスト等のタイプを定義 |
| Nexthop Network Address Length | 1オクテット | NexthopアドレスのPrefix長を定義 |
| Nexthop Network Address | 可変 | Nexthopアドレスを定義 |
| Reserverd | 1オクテット | 予約 |
| NLRI | 可変 | Nexthopに紐づく到達可能な経路を格納 |
- 概要:オプションのNon-Transitive属性であり、Withdrawn経路を格納するために利用
- Non-Transitve:他ASには広報しない属性
- フィールド
| フィールド名 | サイズ | 用途 |
|---|---|---|
| Address Family Identifier(AFI) | 2オクテット | IPv4やIPv6などのアドレスタイプを定義 |
| Subsequent Address Family Identitifier(SAFI) | 1オクテット | ユニキャストやマルチキャスト等のタイプを定義 |
| Withdrawn Routes | 可変 | 到達不能となり削除する経路リスト |
基本設定(Cisco IOS)
IPv6ルーティングの有効(IPv6利用する場合)
MP-BGPを利用するケースとして、IPv6を利用することが多いと思うのでIPv6ルーティングを有効化します。
Router(config)#ipv6 unicast-routing
BGP設定
Router(config)#router bgp <AS番号>
Router(config-router)#neighbor <IPv6ネイバーアドレス> remote-as <AS番号>
Router(config-router)#neighbor <IPv6ネイバーアドレス> update-source <Interface>
Router(config-router)#address-family ipv4
Router(config-router)#address-family ipv6
Router(config-router-af)#neighbor <IPv6ネイバーアドレス> activate
Router(config-router-af)#neighbor <IPv6ネイバーアドレス> next-hop-self
動作確認(Cisco IOS)
検証環境
検証環境はBGPシリーズでお馴染みの環境を利用します。

AS100を利用します。
設定・動作確認
IPv6ルーティング有効化
まず最初にIPv6ルーティングの有効化前後の状態を見ていきましょう。
Router3#show ipv6 route
Router3#
何も出力されませんが、この状態はIPv6ルーティングが無効になっているためです。
Router3#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router3(config)#ipv6 unicast-routing
Router3(config)#end
設定後の状態は、以下の通り、ルーティングテーブルが出力されるようになりました。
Router3#show ipv6 route
IPv6 Routing Table - default - 1 entries
Codes: C - Connected, L - Local, S - Static, U - Per-user Static route
B - BGP, HA - Home Agent, MR - Mobile Router, R - RIP
H - NHRP, I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea
IS - ISIS summary, D - EIGRP, EX - EIGRP external, NM - NEMO
RL - RPL, O - OSPF Intra, OI - OSPF Inter, OE1 - OSPF ext 1
OE2 - OSPF ext 2, ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2
la - LISP alt, lr - LISP site-registrations, ld - LISP dyn-eid
lA - LISP away, a - Application
L FF00::/8 [0/0]
via Null0, receive
IPv6 BGPピアの設定
IPv6のBGPピアの設定のためにLoopbackやP2PにIPv6アドレスをアサインし、OSPFv3でIPv6アドレスを広報します。
変更後の構成は以下の通りとなります。
今回は、ルータ2とルータ3で設定する際の動作を確認していきます。
以下の事前確認からも分かる通りIPv6の設定は何もないことがわかります。
Router2#show run | sec bgp
router bgp 100
bgp router-id 10.10.2.1
bgp log-neighbor-changes
network 10.10.2.1 mask 255.255.255.255
aggregate-address 10.20.0.0 255.255.0.0 summary-only
redistribute static
neighbor 10.10.1.1 remote-as 100
neighbor 10.10.1.1 update-source Loopback0
neighbor 10.10.1.1 next-hop-self
neighbor 10.10.1.1 route-map default out
neighbor 10.10.3.1 remote-as 100
neighbor 10.10.3.1 update-source Loopback0
neighbor 10.10.3.1 next-hop-self
neighbor 10.10.3.1 route-map default out
neighbor 10.10.4.1 remote-as 100
neighbor 10.10.4.1 update-source Loopback0
neighbor 10.10.4.1 next-hop-self
neighbor 10.10.4.1 route-map default out
neighbor 192.168.2.2 remote-as 200
neighbor 192.168.2.2 update-source GigabitEthernet0/2
neighbor 192.168.2.2 send-community
neighbor 192.168.2.2 prefix-list Loopback out
neighbor 192.168.3.2 remote-as 300
neighbor 192.168.3.2 update-source GigabitEthernet0/4
neighbor 192.168.3.2 send-community
neighbor 192.168.3.2 route-map NO-EXPORT out
default-information originate
ip bgp-community new-format
Router2#show bgp ipv6 unicast summary
Router2#
ここにIPv6のピア設定を追加していきます。
Router2(config)#router bgp 100
Router2(config-router)#neighbor 2001::10:10:3:1 remote-as 100
Router2(config-router)#neighbor 2001::10:10:3:1 update-source loopback 0
Router2(config-router)#address-family ipv4
Router2(config-router-af)#exit
Router2(config-router)#address-family ipv6
Router2(config-router-af)#neighbor 2001::10:10:3:1 activate
Router2(config-router-af)#neighbor 2001::10:10:3:1 next-hop-self
Router2(config-router-af)#exit

この設定をルータ3でも実施します
設定後の状態は、BGPピアがUPしていることがわかります。(文字色が黄色の部分が追加もしくは確認すべき点です)
Router2#show run | sec bgp
router bgp 100
bgp router-id 10.10.2.1
bgp log-neighbor-changes
neighbor 10.10.1.1 remote-as 100
neighbor 10.10.1.1 update-source Loopback0
neighbor 10.10.3.1 remote-as 100
neighbor 10.10.3.1 update-source Loopback0
neighbor 10.10.4.1 remote-as 100
neighbor 10.10.4.1 update-source Loopback0
neighbor 2001::10:10:3:1 remote-as 100
neighbor 2001::10:10:3:1 update-source Loopback0
neighbor 192.168.2.2 remote-as 200
neighbor 192.168.2.2 update-source GigabitEthernet0/2
neighbor 192.168.3.2 remote-as 300
neighbor 192.168.3.2 update-source GigabitEthernet0/4
!
address-family ipv4
network 10.10.2.1 mask 255.255.255.255
aggregate-address 10.20.0.0 255.255.0.0 summary-only
redistribute static
neighbor 10.10.1.1 activate
neighbor 10.10.1.1 next-hop-self
neighbor 10.10.1.1 route-map default out
neighbor 10.10.3.1 activate
neighbor 10.10.3.1 next-hop-self
neighbor 10.10.3.1 route-map default out
neighbor 10.10.4.1 activate
neighbor 10.10.4.1 next-hop-self
neighbor 10.10.4.1 route-map default out
no neighbor 2001::10:10:3:1 activate
neighbor 192.168.2.2 activate
neighbor 192.168.2.2 send-community
neighbor 192.168.2.2 prefix-list Loopback out
neighbor 192.168.3.2 activate
neighbor 192.168.3.2 send-community
neighbor 192.168.3.2 route-map NO-EXPORT out
default-information originate
exit-address-family
!
address-family ipv6
neighbor 2001::10:10:3:1 activate
neighbor 2001::10:10:3:1 next-hop-self
exit-address-family
ip bgp-community new-format
Router2#show bgp ipv6 unicast summary
BGP router identifier 10.10.2.1, local AS number 100
BGP table version is 1, main routing table version 1
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
2001::10:10:3:1 4 100 4 4 1 0 0 00:00:28 0
Router2#
この時のBGPで利用されたメッセージの中に「MP_UNREACH_NLRI」がありますね。

特に経路広報してないので「MP_REACH_NLRI」はなかったです

最後に
今回はBGPの拡張版である「MP-BGP」を簡単にまとめてみました。
次回はMP-BGPに関わるVRF、RD/RT等々についてまとめていきたいと思います。


