PE-CE OSPF routingにはMP BGP網経由のルーティングループを防ぐ仕組みが備わっています。このループ防止機能はデフォルトで有効になっており、時にはこの機能が裏目に出て疎通不能を引き起こしてしまう事もあります。
概要
PE-CE OSPF routingにはMP BGP網経由のルーティングループを防ぐ仕組みが備わっています。このループ防止機能はデフォルトで有効になっており、時にはこの機能が裏目に出て疎通不能を引き起こしてしまう事もあります。疎通不能になってしまった場合は、capability vrf-liteコマンドを投入する事でループ防止機能を無効にする事ができます。
コマンド一覧
このシナリオで重要なコマンド一覧は以下の通りです。
Router(config)# router ospf <proc> vrf <vrf> Router(config-router)# capability vrf-lite
構成図
以下の構成で動作確認を行います。PEルータ間は予めMPLS neighborおよびbgp vpnv4 neighborが確立されています。
OSPF area 0 OSPF area 1 OSPF area 1 <-----------><------------------> <---------------------------> VPN VPN VPN VPN e0/1 e0/0 e0/1 e0/0 e0/1 e0/0 e0/1 e0/0 .1+--------+.1 .2+--------+.2 .3+--------+.3 .4+--------+.4 ----+ CE1 +----------+ PE2 +----------+ PE3 +----------+ CE4 +---- +--------+ +--------+ +--------+ +--------+ 192.168.1.0/24 192.168.12.0/24 155.1.23.0/24 192.168.34.0/24 192.168.4.0/24 CE1 Loopback0 PE2 Loopback0 PE3 Loopback0 PE4 Loopback0 10.1.1.1/32 150.1.2.2/32 150.1.3.3/32 10.4.4.4/32
[CE1] <omitted> [PE2] interface Ethernet0/0 ip address 155.1.23.2 255.255.255.0 mpls ip ! interface Ethernet0/1 ip vrf forwarding VPN ip address 192.168.12.2 255.255.255.0 ! router ospf 1234 vrf VPN log-adjacency-changes network 192.168.12.2 0.0.0.0 area 1 ! router ospf 1 log-adjacency-changes network 150.1.2.2 0.0.0.0 area 0 network 155.1.23.2 0.0.0.0 area 0 ! router bgp 100 no bgp default ipv4-unicast bgp log-neighbor-changes neighbor 150.1.3.3 remote-as 100 neighbor 150.1.3.3 update-source Loopback0 ! address-family vpnv4 neighbor 150.1.3.3 activate neighbor 150.1.3.3 send-community extended exit-address-family ! address-family ipv4 vrf VPN no synchronization exit-address-family [CE3] <omitted> [CE4] <omitted>
設定全文は下記ファイルです。詳細設定は下記を参照ください。
仕様説明
概要
PE-CE OSPF routingにはMP BGP網経由のルーティングループを防ぐ仕組みが備わっています。この機能を無効化するコマンドがcapability vrf-liteです。
capability vrf-lite on CE router
PEルータがMP BGPからOSPFへprefixをredistributeする際に、Down bitを付与します。このDown bitはルーティングループの潜在的な危険性が存在する事を意味します。Down bitが付与されているかどうかは、show ip ospf databaseコマンドで、Downwardが付与されているかどうかで確認する事ができます。
PE3#show ip ospf 1234 database summary 10.1.1.1 OSPF Router with ID (192.168.34.3) (Process ID 1234) Summary Net Link States (Area 1) LS age: 639 Options: (No TOS-capability, DC, Downward) LS Type: Summary Links(Network) Link State ID: 10.1.1.1 (summary Network Number) Advertising Router: 192.168.34.3 LS Seq Number: 80000001 Checksum: 0xBF56 Length: 28 Network Mask: /32 TOS: 0 Metric: 11 PE3#
Down bitが付与されたLSAをvrfが設定されたinterfaceから受信した場合は、そのprefixはルーティングループの危険性があるとの判断でルーティングテーブルに載りません。この挙動を打ち消しルーティングテーブルにDown bitつきのLSAを乗せたい場合は、以下のコマンドをCEルータに投入します。
Router(config)# router ospf <proc> vrf <vrf> Router(config-router)# capability vrf-lite
capability vrf-lite on PE router
PEルータはMP BGP網経由のルーティングループを防ぐため、以下の動作をします。
- MP BGP経由で伝わってきたprefixのdomain-idと自身のdomain-idを比較し、そのprefixをinter areaとして取り扱うのかexternal areaとして取り扱うのかを決めます。
- MP BGPからOSPFへ再配送する際にdown bitを付与します。
- area 0のsummary prefixをadvertiseしないようにします。
PEルータにcapability vrf-liteを投入すると、これらループ防止機能を全て無効化する事ができます。virtual-linkを設定しなくてもcapability vrf-liteによりarea 0, supper backbone間を接続できるのは、この3番目の機能が無効化されるためです。
PE-CE OSPF routing
設定投入
PE-CE間で、OSPF routingを定義します。
[PE2] router bgp 100 address-family ipv4 vrf VPN redistribute ospf 1234 match internal external 2 ! router ospf 1234 vrf VPN redistribute bgp 100 subnets [PE3] router bgp 100 address-family ipv4 vrf VPN redistribute ospf 1234 match internal external 2 ! router ospf 1234 vrf VPN redistribute bgp 100 subnets
動作確認
CEルータ間での疎通はできませんが、PEルータ間の疎通が可能になった事を確認します。
[PE2] PE2#ping vrf VPN 192.168.34.3 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.34.3, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 20/39/72 ms PE2# [CE1] CE1#ping 10.4.4.4 source 10.1.1.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 10.4.4.4, timeout is 2 seconds: Packet sent with a source address of 10.1.1.1 ... Success rate is 0 percent (0/3) CE1#
capability vrf-lite on CE router
デフォルトの動作確認
CE4のルーティングテーブルを見ると、summary LSAを受信しているもののルーティングテーブルにOSPFエントリがひとつも存在しません。これはvrfが設定されているinterfaceからDownbitが付与されたLSAを受信したためです。LSAをよく観察すると、”Downward”と記載されている事が読み取れます。
[CE4] CE4#show ip ospf 1234 database summary 10.1.1.1 OSPF Router with ID (10.4.4.4) (Process ID 1234) Summary Net Link States (Area 1) LS age: 74 Options: (No TOS-capability, DC, Downward) LS Type: Summary Links(Network) Link State ID: 10.1.1.1 (summary Network Number) Advertising Router: 192.168.34.3 LS Seq Number: 80000001 Checksum: 0xBF56 Length: 28 Network Mask: /32 TOS: 0 Metric: 11 CE4# CE4#show ip route vrf VPN ospf Routing Table: VPN CE4#
設定投入
CE4において、capability vrf-liteを入力し、down bitつきLSAをルーティングテーブルに載せる事を許可します。
[CE4] router ospf 1234 vrf VPN capability vrf-lite
動作確認
CEルータ間で疎通可能になった事を確認します。
[CE1] CE4#show ip route vrf VPN ospf Routing Table: VPN O IA 192.168.12.0/24 [110/11] via 192.168.34.3, 00:01:06, Ethernet0/1 10.0.0.0/32 is subnetted, 2 subnets O IA 10.1.1.1 [110/21] via 192.168.34.3, 00:01:06, Ethernet0/1 CE4# CE4#ping vrf VPN 10.1.1.1 source 10.4.4.4 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 10.1.1.1, timeout is 2 seconds: Packet sent with a source address of 10.4.4.4 !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 88/91/96 ms CE4#
capability vrf-lite on PE router
設定投入
area 0, supper backbone間接続はvirtual-linkを使用するのが理解しやすいシンプルな構成であると思いますが、仕様理解のために敢えてvrf-liteによるarea 0, supper backbone間の接続を試みます。PE2にcapability vrf-liteを投入します。
[PE2] router ospf 1234 vrf VPN capability vrf-lite
動作確認
PE2のcapability vrf-liteの有効化(ループ防止無効化)により、area 0 prefix(192.168.1.0/24)がルーティングテーブルに載るようになった事を確認できます。
[PE2] PE2#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 C 192.168.12.0/24 is directly connected, Ethernet0/1 B 192.168.4.0/24 [200/20] via 150.1.3.3, 00:06:49 10.0.0.0/32 is subnetted, 2 subnets O 10.1.1.1 [110/11] via 192.168.12.1, 00:00:00, Ethernet0/1 B 10.4.4.4 [200/11] via 150.1.3.3, 00:06:49 B 192.168.34.0/24 [200/0] via 150.1.3.3, 00:11:29 O IA 192.168.1.0/24 [110/20] via 192.168.12.1, 00:00:00, Ethernet0/1 PE2#
OSPF area 0(192.168.1.1)を介した通信が可能になった事を確認します。また、domain-idが一致しているかどうかのチェックが無効になった事によって、MP BGP経由で伝わったprefixが全てexternal areaとして取り扱われるようになった事も読み取れます。
[CE1] CE1#ping 192.168.4.4 source 192.168.1.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.4.4, timeout is 2 seconds: Packet sent with a source address of 192.168.1.1 !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 60/79/104 ms CE1# CE1#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 C 192.168.12.0/24 is directly connected, Ethernet0/0 O E2 192.168.4.0/24 [110/20] via 192.168.12.2, 00:02:32, Ethernet0/0 10.0.0.0/32 is subnetted, 2 subnets C 10.1.1.1 is directly connected, Loopback0 O E2 10.4.4.4 [110/11] via 192.168.12.2, 00:02:32, Ethernet0/0 O E2 192.168.34.0/24 [110/1] via 192.168.12.2, 00:02:32, Ethernet0/0 C 192.168.1.0/24 is directly connected, Ethernet0/1 CE1#