PE-CEルーティングの基本概念
VRF(Virtual Routing and Forwarding): PEルーターは顧客ごとに個別のルーティングテーブル(VRF)を持ち、各顧客のトラフィックを分離し、プライバシーを保護します。これにより、異なる顧客のトラフィックが混在することなく、同じPEルーターを経由しても独立したネットワーク接続が維持されます。
PEルーター(Provider Edge): MPLSバックボーンネットワークに接続されたサービスプロバイダー側のルーター。複数の顧客のネットワークを接続し、各顧客のVPNを分離して管理します。
CEルーター(Customer Edge): 顧客のネットワークのエッジに配置され、サービスプロバイダーのPEルーターに接続されるルーターです。
BGPを使用したPE-CEルーティングの流れ
- VRFの作成: PEルーターは顧客ごとにVRFを作成します。各VRFには、その顧客専用のルーティングテーブルがあります。
- BGPセッションの確立: PEルーターとCEルーター間でBGPセッションを確立します。これにより、CEルーターからPEルーターに接続するための経路情報がBGPを通じて交換されます。
- ラベルの付与と転送: MPLSバックボーン内では、PEルーターが各顧客のVPNトラフィックに対してラベルを付与し、そのラベルに基づいてパケットが転送されます。これにより、トラフィックが顧客ごとに分離され、セキュアに転送されます。
- BGPでの経路交換: PEルーターはCEルーターから受信した経路情報をVRFに反映し、他のPEルーターとBGPを介してVPN経路情報を交換します。この際、RFC 4364(BGP/MPLS IP VPNs)に従い、VPNv4アドレスファミリーが使用されます。
- 経路選択とルーティング: 各PEルーターは、BGPによって交換された経路情報を基に最適なルートを選択し、顧客のネットワークに対してパケットを転送します。
BGPを使用したPE-CEルーティングの設定
VRFの作成
各顧客には個別のVRFがPEルーターに設定され、それぞれのVPNは別個のルーティングテーブルを持ちます。VRFを使用して、異なる顧客のトラフィックが分離されます。
PE-Router1(config)#ip vrf VRF-A
PE-Router1(config-vrf)#rd 1:100
PE-Router1(config-vrf)#route-target import 1:100
PE-Router1(config-vrf)#route-target export 1:100
PE-Router1(config-vrf)#exit
PE-Router1(config)#ip vrf VRF-B
PE-Router1(config-vrf)#rd 2:200
PE-Router1(config-vrf)#route-target import 2:200
PE-Router1(config-vrf)#route-target export 2:200
PE-Router1(config-vrf)#exit
PE-Router1(config)#interface GigabitEthernet0/1
PE-Router1(config-if)#ip vrf forwarding VRF-A
PE-Router1(config-if)#ip address 172.16.1.254 255.255.255.0
PE-Router1(config-if)#no shutdown
PE-Router1(config-if)#interface GigabitEthernet0/3
PE-Router1(config-if)#ip vrf forwarding VRF-B
PE-Router1(config-if)#ip address 172.16.1.254 255.255.255.0
PE-Router1(config-if)#no shutdown
PE-Router2(config)#ip vrf VRF-A
PE-Router2(config-vrf)#rd 1:100
PE-Router2(config-vrf)#route-target import 1:100
PE-Router2(config-vrf)#route-target export 1:100
PE-Router2(config-vrf)#exit
PE-Router2(config)#ip vrf VRF-B
PE-Router2(config-vrf)#rd 2:200
PE-Router2(config-vrf)#route-target import 2:200
PE-Router2(config-vrf)#route-target export 2:200
PE-Router2(config-vrf)#exit
PE-Router2(config)#interface GigabitEthernet0/2
PE-Router2(config-if)#ip vrf forwarding VRF-A
PE-Router2(config-if)#ip address 172.16.2.254 255.255.255.0
PE-Router2(config-if)#no shutdown
PE-Router2(config-if)#interface GigabitEthernet0/4
PE-Router2(config-if)#ip vrf forwarding VRF-B
PE-Router2(config-if)#ip address 172.16.2.254 255.255.255.0
PE-Router2(config-if)#no shutdown
BGPの設定(PE-CE間のBGPセッション)
PEとCEルーター間にBGPセッションを確立します。このBGPセッションは、通常、内部BGP(iBGP)または外部BGP(eBGP)で行われます。BGPを使用して、顧客ネットワークのプレフィックスがPEルーターに伝達され、PEルーターはこれらの経路をMPLSバックボーン内の他のPEルーターに広告します。
CE-Router1(config)#router bgp 65001
CE-Router1(config-router)#neighbor 172.16.1.254 remote-as 65000
CE-Router1(config-router)#network 10.10.10.10 mask 255.255.255.255
CE-Router2(config)#router bgp 65001
CE-Router2(config-router)#neighbor 172.16.2.254 remote-as 65000
CE-Router2(config-router)#network 20.20.20.20 mask 255.255.255.255
CE-Router3(config)#router bgp 65001
CE-Router3(config-router)#neighbor 172.16.1.254 remote-as 65000
CE-Router3(config-router)#network 10.10.10.10 mask 255.255.255.255
CE-Router4(config)#router bgp 65001
CE-Router4(config-router)#neighbor 172.16.2.254 remote-as 65000
CE-Router4(config-router)#network 20.20.20.20 mask 255.255.255.255
PE-Router1(config)#router bgp 65000
PE-Router1(config-router)#address-family ipv4 vrf VRF-A
PE-Router1(config-router-af)#neighbor 172.16.1.1 remote-as 65001
PE-Router1(config-router-af)#neighbor 172.16.1.1 as-override
PE-Router1(config-router-af)#exit
PE-Router1(config-router)#address-family ipv4 vrf VRF-B
PE-Router1(config-router-af)#neighbor 172.16.1.1 remote-as 65001
PE-Router1(config-router-af)#neighbor 172.16.1.1 as-override
PE-Router2(config)#router bgp 65000
PE-Router2(config-router)#address-family ipv4 vrf VRF-A
PE-Router2(config-router-af)#neighbor 172.16.2.1 remote-as 65001
PE-Router2(config-router-af)#neighbor 172.16.2.1 as-override
PE-Router2(config-router-af)#exit
PE-Router2(config-router)#address-family ipv4 vrf VRF-B
PE-Router2(config-router-af)#neighbor 172.16.2.1 remote-as 65001
PE-Router2(config-router-af)#neighbor 172.16.2.1 as-override
設定後、CEルータとPEルータの間でBGPネイバーが確立します。

