Inter-Autonomous System Mpls VPN: Configuration and Troubleshooting
Inter-Autonomous System Mpls VPN: Configuration and Troubleshooting
Inter-Autonomous System Mpls VPN: Configuration and Troubleshooting
DECEMBER 2003
Agenda
Troubleshooting Commands Inter-AS Case Study Inter-AS Summary
Troubleshooting Commands
Check VRF routing table
show ip route vrf <vrf name> Check the imported route and associated NH address
CASE STUDY
Introduction
Case study scenario Setup
Topology
AS 300 AS 200
Route with * disallowed from crossing AS (does not hold RT 200:777)
VPNv4 Route Distribution between ASs vrf emerald 31.1.1.0 PE-200 eBGP Backup ASBR-B300
Accept all routes Redistribute connected subnets Set MED = 100
PE-300
ASBR-A300
ASBR-A200
Only accept routes with RT = 200:777 Set next-hop = self Set MED = 50
ASBR-B300 LO0 FA0/0 POS4/0 ATM1/0 156.50.10.2/32 3.3.3.5/30 1.1.1.6/30 3.3.3.2/30 ASBR-A300 LO0 POS8/0/0 ATM8/1/0 156.50.10.1/32 1.1.1.2/30 3.3.3.1/30 LO0 POS1/0/0 ATM1/1/0 ASBR-A200 166.50.10.1/32 1.1.1.1/30 2.2.2.1/30 LO0 FA0/0
POS4/0 ATM1/0
10
Redistribute-Connected-Subnets
Redistributing the next hop address of the remote ASBR into the local IGP using redistribute connected subnets command Example: BGP label and next hop is not changed when the VPNv4 routes are redistributed into the local AS
Both methods will be used in this case study. ASBR in AS200 will change NH to themselves. ASBRs in AS300 will use host route to NH address of ASBR in AS200.
11
12
AS 300
Network: 300:1:30.1.1.0 156.50.10.3 Next-hop: PE-300 BGP Label: 161
AS 200
Network: 300:1:30.1.1.0 Next-hop:
PE-300
PE-200
166.50.10.1 ABSR-A200
BGP Label: 23
1
ASBR-B300 ASBR-B200
ASBR-A300
ASBR-A200
2 3
13
routes learnt from the other ASBR. Sample config for ASBR-A200:
address-family vpnv4 neighbor 1.1.1.2 activate neighbor 1.1.1.2 send-community extended neighbor 1.1.1.2 route-map SETMETRIC out neighbor 166.50.10.3 activate neighbor 166.50.10.3 next-hop-self (! neighbor 166.50.10.3 send-community extended neighbor 166.50.10.3 route-map INTER-AS in exit-address-family ! ip extcommunity-list 10 permit rt 200:777 ! access-list 1 permit any route-map SETMETRIC permit 10 match ip address 1 set metric 50 ! route-map INTER-AS permit 10 match extcommunity 10
MPLS VPN Inter-AS, 12/03
2003 Cisco Systems, Inc. All rights reserved.
PE-200 peer)
14
AS 200
Network: 200:1:20.1.1.0 Next-hop:
PE-300
PE-200
166.50.10.3 PE-200
BGP Label: 29
5
ASBR-B300 ASBR-B200
1.1.1.2
1.1.1.1
BGP Label: 20
ASBR-A300
ASBR-A200
2 3
BGP Label: 20
15
Network: 300:1:30.1.1.0 Network: 300:1:30.1.1.0 156.50.10.3 Next-hop: PE-300 BGP Label: 161 Next-hop: 166.50.10.1 ABSR-A200
AS 300
AS 200
PE-200
PE-300
Network: 300:1:30.1.1.0 156.50.10.3 Next-hop: PE-300 BGP Label: 161 IGP Label: Pop
Network: 300:1:30.1.1.0
ASBR-B300
ASBR-B200
Next-hop:
166.50.10.1 ABSR-A200
2
Network: 300:1:30.1.1.0 156.50.10.3 Next-hop: PE-300 BGP Label: 161 IGP Label: 162 1.1.1.2 1.1.1.1 Network: 300:1:30.1.1.0 166.50.10.1 Next-hop: ASBR-A200 BGP Label: 23
ASBR-A300
ASBR-A200
3 4
16
AS 300
AS 200
PE-200
BGP Label: 29
PE-300
Network: 200:1:20.1.1.0
ASBR-B300
ASBR-B200
Next-hop:
166.50.10.3 PE-200
Network: 200:1:20.1.1.0 1.1.1.1 Next-hop: ASBR-A200 BGP Label: 20 IGP Label: Pop
1.1.1.2
1.1.1.1
Next-hop:
166.50.10.3 PE-200
ASBR-A300
ASBR-A200
5 4
BGP Label: 20
17
This section verifies that the backup path works correctly if the primary path fails
Simple test was executed with traffic originating from PE300 traveling to PE200
18
19
20
PE-200 configuration
PE-300 VPNv4 BGP Table
21
AS 300
AS 200
Route with * disallowed from crossing AS (does not hold RT 777:1 or RT 777:2) Via gateway 1
PE-200
ASBR-A300
ASBR-A200
Only accept routes with RT = 777:1 or 777:2 Set next-hop = self Set MED = 50 if RT 777:1 MED=100 if RT 777:2
22
Load Balancing VPNv4 Prefixes Across the Inter-AS Paths: Goals and Specs
Goal: load balance VPNv4 prefixes across both Inter-AS links from AS300 to AS200. Note that there are two paths:
Gateway 1 (path between ASBR-A200 and ASBR-A300): only VRF green traffic Gateway 2 (path between ASBR-B200 & ASBR-B300): only VRF emerald traffic
ASBR-A200: accept routes only from VRF green
If load balancing is required in both directions, mirror ASBR-A200 configuration on ASBR-A300 and ASBRB200 configuration on ASBR-B300
MPLS VPN Inter-AS, 12/03
23
Route-target = 777:2
Primary: Gateway 2; prefix: MED=50
Gateways have both been configured to accept only VPNv4 routes that have the extcommunity attribute 777:1 or 777:2
MPLS VPN Inter-AS, 12/03 24
Re d
Pin k
*should see the red routes via 1.1.1.1 and the pink routes via 1.1.1.5
MPLS VPN Inter-AS, 12/03
25
access-list 10 permit 20.1.1.0 0.0.0.55 route-map OUT-INTER-AS permit 10 match ip address 10 set extcommunity rt 777:1 additive !
MPLS VPN Inter-AS, 12/03
26
777:1 or 777:2
27
Load Balancing Across the Inter-AS Paths: PE-300 VPNv4 BGP Table
PE-300#show ip bgp vpnv4 all
BGP table version is 99, local router ID is 156.50.10.3 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path Route Distinguisher: 200:1 *>i20.1.1.0/24 1.1.1.1 50 100 0 200 ? * i 1.1.1.5 100 100 0 200 ? Route Distinguisher: 200:2 * i21.1.1.0/24 1.1.1.1 100 100 0 200 ? *>i 1.1.1.5 50 100 0 200 ? * i21.2.1.0/24 1.1.1.1 100 100 0 200 ? *>i 1.1.1.5 50 100 0 200 ? Route Distinguisher: 300:1 (default for vrf green) *>i20.1.1.0/24 1.1.1.1 50 100 0 200 ? Via ASBR-A200 *> 30.1.1.0/24 0.0.0.0 0 32768 ? Route Distinguisher: 300:2 (default for vrf emerald) *>i21.1.1.0/24 1.1.1.5 50 100 0 200 ? Via ASBR-B200 *>i21.2.1.0/24 1.1.1.5 50 100 0 200 ? Via ASBR-B200 *> 31.1.1.0/24 0.0.0.0 0 32768 ?
Note: BGP VPNv4 table on PE-300 after the VPNv4 routes from AS 200 have been redistributed using the new route-targets and MED values. As can be seen, the best routes have been chosen and imported into the green and emerald VRFs using the lowest metric (MED) the next hop being either 1.1.1.1 or 1.1.1.5. MPLS VPN Inter-AS,
12/03
2003 Cisco Systems, Inc. All rights reserved.
28
Configurations
ASBR-A200 ASBR-A300
ASBR-B200
ASBR-B300 PE-200
PE-300
29
Configurations: ASBR-A200
hostname ABSR-A200 ! logging rate-limit console 10 except errors ! ip subnet-zero no ip finger no ip domain-lookup ! ip cef distributed call rsvp-sync cns event-service server ! interface Loopback0 ip address 166.50.10.1 255.255.255.255 ! interface ATM1/0/0 ip address 2.2.2.1 255.255.255.252 ip route-cache distributed ip ospf network point-to-point no atm ilmi-keepalive pvc 1/102 broadcast encapsulation aal5snap ! tag-switching ip ! interface POS1/1/0 ip address 1.1.1.1 255.255.255.252 ip route-cache distributed clock source internal pos ais-shut pos report lais pos report lrdi ! router ospf 200 log-adjacency-changes network 2.2.2.0 0.0.0.255 area 0 network 166.50.10.0 0.0.0.255 area 0 ! router bgp 200 no synchronization no bgp default ipv4-unicast no bgp default route-target filter bgp log-neighbor-changes neighbor 1.1.1.2 remote-as 300 neighbor 166.50.10.3 remote-as 200 neighbor 166.50.10.3 update-source Loopback0 ! address-family vpnv4 neighbor 1.1.1.2 activate ! neighbor 1.1.1.2 send-community extended neighbor 1.1.1.2 route-map SETMETRIC out neighbor 166.50.10.3 activate neighbor 166.50.10.3 next-hop-self neighbor 166.50.10.3 send-community extended neighbor 166.50.10.3 route-map INTER-AS in exit-address-family ! ip kerberos source-interface any ip classless no ip http server ip extcommunity-list 10 permit rt 200:777 ! access-list 1 permit any route-map SETMETRIC permit 10 match ip address 1 set metric 50 ! route-map INTER-AS permit 10 match extcommunity 10 ! end
30
Configurations: ASBR-A300
hostname ABSR-A300 ! logging rate-limit console 10 except errors ! ip subnet-zero no ip finger no ip domain-lookup ! ip cef distributed tag-switching tag-range downstream 160 1000 0 call rsvp-sync cns event-service server ! interface Loopback0 ip address 156.50.10.1 255.255.255.255 ! interface ATM8/0/0 ip address 3.3.3.1 255.255.255.252 ip route-cache distributed ip ospf network point-to-point no atm ilmi-keepalive pvc 1/102 broadcast encapsulation aal5snap ! tag-switching ip ! interface POS8/1/0 ip address 1.1.1.2 255.255.255.252 ip route-cache distributed pos ais-shut pos report lais pos report lrdi ! ! router ospf 300 log-adjacency-changes redistribute connected subnets network 3.3.3.0 0.0.0.3 area 0 network 156.50.10.0 0.0.0.255 area 0 ! router bgp 300 no synchronization no bgp default ipv4-unicast no bgp default route-target filter bgp log-neighbor-changes neighbor 1.1.1.1 remote-as 200 neighbor 156.50.10.3 remote-as 300 neighbor 156.50.10.3 update-source Loopback0 ! address-family vpnv4 neighbor 1.1.1.1 activate neighbor 1.1.1.1 send-community extended neighbor 1.1.1.1 route-map SETMETRIC out neighbor 156.50.10.3 activate neighbor 156.50.10.3 send-community extended bgp scan-time 10 bgp scan-time import 10 exit-address-family ! ip kerberos source-interface any ip classless no ip http server ! access-list 1 permit any route-map SETMETRIC permit 10 match ip address 1 set metric 50
31
Configurations: ASBR-B200
hostname ABSR-B200 ! boot system disk0:c7200-js-mz.121-5.T8.bin logging rate-limit console 10 except errors enable password cisco ! ip subnet-zero ! no ip finger no ip domain-lookup ! ip cef call rsvp-sync cns event-service server ! interface Loopback0 ip address 166.50.10.2 255.255.255.255 ! interface FastEthernet0/0 ip address 2.2.2.5 255.255.255.252 duplex full tag-switching ip ! interface ATM3/0 ip address 2.2.2.2 255.255.255.252 ip ospf network point-to-point no atm ilmi-keepalive pvc 1/102 broadcast encapsulation aal5snap ! tag-switching ip ! interface POS4/0 ip address 1.1.1.5 255.255.255.252 no ip route-cache cef clock source internal ! ! interface FastEthernet6/0 ip address 10.64.37.50 255.255.255.0 duplex full ! router ospf 200 log-adjacency-changes network 2.2.2.0 0.0.0.255 area 0 network 166.50.10.0 0.0.0.255 area 0 ! router bgp 200 no synchronization no bgp default ipv4-unicast no bgp default route-target filter bgp log-neighbor-changes neighbor 1.1.1.6 remote-as 300 neighbor 166.50.10.3 remote-as 200 neighbor 166.50.10.3 update-source Loopback0 ! address-family vpnv4 neighbor 1.1.1.6 activate neighbor 1.1.1.6 send-community extended neighbor 1.1.1.6 route-map SETMETRIC out neighbor 166.50.10.3 activate neighbor 166.50.10.3 next-hop-self neighbor 166.50.10.3 send-community extended neighbor 166.50.10.3 route-map INTER-AS in exit-address-family ! ip kerberos source-interface any ip classless no ip http server ip extcommunity-list 10 permit rt 200:777 ! access-list 1 permit any route-map SETMETRIC permit 10 match ip address 1 set metric 100 ! route-map INTER-AS permit 10 match extcommunity 10 ! end
32
Configurations: ASBR-B300
hostname ABSR-B300 ! boot system disk0:c7200-js-mz.121-5.T8.bin logging rate-limit console 10 except errors enable password cisco ! ip subnet-zero ! ! no ip finger no ip domain-lookup ! ip cef tag-switching tag-range downstream 160 1000 0 call rsvp-sync cns event-service server ! interface Loopback0 ip address 156.50.10.2 255.255.255.255 ! interface FastEthernet0/0 ip address 3.3.3.5 255.255.255.252 duplex full tag-switching ip ! interface ATM3/0 ip address 3.3.3.2 255.255.255.252 ip ospf network point-to-point no atm ilmi-keepalive pvc 1/102 broadcast encapsulation aal5snap ! tag-switching ip ! interface POS4/0 ip address 1.1.1.6 255.255.255.252 no ip route-cache cef ! router ospf 300 log-adjacency-changes redistribute connected subnets network 3.3.3.0 0.0.0.3 area 0 network 3.3.3.4 0.0.0.3 area 0 network 156.50.10.0 0.0.0.255 area 0 ! router bgp 300 no synchronization no bgp default ipv4-unicast no bgp default route-target filter bgp log-neighbor-changes neighbor 1.1.1.5 remote-as 200 neighbor 156.50.10.3 remote-as 300 neighbor 156.50.10.3 update-source Loopback0 ! address-family vpnv4 neighbor 1.1.1.5 activate neighbor 1.1.1.5 send-community extended neighbor 1.1.1.5 route-map SETMETRIC out neighbor 156.50.10.3 activate neighbor 156.50.10.3 send-community extended bgp scan-time 10 bgp scan-time import 10 exit-address-family ! ip kerberos source-interface any ip classless no ip http server ! access-list 1 permit any route-map SETMETRIC permit 10 match ip address 1 set metric 100 ! end
33
Configurations: PE-200
hostname PE-200 ! boot system disk0:c7200-js-mz.121-5c.E8.bin ! ip subnet-zero ! ip vrf pink rd 200:2 route-target export 200:2 route-target export 200:777 route-target import 200:2 route-target import 300:2 ! ip vrf red rd 200:1 export map OUT-INTER-AS route-target export 200:1 route-target import 200:1 route-target import 300:1 ip cef tag-switching tdp router-id Loopback0 cns event-service server ! interface Loopback0 ip address 166.50.10.3 255.255.255.255 ! interface Loopback10 ip vrf forwarding red ip address 20.1.1.1 255.255.255.0 ! interface Loopback11 ip vrf forwarding pink ip address 21.1.1.1 255.255.255.0 ! interface FastEthernet4/0 ip address 2.2.2.6 255.255.255.252 no ip route-cache cef duplex full tag-switching ip ! router ospf 200 log-adjacency-changes network 2.2.2.0 0.0.0.255 area 0 network 166.50.10.0 0.0.0.255 area 0 router bgp 200 no synchronization no bgp default ipv4-unicast bgp log-neighbor-changes neighbor 166.50.10.1 remote-as 200 neighbor 166.50.10.1 update-source Loopback0 neighbor 166.50.10.2 remote-as 200 neighbor 166.50.10.2 update-source Loopback0 default-information originate ! address-family ipv4 vrf red redistribute connected redistribute static no auto-summary no synchronization exit-address-family ! address-family ipv4 vrf pink redistribute connected redistribute static default-information originate no auto-summary no synchronization exit-address-family ! address-family vpnv4 neighbor 166.50.10.1 activate neighbor 166.50.10.1 send-community extended neighbor 166.50.10.2 activate neighbor 166.50.10.2 send-community extended default-information originate exit-address-family ! ip classless ip route vrf red 20.2.1.0 255.255.255.0 Loopback10 20.1.1.2 ip route vrf pink 21.2.1.0 255.255.255.0 Loopback11 21.1.1.2 no ip http server ! access-list 10 permit 20.1.1.0 0.0.0.55 route-map OUT-INTER-AS permit 10 match ip address 10 set extcommunity rt 200:777 additive ! end
34
Configurations: PE-300
hostname PE-300 ! ip subnet-zero ! no ip finger no ip domain-lookup ! ip vrf emerald rd 300:2 route-target export 300:2 route-target import 300:2 route-target import 200:2 ! ip vrf green rd 300:1 route-target export 300:1 route-target import 300:1 route-target import 200:1 ip cef tag-switching tag-range downstream 160 1000 0 cns event-service server ! interface Loopback0 ip address 156.50.10.3 255.255.255.255 ! interface Loopback10 ip vrf forwarding green ip address 30.1.1.1 255.255.255.0 ! interface Loopback11 ip vrf forwarding emerald ip address 31.1.1.1 255.255.255.0 ! interface ATM1/0 no ip address no ip route-cache cef no atm ilmi-keepalive ! interface FastEthernet4/0 ip address 3.3.3.6 255.255.255.252 duplex full tag-switching ip ! router ospf 300 log-adjacency-changes network 3.3.3.4 0.0.0.3 area 0 network 156.50.10.0 0.0.0.255 area 0 ! router bgp 300 no synchronization no bgp default ipv4-unicast bgp log-neighbor-changes neighbor 156.50.10.1 remote-as 300 neighbor 156.50.10.1 update-source Loopback0 neighbor 156.50.10.2 remote-as 300 neighbor 156.50.10.2 update-source Loopback0 ! address-family ipv4 vrf green redistribute connected no auto-summary no synchronization exit-address-family ! address-family ipv4 vrf emerald redistribute connected no auto-summary no synchronization exit-address-family ! address-family vpnv4 neighbor 156.50.10.1 activate neighbor 156.50.10.1 send-community extended neighbor 156.50.10.2 activate neighbor 156.50.10.2 send-community extended bgp scan-time 15 bgp scan-time import 10 exit-address-family ! ip classless no ip http server ! tftp-server disk0:c7200-js-mz.121-5c.E8.bin ! end
35
INTER-AS SUMMARY
36
Inter-AS Summary
Service Providers have deployed Inter-AS for:
Scalability purposes Partitioning the network based on services or management boundaries
Some contract work is in progress amongst Service Providers to establish partnership and offer end-end VPN services to the common customer base Service Provider networks are completely separate
Do not need to exchange internal prefix or label information
Each Service Provider establishes a direct MP-eBGP session with the others to exchange VPN-IPv4 addresses with labels /32 route to reach the ASBR is created by default so ASBRs can communicate without a need for IGP
Must be redistributed in the receiving Service Providers IGP
MPLS VPN Inter-AS, 12/03
2003 Cisco Systems, Inc. All rights reserved.
37
Interface used to establish MP-eBGP session does not need to be associated with a VRF
Direct eBGP routes and labels can be exchanged. Next-Hop self can be turned on on ASBRs, enabling the ASBR to use its own address for next-hop Using the next-hop self requires an additional entry in the TFIB for each VPNv4 route (about 180) bytes
If the Service Provider wishes to hide the Inter-AS link then use the next-hop-self method otherwise use the redistribute connected subnets method
MPLS VPN Inter-AS, 12/03
2003 Cisco Systems, Inc. All rights reserved.
38
39
References
Inter-AS for MPLS VPNs CCO Documentation:
www.cisco.com/univercd/cc/td/doc/product/software/ios121/ 121newft/121t/121t5/interas.htm
Support for Inter-provider MPLS VPN ENG-48803 Dan Tappan, (internal only)
40
41