【BGP入門】MP-BGPとは?

  • URLをコピーしました!
目次

はじめに

こんにちは。ネットワークエンジニアの「だいまる」です。

今回はBGPシリーズとして「MP-BGP」についてまとめていきたいと思います。

MP-BGPとは?

概要

MP-BGPとは「IPv6やVPNv4、VPNv6も利用できるマルチプロトコルなBGP」になります。

このプロトコルでは、従来のIPv4ピアの設定でIPv6の経路交換を実施できたり、IPv6ピアの設定でIPv4の経路交換ができたりします。

その機能を実現するために、MP_REACH_NLRI」と「MP_UNREACH_NLRI」が追加されています。

MP_REACH_NLRI
  • 概要:オプションのNon-Transitive属性であり、経路情報に加え、どのアドレスタイプかを定義
    • Non-Transitve:他ASには広報しない属性
  • フィールド
フィールド名サイズ用途
Address Family Identifier(AFI)2オクテットIPv4やIPv6などのアドレスタイプを定義
Subsequent Address Family Identitifier(SAFI)1オクテットユニキャストやマルチキャスト等のタイプを定義
Nexthop Network Address Length1オクテットNexthopアドレスのPrefix長を定義
Nexthop Network Address可変Nexthopアドレスを定義
Reserverd1オクテット予約
NLRI可変Nexthopに紐づく到達可能な経路を格納
MP_UNREACH_NLRI
  • 概要:オプションのNon-Transitive属性であり、Withdrawn経路を格納するために利用
    • Non-Transitve:他ASには広報しない属性
  • フィールド
フィールド名サイズ用途
Address Family Identifier(AFI)2オクテットIPv4やIPv6などのアドレスタイプを定義
Subsequent Address Family Identitifier(SAFI)1オクテットユニキャストやマルチキャスト等のタイプを定義
Withdrawn Routes可変到達不能となり削除する経路リスト
インターネットルーティング入門 第3版
〜図解でわかる経路制御の仕組み!〜

基本設定(Cisco IOS)

IPv6ルーティングの有効(IPv6利用する場合)

MP-BGPを利用するケースとして、IPv6を利用することが多いと思うのでIPv6ルーティングを有効化します。

IPv6ルーティング有効化
Router(config)#ipv6 unicast-routing

BGP設定

IPv6ピア設定
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ルーティングが無効になっているためです。

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の設定は何もないことがわかります。

事前確認(ルータ2)
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」はなかったです

ネットワークエンジニアの教科書
〜ネットワークエンジニアを目指す人、ネットワークエンジニアになったばかりの人におすすめの1冊〜

最後に

今回はBGPの拡張版である「MP-BGP」を簡単にまとめてみました。

次回はMP-BGPに関わるVRF、RD/RT等々についてまとめていきたいと思います。

関連記事

  • URLをコピーしました!
目次