MP-BGP(Multiprotocol BGP)の設定
MP-BGPは、BGPの拡張版で、MPLS VPNにおいて重要な役割を果たします。MP-BGPは、PEルーター間でVPNv4アドレスを交換し、各VPNに対応するルーティングテーブルを管理します。
MP-BGPは、通常のBGPのIPv4経路だけでなく、VPNv4(VPN対応のIPv4)アドレスを交換できるようにするための機能です。
PE-Router1(config)#router bgp 65000
PE-Router1(config-router)#neighbor 2.2.2.2 remote-as 65000
PE-Router1(config-router)#neighbor 2.2.2.2 update-source Loopback 0
PE-Router1(config-router)#address-family vpnv4
PE-Router1(config-router-af)#neighbor 2.2.2.2 activate
PE-Router1(config-router-af)#neighbor 2.2.2.2 send-community both
PE-Router2(config)#router bgp 65000
PE-Router2(config-router)#neighbor 1.1.1.1 remote-as 65000
PE-Router2(config-router)#neighbor 1.1.1.1 update-source loopback 0
PE-Router2(config-router)#address-family vpnv4
PE-Router2(config-router-af)#neighbor 1.1.1.1 activate
PE-Router2(config-router-af)#neighbor 1.1.1.1 send-community both
設定後、PEルータ間でBGPネイバーが確立します。

ラベルの交換(MPLSバックボーンの設定)
MPLSバックボーン上では、各PEルーター間でラベルスイッチパス(LSP)が確立され、顧客のトラフィックがラベルベースで転送されます。
PE-Router1(config)#mpls ldp router-id Loopback0
PE-Router1(config)#interface GigabitEthernet0/0
PE-Router1(config-if)#mpls ip
PE-Router2(config)#mpls ldp router-id Loopback0
PE-Router2(config)#interface GigabitEthernet0/0
PE-Router2(config-if)#mpls ip
P-Router(config)#mpls ldp router-id Loopback0
P-Router(config)#interface GigabitEthernet0/1
P-Router(config-if)#mpls ip
P-Router(config-if)#exit
P-Router(config)#interface GigabitEthernet0/2
P-Router(config-if)#mpls ip
P-Router(config-if)#exit
設定後、LDPネイバーが確立します。

IGP(Interior Gateway Protocol)の設定(OSPF)
PEルーターとPルーター(プロバイダールーター)間の経路を確立するためには、OSPFやIS-ISなどのIGPが必要です。これにより、MPLSバックボーン内でPEルーター同士の接続が確立されます。
PE-Router1(config)#router ospf 1
PE-Router1(config-router)#network 1.1.1.1 0.0.0.0 area 0
PE-Router1(config-router)#network 192.168.10.0 0.0.0.255 area 0
PE-Router2(config)#router ospf 1
PE-Router2(config-router)#network 2.2.2.2 0.0.0.0 area 0
PE-Router2(config-router)#network 192.168.20.0 0.0.0.255 area 0
P-Router(config)#router ospf 1
P-Router(config-router)#network 3.3.3.3 0.0.0.0 area 0
P-Router(config-router)#network 192.168.10.0 0.0.0.255 area 0
P-Router(config-router)#network 192.168.20.0 0.0.0.255 area 0
設定後、OPSFネイバーが確立します。

設定後
設定完了後、CE-Router1からCE-Router2まで、CE-Router3からCE-Router4までPingを実行して応答が返ってくるようになりました。


tracerouteを実行すると、それぞれ付与されているラベルが違うことが確認できます。

