MPLSを使ったVPN(OSPF)
・MPLSネットワークを使ったVPNを構築する
・拠点にある経路情報を,OSPFでやりとりできるようにする
ネットワーク構成(画像を別ウインドウで表示)
RouterAのコンフィグ
!
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
ip cef
!
ip vrf VPNA
rd 1:100
route-target export 1:100
route-target import 1:100
!
interface Loopback0
ip address 1.1.1.1 255.255.255.255
!
interface Serial1/0
ip vrf forwarding VPNA
ip address 192.1.1.2 255.255.255.0
serial restart-delay 0
no dce-terminal-timing-enable
!
interface Serial1/1
ip address 193.1.1.1 255.255.255.0
mpls ip
serial restart-delay 0
no dce-terminal-timing-enable
!
router ospf 100 vrf VPNA ←OSPFをVRF(VPNA)で動作させる
log-adjacency-changes
redistribute bgp 1 metric 20 subnets ←BGPの経路情報をで再配布する
network 192.1.1.0 0.0.0.255 area 0
!
router ospf 1
log-adjacency-changes
network 0.0.0.0 255.255.255.255 area 0
!
router bgp 1
no bgp default ipv4-unicast
bgp log-neighbor-changes
neighbor 4.4.4.4 remote-as 1
neighbor 4.4.4.4 update-source Loopback0
!
address-family vpnv4
neighbor 4.4.4.4 activate
neighbor 4.4.4.4 send-community extended
exit-address-family
!
address-family ipv4 vrf VPNA
redistribute ospf 100 vrf VPNA ←OSPFの経路情報をBGPで再配布する
no synchronization
exit-address-family
!
line con 0
stopbits 1
line aux 0
stopbits 1
line vty 0 4
login
!
end
RouterBのコンフィグ
!
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname RouterB
!
ip cef
!
interface Serial1/0
ip address 193.1.1.2 255.255.255.0
mpls ip
serial restart-delay 0
no dce-terminal-timing-enable
!
interface Serial1/1
ip address 194.1.1.1 255.255.255.0
mpls ip
serial restart-delay 0
no dce-terminal-timing-enable
!
router ospf 1
log-adjacency-changes
network 0.0.0.0 255.255.255.255 area 0
!
line con 0
stopbits 1
line aux 0
stopbits 1
line vty 0 4
login
!
end
RouterCのコンフィグ
!
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname RouterC
!
ip cef
!
interface Serial1/0
ip address 194.1.1.2 255.255.255.0
mpls ip
serial restart-delay 0
no dce-terminal-timing-enable
!
interface Serial1/1
ip address 195.1.1.1 255.255.255.0
mpls ip
serial restart-delay 0
no dce-terminal-timing-enable
!
router ospf 1
log-adjacency-changes
network 0.0.0.0 255.255.255.255 area 0
!
line con 0
stopbits 1
line aux 0
stopbits 1
line vty 0 4
login
!
end
RouterDのコンフィグ
!
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname RouterD
!
ip cef
!
ip vrf VPNA
rd 1:100
route-target export 1:100
route-target import 1:100
!
interface Loopback0
ip address 4.4.4.4 255.255.255.255
!
interface FastEthernet0/0
no ip address
shutdown
duplex half
!
interface Serial1/0
ip address 195.1.1.2 255.255.255.0
mpls ip
no fair-queue
serial restart-delay 0
no dce-terminal-timing-enable
!
interface Serial1/1
ip vrf forwarding VPNA
ip address 196.1.1.1 255.255.255.0
serial restart-delay 0
no dce-terminal-timing-enable
!
router ospf 100 vrf VPNA ←OSPFをVRF(VPNA)で動作させる
log-adjacency-changes
redistribute bgp 1 metric 20 subnets  ←BGPの経路情報をOSPFで再配布する
network 196.1.1.0 0.0.0.255 area 0
!
router ospf 1
log-adjacency-changes
network 0.0.0.0 255.255.255.255 area 0
!
router bgp 1
no bgp default ipv4-unicast
bgp log-neighbor-changes
neighbor 1.1.1.1 remote-as 1
neighbor 1.1.1.1 update-source Loopback0
!
address-family vpnv4
neighbor 1.1.1.1 activate
neighbor 1.1.1.1 send-community extended
exit-address-family
!
address-family ipv4 vrf VPNA
redistribute ospf 100 vrf VPNA ←OSPFの経路情報をBGPで再配布する
no synchronization
exit-address-family
!
line con 0
exec-timeout 0 0
stopbits 1
line aux 0
stopbits 1
line vty 0 4
login
!
end
CE_A1のコンフィグ
!
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname CE_A1
!
ip cef
!
interface Loopback0
ip address 100.100.100.100 255.255.255.255
!
interface Serial1/0
ip address 192.1.1.1 255.255.255.0
no fair-queue
serial restart-delay 0
no dce-terminal-timing-enable
!
router ospf 100 ←CEルーターでOSPFを動作させる
log-adjacency-changes
network 0.0.0.0 255.255.255.255 area 0
!
line con 0
exec-timeout 0 0
stopbits 1
line aux 0
stopbits 1
line vty 0 4
login
!
end
CE_A2のコンフィグ
!
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname CE_A2
!
ip cef
!
interface Loopback0
ip address 200.200.200.200 255.255.255.255
!
interface Serial1/0
ip address 196.1.1.2 255.255.255.0
no fair-queue
serial restart-delay 0
no dce-terminal-timing-enable
!
router ospf 100 ←CEルーターでOSPFを動作させる
log-adjacency-changes
network 0.0.0.0 255.255.255.255 area 0
!
line con 0
exec-timeout 0 0
stopbits 1
line aux 0
stopbits 1
line vty 0 4
login
!
end
確認
MPLS-VPNを使って拠点を接続したとき,拠点同士をダイナミック・ルーティングでつなぐことができます。
一方の拠点の経路情報が自動的にもう一方の拠点に通知されるので,管理が楽になります。
ここでは,二つの拠点をOSPFでつないでみましょう。

