MPLS-VPNの設定~スーパーバックボーン, sham-link, 拡張コミュニティについて~

CiscoでのMPLS-VPNの設定例を紹介します。以下の図のNWを構成していきます。

MPLSでは顧客ネットワークのIPアドレス帯が重複することがありますが、VRFという機能でルーティングテーブルを論理的に分割しているため、問題になりません。上記の構成でも、CE1-1とCE2-1の接続において、「10.1.11.0/24」というIPアドレス帯が重複しています。

なお、PE1ではCE1-1との接続にVPN_AというVRFを構成し、CE1-2との接続にVPN_BというVRFを構成し、それぞれでOSPFプロセスを起動します。プロセスIDを分ければ基本問題ないですが、VRFの物理インタフェースがそれぞれ1つだけのため、デフォルトでは共にルータIDとして「10.1.11.1」を使おうとする(※ループバックIFが無いため物理IFの最大IPを使う)ため、2つ目のOSPFプロセス起動時に重複してしまいます。そのため、ルータIDを手動で設定する必要があります

MPLS網の設定

MPLSを動作させるPE1、PE2、Pの各ルータにLoopback IFの設定をした後、MPLSで通る物理IFにIPを付与し、OSPFの設定、およびMPLSの設定をします。なお、ルーティングプロトコルはOSPFでなくても構いません。RIPやEIGPRでも問題ありません。

CiscoではMPLSを使う場合はCEFが必要になります。通常デフォルトで有効になっています。

[PE1の設定]

PE1(config)# interface loopback 1
PE1(config-if)# ip address 1.1.1.1 255.255.255.255
PE1(config)# interface gigabitEthernet 0/0
PE1(config-if)# ip address 192.168.13.1 255.255.255.0
PE1(config-if)# mpls ip
PE1(config-if)# no shutdown
PE1(config)# router ospf 100
PE1(config-router)# network 1.1.1.1 0.0.0.0 area 100
PE1(config-router)# network 192.168.13.0 0.0.0.255 area 100

[PE2の設定]

PE2(config)# interface loopback 1
PE2(config-if)# ip address 2.2.2.2 255.255.255.255
PE2(config)# interface gigabitEthernet 0/0
PE2(config-if)# ip address 192.168.23.2 255.255.255.0
PE2(config-if)# mpls ip
PE2(config-if)# no shutdown
PE2(config)# router ospf 100
PE2(config-router)# network 2.2.2.2 0.0.0.0 area 100
PE2(config-router)# network 192.168.23.0 0.0.0.255 area 100

[P1の設定]

P1(config)# interface loopback 1
P1(config-if)# ip address 3.3.3.3 255.255.255.255
P1(config)# interface gigabitEthernet 0/0
P1(config-if)# ip address 192.168.13.3 255.255.255.0
P1(config-if)# mpls ip
P1(config-if)# no shutdown
P1(config)# interface gigabitEthernet 1/0
P1(config-if)# ip address 192.168.23.3 255.255.255.0
P1(config-if)# mpls ip
P1(config-if)# no shutdown
P1(config)# router ospf 100
P1(config-router)# network 3.3.3.3 0.0.0.0 area 100
P1(config-router)# network 192.168.13.0 0.0.0.255 area 100
P1(config-router)# network 192.168.23.0 0.0.0.255 area 100

各ルータでMPLSによるネイバーが張れていることを確認します。

PE1/PE2/P1 # show mpls ldp neighbor

また、LIBテーブルが作成されていることを確認します。

PE1/PE2/P1 # show mpls ldp bindings
show コマンド結果:PE1 / PE2 / P1

VRF(顧客ルーティングテーブル)の設定

PE1/PE2ルータでVRFを、顧客の数だけ作成します。ここでは例として2つ作成します。また、VRF上でOSPFを動作させ、CE1/CE2ルータとルート情報交換をさせます。なお、これもOSPFでなくても構いません。RIPやEIGRPでも問題ありません。網内と合わせる必要も、別にする必要もありません。

[PE1の設定]

PE1(config)# ip vrf VPN_A
PE1(config-vrf)# rd 10:10
PE1(config-vrf)# route-target both 100:100
PE1(config)# ip vrf VPN_B
PE1(config-vrf)# rd 20:20
PE1(config-vrf)# route-target both 200:200
PE1(config)# interface gigabitEthernet 1/0
PE1(config-if)# ip vrf forwarding VPN_A
PE1(config-if)# ip address 10.1.11.1 255.255.255.0
PE1(config-if)# no shutdown
PE1(config)# interface gigabitEthernet 2/0
PE1(config-if)# ip vrf forwarding VPN_B
PE1(config-if)# ip address 10.1.11.1 255.255.255.0
PE1(config-if)# no shutdown
PE1(config)# router ospf 10 vrf VPN_A
PE1(config-router)# router-id 1.1.1.10
PE1(config-router)# network 10.1.11.0 0.0.0.255 area 0
PE1(config)# router ospf 20 vrf VPN_B
PE1(config-router)# router-id 1.1.1.20
PE1(config-router)# network 10.1.11.0 0.0.0.255 area 0

[PE2の設定]

PE2(config)# ip vrf VPN_A
PE2(config-vrf)# rd 10:10
PE2(config-vrf)# route-target both 100:100
PE2(config)# ip vrf VPN_B
PE2(config-vrf)# rd 20:20
PE2(config-vrf)# route-target both 200:200
PE2(config)# interface gigabitEthernet 1/0
PE2(config-if)# ip vrf forwarding VPN_A
PE2(config-if)# ip address 10.2.23.1 255.255.255.0
PE2(config-if)# no shutdown
PE2(config)# interface gigabitEthernet 2/0
PE2(config-if)# ip vrf forwarding VPN_B
PE2(config-if)# ip address 10.2.24.1 255.255.255.0
PE2(config-if)# no shutdown
PE2(config)# router ospf 10 vrf VPN_A
PE2(config-router)# router-id 2.2.2.10
PE2(config-router)# network 10.2.23.0 0.0.0.255 area 0
PE2(config)# router ospf 30 vrf VPN_B
PE2(config-router)# router-id 2.2.2.30
PE2(config-router)# network 10.2.24.0 0.0.0.255 area 0

