目次
概要
OSPF Sham-linkが必要なMPLS-VPNのネットワーク構成について、設定ミスの切り分けと修正を行います。
ネットワーク構成
下記のネットワーク構成で、MPLS-VPNを通じてR4とR5間の通信ができるようにしたいと考えています。
プライマリ回線としてMPLS-VPNを利用します。プライマリ回線障害時のバックアップ回線としてR4-R5間をT1専用線で接続しています。ルータの役割は、次の通りです。
PEルータ:R1、R3
Pルータ :R2
CEルータ:R4、R5
PEルータであるR1、R3ではともにVRFとして次のように定義しています。
VRF名:VPN
RD:100:100
Import RT:100:100
Export RT:100:100
また、PE-CE間のルーティングは次の通りです。
R1-R4:OSPFエリア0
R3-R5:OSPFエリア0
設定概要
各ルータで行われているMPLS-VPNでの通信に関連する設定は次の通りです。
R1
ip vrf VPN rd 100:100 route-target export 100:100 route-target import 100:100 ! interface Loopback0 ip address 192.168.0.1 255.255.255.255 ! interface FastEthernet0/0 ip vrf forwarding VPN ip address 10.14.14.1 255.255.255.0 ! interface Serial1/0 ip address 192.168.12.1 255.255.255.0 encapsulation ppp mpls ip no peer neighbor-route ! router ospf 10 vrf VPN router-id 1.1.1.1 log-adjacency-changes redistribute bgp 100 subnets network 10.0.0.0 0.255.255.255 area 0 ! router ospf 1 log-adjacency-changes network 192.168.0.0 0.0.255.255 area 0 ! router bgp 100 no synchronization bgp log-neighbor-changes neighbor 192.168.0.3 remote-as 100 neighbor 192.168.0.3 update-source Loopback0 no auto-summary ! address-family vpnv4 neighbor 192.168.0.3 activate neighbor 192.168.0.3 send-community extended exit-address-family ! address-family ipv4 vrf VPN redistribute ospf 10 vrf VPN no synchronization exit-address-family
R2
interface Loopback0 ip address 192.168.0.2 255.255.255.255 ! interface Serial1/0 ip address 192.168.12.2 255.255.255.0 encapsulation ppp mpls ip no peer neighbor-route ! interface Serial1/1 ip address 192.168.23.2 255.255.255.0 encapsulation ppp mpls ip no peer neighbor-route ! router ospf 1 log-adjacency-changes network 192.168.0.0 0.0.255.255 area 0
R3
ip vrf VPN rd 100:100 route-target export 100:100 route-target import 100:100 ! interface Loopback0 ip address 192.168.0.3 255.255.255.255 ! interface FastEthernet0/0 ip vrf forwarding VPN ip address 10.35.35.3 255.255.255.0 duplex auto speed auto ! interface Serial1/0 ip address 192.168.23.3 255.255.255.0 encapsulation ppp mpls ip no peer neighbor-route ! router ospf 10 vrf VPN router-id 3.3.3.3 log-adjacency-changes redistribute bgp 100 subnets network 10.0.0.0 0.255.255.255 area 0 ! router ospf 1 log-adjacency-changes network 192.168.0.0 0.0.255.255 area 0 ! router bgp 100 no synchronization bgp log-neighbor-changes neighbor 192.168.0.1 remote-as 100 neighbor 192.168.0.1 update-source Loopback0 no auto-summary ! address-family vpnv4 neighbor 192.168.0.1 activate neighbor 192.168.0.1 send-community extended exit-address-family ! address-family ipv4 vrf VPN redistribute ospf 10 vrf VPN no synchronization exit-address-family
R4
interface Loopback0 ip address 172.16.4.4 255.255.255.0 ip ospf network point-to-point ! interface FastEthernet0/0 ip address 10.14.14.4 255.255.255.0 ! interface Serial1/0 ip address 172.16.45.4 255.255.255.0 ! router ospf 1 router-id 4.4.4.4 log-adjacency-changes network 10.0.0.0 0.255.255.255 area 0 network 172.16.0.0 0.0.255.255 area 0
R5
interface Loopback0 ip address 172.16.5.5 255.255.255.0 ip ospf network point-to-point ! interface FastEthernet0/0 ip address 10.35.35.5 255.255.255.0 ! interface Serial1/0 ip address 172.16.45.5 255.255.255.0 ! router ospf 1 router-id 5.5.5.5 log-adjacency-changes network 10.0.0.0 0.255.255.255 area 0 network 172.16.0.0 0.0.255.255 area 0
トラブルの症状
R4-R5間の通信は可能ですが、MPLS-VPN経由ではなくT1経由で行われてしまっています。R4のルーティングテーブルとR4からR5の172.16.5.5へのTracerouteの結果は、次のようになります。
R4 show ip route/traceroute
R4#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 172.16.0.0/24 is subnetted, 3 subnets C 172.16.45.0 is directly connected, Serial1/0 C 172.16.4.0 is directly connected, Loopback0 O 172.16.5.0 [110/65] via 172.16.45.5, 00:29:32, Serial1/0 10.0.0.0/24 is subnetted, 2 subnets O 10.35.35.0 [110/65] via 172.16.45.5, 00:29:32, Serial1/0 C 10.14.14.0 is directly connected, FastEthernet0/0 R4#traceroute 172.16.5.5 source 172.16.4.4 Type escape sequence to abort. Tracing the route to 172.16.5.5 1 172.16.45.5 36 msec * 20 msec
R4でSerial1/0をshutdownすると、MPLS-VPN経由で通信ができるようになりました。
R4 show ip route/traceroute(Serial1/0 shutdown)
R4#conf t Enter configuration commands, one per line. End with CNTL/Z. R4(config)#interface serial 1/0 R4(config-if)#shutdown *Mar 1 00:53:58.735: %OSPF-5-ADJCHG: Process 1, Nbr 5.5.5.5 on Serial1/0 from FULL to DOWN, Neighbor Down: Interface down or detached *Mar 1 00:54:00.699: %LINK-5-CHANGED: Interface Serial1/0, changed state to administratively down *Mar 1 00:54:01.699: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial1/0, changed state to down R4(config-if)#end R4# *Mar 1 00:54:05.807: %SYS-5-CONFIG_I: Configured from console by console R4#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 172.16.0.0/24 is subnetted, 3 subnets O IA 172.16.45.0 [110/66] via 10.14.14.1, 00:00:16, FastEthernet0/0 C 172.16.4.0 is directly connected, Loopback0 O IA 172.16.5.0 [110/3] via 10.14.14.1, 00:00:16, FastEthernet0/0 10.0.0.0/24 is subnetted, 2 subnets O IA 10.35.35.0 [110/2] via 10.14.14.1, 00:00:16, FastEthernet0/0 C 10.14.14.0 is directly connected, FastEthernet0/0 R4#traceroute 172.16.5.5 source 172.16.4.4 Type escape sequence to abort. Tracing the route to 172.16.5.5 1 10.14.14.1 36 msec 20 msec 8 msec 2 192.168.12.2 [MPLS: Labels 17/22 Exp 0] 40 msec 60 msec 36 msec 3 10.35.35.3 [MPLS: Label 22 Exp 0] 40 msec 28 msec 32 msec 4 10.35.35.5 60 msec * 48 msec
しかし、Serial1/0をno shutdownでアクティブにすると、やはりR4-R5間の通信はT1回線経由で行わてしまいます。
問題
- なぜR4-R5間の通信は、MPLS-VPN経由ではなくT1回線経由で行われてしまうのですか?
- R4-R5間の通信をMPLS-VPN経由で行うためには、どのような設定をすればよいですか?
解答
なぜR4-R5間の通信は、MPLS-VPN経由ではなくT1回線経由で行われてしまうのですか?
PEルータでは、他の拠点のルートをMP-BGPで別のPEルータから学習するよりも、OSPFでCEルータから学習する方を優先する。そのため、PEルータは他の拠点のルートを接続しているCEルータには送信しない。つまり、CEルータは他の拠点のルートをPEルータから受信できない。その結果、パケットの転送経路はMPLS-VPN経由ではなくなってしまう。
PEルータでアドミニストレイティブディスタンスを調整して、他の拠点のルートを接続しているCEルータに送信できるようにしても、OSPFではエリア間ルートよりもエリア内ルートを優先するので、同じ結果になる。
このような構成で、正常時にMPLS-VPN経由で通信を行うためにはPEルータ間で、OSPF Sham-linkの設定が必要になる。
R4-R5間の通信をMPLS-VPN経由で行うためには、どのような設定をすればよいですか?
R1
interface Loopback10 ip vrf forwarding VPN ip address 192.168.1.1 255.255.255.255 ! router ospf 10 vrf VPN area 0 sham-link 192.168.1.1 192.168.3.3 ! router bgp 100 address-family ipv4 vrf VPN network 192.168.1.1 mask 255.255.255.255 exit-address-family
R3
interface Loopback10 ip vrf forwarding VPN ip address 192.168.3.3 255.255.255.255 ! router ospf 10 vrf VPN area 0 sham-link 192.168.3.3 192.168.1.1 ! router bgp 100 address-family ipv4 vrf VPN network 192.168.3.3 mask 255.255.255.255
ワンポイント
- OSPFではエリア間ルートよりもエリア内ルートを優先する
- Sham-linkによって、MPLS-VPNバックボーンをまたがったOSPFエリアを構成できる
解説
MPLS-VPNで拠点を接続しているとき、CEルータは他の拠点のルートをPEルータから受信します。そのため、他の拠点へパケットをルーティングするときには、PEルータへ転送することになります。ところが、今回の問題のネットワーク構成ではPEルータは接続しているCEルータに他の拠点のルートを送信しなくなってしまいます。
具体的にR5の172.16.5.0/24のルートがどのように送信されるかに注目します。R5は172.16.5.0/24のルートをT1回線経由で直接R4へ送信します。また、PEルータであるR3へも送信します。
※OSPFなので実際にR5から送信されるのはLSAです。
R4は172.16.5.0/24をさらにPEルータのR1へ送信します。また、R3はOSPFルートをMP-BGPルートとして生成します。R3からMP-BGPルートとして、172.16.5.0/24をR1へ送信します。すると、R1は172.16.5.0/24のルートを複数受信することになります。
- R4からOSPFルートとして(AD=110)
- R3からMP-BGPルートとして(AD=200)
R1とR3は同一ASなので、MP-BGPルートはIBGPルートです。R1ではアドミニストレイティブディスタンスにより、172.16.5.0/24のルートはR4から受信したOSPFのルートが最適ルートになります。そのため、R1は172.16.5.0/24のルートをR4に送信することはなくなります。R4は172.16.5.0/24のルートをR5からのみ受信します。R4から172.16.5.0/24へパケットをルーティングするときには、当然、R5へ転送します。
アドミニストレイティブディスタンスを変更して、R1でMP-BGPルートが最適ルートになるようにすれば、R1から172.16.5.0/24のルートをR4へ転送できます。ですが、それでもR4から172.16.5.0/24へパケットをルーティングするときは、MPLS-VPN経由にはなりません。
R1からR4へ送信する172.16.5.0/24はエリア間ルートです。MPLS-VPN経由のOSPFルートは、エリア間ルートになります。そして、R5からR4へ送信する172.16.5.0/24はエリア内ルートです。OSPFでは、エリア間ルートよりもエリア内ルートをコストに関係なく優先します。そのため、R4で172.16.5.0/24の最適ルートはR5から受信したものになります。R4は172.16.5.0/24あてのパケットをR5へ転送します。
R5の172.16.5.0/24について考えていますが、同じことがR4の172.16.4.0/24にも当てはまります。拠点間の通信は、MPLS-VPN経由ではなくバックアップ用のT1回線経由で行われてしまいます。これを解消するためには、OSPF Sham-linkの設定が必要です。
Sham-linkによって、PEルータ間を仮想的なOSPFのポイントツーポイントネットワークで接続します。これにより、MPLS-VPNバックボーンをまたがったOSPFエリアを構成することができます。R1とR3でエリア0のSham-linkを設定すれば、MPLS-VPNバックボーンをまたがったOSPFエリア0を構成できます。各拠点のルートは、エリア内ルートになるのでコストによって最適ルートを選択することができます。Sham-linkはデフォルトでコスト1です。T1回線はコスト64なので、R4はコストを比較して、R1から受信した172.16.5.0/24のルートを最適ルートとします。その結果、R4から172.16.5.0/24へパケットをルーティングするときには、R1へ転送し、MPLS-VPN経由で通信が行われます。
R1とR3でのSham-linkの設定は、解答にあげているとおりです。Sham-linkを設定したあと、R1で次のコマンドでSham-linkを確認します。
- show ip ospf 10 sham-links
- show ip ospf 10 neighbor
R1 show ip ospf 10 sham-links/show ip ospf 10 neighbor
R1#show ip ospf 10 sham-links Sham Link OSPF_SL1 to address 192.168.3.3 is up Area 0 source address 192.168.1.1 Run as demand circuit DoNotAge LSA allowed. Cost of using 1 State POINT_TO_POINT, Timer intervals configured, Hello 10, Dead 40, Wait 40, Hello due in 00:00:09 Adjacency State FULL (Hello suppressed) Index 2/2, retransmission queue length 0, number of retransmission 0 First 0x0(0)/0x0(0) Next 0x0(0)/0x0(0) Last retransmission scan length is 0, maximum is 0 Last retransmission scan time is 0 msec, maximum is 0 msec R1#show ip ospf 10 neighbor Neighbor ID Pri State Dead Time Address Interface 3.3.3.3 0 FULL/ - - 192.168.3.3 OSPF_SL1 4.4.4.4 1 FULL/DR 00:00:36 10.14.14.4 FastEthernet0/0
これを見ると、OSPF_SL1というSham-linkのインタフェース上でR1とR3がネイバーとなっていることがわかります。つまり、R1とR3はSham-linkを通じて、同一エリア(エリア0)に接続されています。Sham-linkのインタフェースはコスト1であることもわかります。また、R1のVRF「VPN」のルーティングテーブルは、次のようになります。
R1 show ip route vrf VPN
R1#show ip route vrf VPN Routing Table: VPN 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 172.16.0.0/24 is subnetted, 3 subnets O 172.16.45.0 [110/65] via 10.14.14.4, 01:01:00, FastEthernet0/0 O 172.16.4.0 [110/2] via 10.14.14.4, 01:01:00, FastEthernet0/0 O 172.16.5.0 [110/3] via 192.168.0.3, 01:01:00 10.0.0.0/24 is subnetted, 2 subnets O 10.35.35.0 [110/2] via 192.168.0.3, 01:01:00 C 10.14.14.0 is directly connected, FastEthernet0/0 192.168.1.0/32 is subnetted, 1 subnets C 192.168.1.1 is directly connected, Loopback10 192.168.3.0/32 is subnetted, 1 subnets B 192.168.3.3 [200/0] via 192.168.0.3, 01:01:14
また、R4のルーティングテーブルは次の通りです。
R4 show ip route
R4#show ip route ~省略~ Gateway of last resort is not set 172.16.0.0/24 is subnetted, 3 subnets C 172.16.45.0 is directly connected, Serial1/0 C 172.16.4.0 is directly connected, Loopback0 O 172.16.5.0 [110/4] via 10.14.14.1, 01:02:23, FastEthernet0/0 10.0.0.0/24 is subnetted, 2 subnets O 10.35.35.0 [110/3] via 10.14.14.1, 01:02:23, FastEthernet0/0 C 10.14.14.0 is directly connected, FastEthernet0/0 192.168.1.0/32 is subnetted, 1 subnets O E2 192.168.1.1 [110/1] via 10.14.14.1, 01:02:23, FastEthernet0/0 192.168.3.0/32 is subnetted, 1 subnets O E2 192.168.3.3 [110/1] via 10.14.14.1, 01:02:23, FastEthernet0/0
172.16.5.0/24の最適ルートはR1から受信したものになっています。R4から172.16.5.5へトレースルートを行うと、MPLS-VPNを経由していることがわかります。
R4 traceroute
R4#traceroute 172.16.5.5 source 172.16.4.4 Type escape sequence to abort. Tracing the route to 172.16.5.5 1 10.14.14.1 20 msec 20 msec 4 msec 2 192.168.12.2 [MPLS: Labels 17/22 Exp 0] 40 msec 8 msec 20 msec 3 10.35.35.3 [MPLS: Label 22 Exp 0] 24 msec 16 msec 16 msec 4 10.35.35.5 16 msec * 52 msec
MPLS/MPLS-VPN
- MPLSラベルスイッチングの設定と確認コマンド[Cisco]
- MPLSによるラベルスイッチングの設定例 [Cisco]
- MPLSによるトランジットASの構成
- MPLS 設定ミスの切り分けと修正 Part1
- MPLS 設定ミスの切り分けと修正 Part2
- MPLS-VPNの設定例 フルメッシュ(Any-to-Any)
- MPLS-VPNの設定例 エクストラネットVPN
- MPLS-VPNの設定例 セントラルサービスVPN
- MPLS-VPNの設定例 ハブ&スポークVPN
- OSPF Sham-linkの概要
- OSPF Sham-linkの設定
- MPLS-VPN 設定ミスの切り分けと修正 Part1
- MPLS-VPN 設定ミスの切り分けと修正 Part2
- MPLS-VPN 設定ミスの切り分けと修正 Part3
- MPLS-VPN 設定ミスの切り分けと修正 Part4
- MPLS-VPN 設定ミスの切り分けと修正 Part5
- MPLS-VPN 設定ミスの切り分けと修正 Part6