●PEルーターで経路情報を再配布
最初に,MP-BGPで他のルーティング・プロトコルの経路情報を運ぶ方法を押さえましょう。
今回は拠点でOSPFを使うケースです。
ポイントは,「PEルーターでOSPFとBGPの両プロトコルを相互に再配布する」ということです(下の図)。
これを頭に入れてコンフィグをすれば,あまり迷うことはありません。


前回の「MPLSを使ったVPN(スタティック・ルーティング」では,PEルーターに拠点の経路情報をスタティックに登録し,そのスタティック・ルーティングの経路をBGPで再配布しました。
そして,拠点のCEルーターはデフォルト・ルートをPEルーターに向けました。
今回は,これらの設定がない状態から始めます。

●前回の設定終了時点の状態から始めたい場合
もし,「MPLSを使ったVPN(スタティック・ルーティング」の設定終了時点の状態から始めたい場合は,以下の設定を削除してから始めればOKです。

RouterAで,スタティックに登録した拠点の経路情報を削除し,再配布の設定も削除します。

RouterA(config)#no ip route vrf VPNA 100.100.100.100 255.255.255.255
RouterA(config)#router bgp 1
RouterA(config-router)#address-family ipv4 vrf VPNA
RouterA(config-router-af)#no redistribute static


RouterDも同様に,スタティックの経路情報と再配布の設定を削除します。

RouterD(config)#no ip route vrf VPNA 200.200.200.200 255.255.255.255
RouterD(config)#router bgp 1
RouterD(config-router)#address-family ipv4 vrf VPNA
RouterD(config-router-af)#no redistribute static


CEルーターであるCE_A1のデフォルト・ルートを削除します。

CE_A1(config)#no ip route 0.0.0.0 0.0.0.0

同様に,CE_A2のデフォルト・ルートを削除します。

CE_A2(config)#no ip route 0.0.0.0 0.0.0.0

これで,CEルーターとPEルーターの間でルーティング設定をしていない状態になりました。

●CEルーターとPEルーターをOSPFでつなぐ
ここから,今回のラボ・シナリオの設定に入ります。
まず,拠点のCEルーターであるCE_A1で,OSPFを動かします。

CE_A1(config)#router ospf 100
CE_A1(config-router)#network 0.0.0.0 255.255.255.255 area 0


同様に,もう一方の拠点のCEルーターであるCE_A2でもOSPFを動かします。

CE_A2(config)#router ospf 100
CE_A2(config-router)#network 0.0.0.0 255.255.255.255 area 0


続いて,RouterAのVRF(仮想ルーター)である「VPNA」でOSPFを動かします。
OSPFの設定モードに入るとき,VRFの「VPNA」を指定します。
設定すると,CEルーター(CE_A1)とのアジャセンシーがアップした旨のメッセージが出ます。

RouterA(config)#router ospf 100 vrf VPNA
RouterA(config-router)#network 192.1.1.0 0.0.0.255 area 0
*Jul 8 14:36:54.675: %OSPF-5-ADJCHG: Process 100, Nbr 100.100.100.100 on Serial1/0 from LOADING to FULL, Loading Done


同様に,RouterBのVRF(仮想ルーター)である「VPNA」でOSPFを動かします。

RouterD(config)#router ospf 100 vrf VPNA
RouterD(config-router)#network 196.1.1.0 0.0.0.255 area 0
*Jul 8 14:38:19.491: %OSPF-5-ADJCHG: Process 100, Nbr 200.200.200.200 on Serial1/1 from LOADING to FULL, Loading Done


この時点で,RouterAのルーティング・テーブルを見てみましょう。
PEルーター(PE_A1)の先にある100.100.100.100/32の経路情報が通知されて来ました(下の赤字)。

RouterA#show ip route vrf VPNA

Routing Table: VPNA
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
    D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
    N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
    E1 - OSPF external type 1, E2 - OSPF external type 2
    i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
    ia - IS-IS inter area, * - candidate default, U - per-user static route
    o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

   100.0.0.0/32 is subnetted, 1 subnets
O    100.100.100.100 [110/65] via 192.1.1.1, 00:05:49, Serial1/0

C  192.1.1.0/24 is directly connected, Serial1/0


RouterDのルーティング・テーブルも見てみましょう。
PEルーター(PE_A2)の先にある200.200.200.200/32の経路情報が通知されて来ました(下の赤字)。

RouterD#show ip route vrf VPNA

Routing Table: VPNA
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
    D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
    N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
    E1 - OSPF external type 1, E2 - OSPF external type 2
    i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
    ia - IS-IS inter area, * - candidate default, U - per-user static route
    o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

   200.200.200.0/32 is subnetted, 1 subnets
O    200.200.200.200 [110/65] via 196.1.1.2, 00:05:33, Serial1/1

C  196.1.1.0/24 is directly connected, Serial1/1


●OSPFの経路情報をBGPで再配布
PEルーターであるRouterAで,OSPFの経路情報をBGPで再配布させます。
拠点側のIPv4の経路情報をMP-BGPで通知するためには,アドレスファミリを指定して通知します。
そのため,BGPの設定モードの中に入り,そこでIPv4アドレスファミリを指定してVPNAの設定モードに入ります。
そして,VPNAのOSPFプロセス100を再配布します。

RouterA(config)#router bgp 1
RouterA(config-router)#address-family ipv4 vrf VPNA
RouterA(config-router-af)#redistribute ospf 100


同様に,RouterDでも,OSPFの経路情報をBGPで再配布させます。

RouterD(config)#router bgp 1
RouterD(config-router)#address-family ipv4 vrf VPNA
RouterD(config-router-af)#redistribute ospf 100


再び,RouterAのルーティング・テーブルを見てみましょう。
BGPを通じて,200.200.200.200/32の経路情報が通知されて来ました(下の赤字)。

RouterA#show ip route vrf VPNA

Routing Table: VPNA
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
    D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
    N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
    E1 - OSPF external type 1, E2 - OSPF external type 2
    i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
    ia - IS-IS inter area, * - candidate default, U - per-user static route
    o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

   200.200.200.0/32 is subnetted, 1 subnets
B    200.200.200.200 [200/65] via 4.4.4.4, 00:00:50

   100.0.0.0/32 is subnetted, 1 subnets
O    100.100.100.100 [110/65] via 192.1.1.1, 00:15:26, Serial1/0
B  196.1.1.0/24 [200/0] via 4.4.4.4, 00:00:50
C  192.1.1.0/24 is directly connected, Serial1/0


ただし,CE_A1ルーターのルーティング・テーブルを見ると,200.200.200.200/32の経路情報が来ていません。

CE_A1#show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
    D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
    N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
    E1 - OSPF external type 1, E2 - OSPF external type 2
    i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
    ia - IS-IS inter area, * - candidate default, U - per-user static route
    o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

   100.0.0.0/32 is subnetted, 1 subnets
C    100.100.100.100 is directly connected, Loopback0
C  192.1.1.0/24 is directly connected, Serial1/0


というのも,まだRouterAでBGPの経路情報をOSPFで再配布していないからです。

●BGPの経路情報をOSPFで再配布
ということで,PEルーターでBGPの経路情報をOSPFで再配布させましょう。
仮想ルーター「VPNA」で動作しているOSPF(プロセス100)の設定モードに入り,再配布元の経路情報をBGP(プロセス1)に指定します。
こうすると,BGP1の経路情報をVPNAのOSPF100に再配布します。

RouterA(config)#router ospf 100 vrf VPNA
RouterA(config-router)#redistribute bgp 1 subnets metric 20


RouterDも同様に,BGP1の経路情報をVPNAのOSPF100に再配布します。

RouterD(config)#router ospf 100 vrf VPNA
RouterD(config-router)#redistribute bgp 1 subnets metric 20


RouterAのルーティング・テーブルを見てみましょう。
他の拠点の経路情報である200.200.200.200/32と196.1.1.0/24がテーブルに登録されました。

CE_A1#show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
    D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
    N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
    E1 - OSPF external type 1, E2 - OSPF external type 2
    i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
    ia - IS-IS inter area, * - candidate default, U - per-user static route
    o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

   200.200.200.0/32 is subnetted, 1 subnets
O IA  200.200.200.200 [110/84] via 192.1.1.2, 00:01:26, Serial1/0

   100.0.0.0/32 is subnetted, 1 subnets
C    100.100.100.100 is directly connected, Loopback0
O IA 196.1.1.0/24 [110/84] via 192.1.1.2, 00:01:26, Serial1/0
C  192.1.1.0/24 is directly connected, Serial1/0


RouterDも見てみましょう。
他の拠点の経路情報である100.100.100.100/32と192.1.1.0/24がテーブルに登録されました。

CE_A2#show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
    D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
    N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
    E1 - OSPF external type 1, E2 - OSPF external type 2
    i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
    ia - IS-IS inter area, * - candidate default, U - per-user static route
    o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

   200.200.200.0/32 is subnetted, 1 subnets
C    200.200.200.200 is directly connected, Loopback0
   100.0.0.0/32 is subnetted, 1 subnets
O IA  100.100.100.100 [110/84] via 196.1.1.1, 00:00:36, Serial1/0

C  196.1.1.0/24 is directly connected, Serial1/0
O IA 192.1.1.0/24 [110/84] via 196.1.1.1, 00:00:36, Serial1/0


●動作の確認
では,拠点同士できちんと通信ができるかを確認してみます。
一方の拠点にある100.100.100.100から,他方の拠点にある200.200.200.200にpingを打ちます。

CE_A1#ping 200.200.200.200

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 200.200.200.200, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 168/211/276 ms


きちんと応答が返ってきました。
これで,拠点同士をOSPFでつないだMPLS-VPNが実現できました。


■Dynamipsでの検証
このラボ・シナリオはDynamipsで検証しました。
Dynagenのコンフィグファイルは以下です。

# MPLS lab

autostart = False

[localhost]
[[7200]]
image = C:\Program Files\Dynamips\images\c7200-**********.bin
npe = npe-400
ram = 160
idlepc = 0x********

[[ROUTER CEA1]]
S1/0 = R1 S1/0
model = 7200

[[ROUTER R1]]
S1/1 = R2 S1/0
model = 7200

[[ROUTER R2]]
S1/1 = R3 S1/0
model = 7200

[[ROUTER R3]]
S1/1 = R4 S1/0
model = 7200

[[ROUTER R4]]
S1/1 = CEA2 S1/0
model = 7200

[[ROUTER CEA2]]
model = 7200

MPLSラボ
MPLSの基本
MPLSを使ったVPN(スタティック・ルーティング)
MPLSを使ったVPN(OSPF)