[CE1-1の設定]

CE1-1(config)# interface loopback 1
CE1-1(config-if)# ip address 11.11.11.11 255.255.255.255
CE1-1(config)# interface gigabitEthernet 0/0
CE1-1(config-if)# ip address 10.1.11.11 255.255.255.0
CE1-1(config-if)# no shutdown
CE1-1(config)# router ospf 1
CE1-1(config-router)# network 11.11.11.11 0.0.0.0 area 0
CE1-1(config-router)# network 10.1.11.0 0.0.0.255 area 0

[CE2-1の設定]

CE2-1(config)# interface loopback 1
CE2-1(config-if)# ip address 21.21.21.21 255.255.255.255
CE2-1(config)# interface gigabitEthernet 0/0
CE2-1(config-if)# ip address 10.1.11.21 255.255.255.0
CE2-1(config)# router ospf 1
CE2-1(config-router)# network 21.21.21.21 0.0.0.0 area 0
CE2-1(config-router)# network 10.1.11.0 0.0.0.255 area 0

[CE1-2の設定]

CE1-2(config)# interface loopback 1
CE1-2(config-if)# ip address 12.12.12.12 255.255.255.255
CE1-2(config)# interface gigabitEthernet 0/0
CE1-2(config-if)# ip address 10.2.23.12 255.255.255.0
CE1-2(config-if)# no shutdown
CE1-2(config)# router ospf 1
CE1-2(config-router)# network 12.12.12.12 0.0.0.0 area 0
CE1-2(config-router)# network 10.2.23.0 0.0.0.255 area 0

[CE2-2の設定]

CE2-2(config)# interface loopback 1
CE2-2(config-if)# ip address 22.22.22.22 255.255.255.255
CE2-2(config)# interface gigabitEthernet 0/0
CE2-2(config-if)# ip address 10.2.24.22 255.255.255.0
CE1-2(config-if)# no shutdown
CE2-2(config)# router ospf 1
CE2-2(config-router)# network 22.22.22.22 0.0.0.0 area 0
CE2-2(config-router)# network 10.2.24.0 0.0.0.255 area 0

PE1とPE2のVRFでそれぞれルーティングテーブルにCEルータの情報が載っていることを確認します。

PE1/PE2 # show ip ospf 10 neighbors
PE1/PE2 # show ip ospf 10 database
PE1/PE2 # show ip ospf 20 neighbors
PE1/PE2 # show ip ospf 20 database
show コマンド結果:PE1 / PE2

MP-BGPによるVPNv4 Prefix情報の交換

MP-BGPのipv4とVRFのOSPFを相互にredistributeし、MP-BGPでVPNv4 Prefixの交換をする設定をします。

[PE1]

PE1(config)# router bgp 65001
PE1(config-router)# neighbor 2.2.2.2 remote-as 65001
PE1(config-router)# neighbor 2.2.2.2 update-source loopback 1
PE1(config-router)# address-family vpnv4
PE1(config-router-af)# neighbor 2.2.2.2 activate
PE1(config-router)# address-family ipv4 vrf VPN_A
PE1(config-router-af)# redistribute ospf 10 vrf VPN_A
PE1(config-router)# address-family ipv4 vrf VPN_B
PE1(config-router-af)# redistribute ospf 20 vrf VPN_B
PE1(config)# router ospf 10
PE1(config-router)# redistribute bgp 65001 metric 20 subnets
PE1(config)# router ospf 20
PE1(config-router)# redistribute bgp 65001 metric 20 subnets

[PE2]

PE2(config)# router bgp 65001
PE2(config-router)# neighbor 1.1.1.1 remote-as 65001
PE2(config-router)# neighbor 1.1.1.1 update-source loopback 1
PE2(config-router)# address-family vpnv4
PE2(config-router-af)# neighbor 1.1.1.1 activate
PE2(config-router)# address-family ipv4 vrf VPN_A
PE2(config-router-af)# redistribute ospf 10 vrf VPN_A
PE2(config-router)# address-family ipv4 vrf VPN_B
PE2(config-router-af)# redistribute ospf 30 vrf VPN_B
PE2(config)# router ospf 10
PE2(config-router)# redistribute bgp 65001 metric 20 subnets
PE2(config)# router ospf 30
PE2(config-router)# redistribute bgp 65001 metric 20 subnets

互いにBGPによるネイバーが張れていることを確認します。

PE1/PE2 # show bgp vpnv4 unicast all

また、LFIBテーブルが作成されていることを確認します。

PE1/PE2 # show mpls forwarding-table

また、VPN(顧客)識別ラベル(Inner Label)の情報を確認します。

show コマンド結果:PE1 / PE2

PE1/PE2 # show bgp vpnv4 unicast vrf VPN_A labels
PE1/PE2 # show bgp vpnv4 unicast vrf VPN_B labels

最後に、CEルータでOSPF情報が流れていることを確認します。

CE1-1/CE2-1/CE1-2/CE2-2 # show ip route

show コマンド結果:CE1-1 / CE2-1 / CE1-2 / CE2-2

CE2-1とCE2-2が設定通り外部ルート(O E2)担っているのに対し、CE1-1とCE1-2がルートがInter-Area(O IA)になっていることを確認して下さい。これはCE1-1とCE1-2の間がスーパーバックボーンという接続になっているためです。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする