Scenario
This comparison shows an MPLS Inter-AS Option C setup as follows:
This setup shows both the ASBRs and the Route Reflectors with the following conditions:
- An eBGP VPNv4 multi-hop session is configured between the route-reflectors.
- An eBGP IPv4 session, with labels, is configured between the ASBRs.
- The loopback from the opposing AS are redistributed into the local OSPF IGP.
- Templates and Neighbor groups are used on the route-reflector.
- MPLS LDP autoconfig and LDP IGP Sync are used.
- Only host routes have labels assigned for the IGP and a label range has been configured.
For more information on how Inter-AS options work, including Option C, see this document.
IOS Config – ASBR
hostname ASBR1 ! mpls label range 1000 1999 mpls ldp label allocate global host-routes ! ! interface Loopback0 ip address 1.1.1.1 255.255.255.255 ip ospf 1 area 0 ! interface GigabitEthernet1.122 encapsulation dot1Q 122 ip address 10.1.22.1 255.255.255.0 mpls bgp forwarding ! router ospf 1 router-id 1.1.1.1 log-adjacency-changes detail redistribute bgp 100 subnets passive-interface Loopback0 mpls ldp sync mpls ldp autoconfig ! router bgp 100 bgp router-id 1.1.1.1 bgp log-neighbor-changes no bgp default ipv4-unicast neighbor 5.5.5.5 remote-as 100 neighbor 5.5.5.5 update-source Loopback0 neighbor 10.1.22.22 remote-as 200 ! address-family ipv4 network 1.1.1.1 mask 255.255.255.255 network 2.2.2.2 mask 255.255.255.255 network 3.3.3.3 mask 255.255.255.255 network 5.5.5.5 mask 255.255.255.255 neighbor 10.1.22.22 activate neighbor 10.1.22.22 route-map MATCH_LOOPBACKS out neighbor 10.1.22.22 send-label exit-address-family ! address-family vpnv4 neighbor 5.5.5.5 activate neighbor 5.5.5.5 send-community extended neighbor 5.5.5.5 next-hop-self exit-address-family ! ! ip prefix-list MATCH_LOOPBACKS seq 5 permit 1.1.1.1/32 ip prefix-list MATCH_LOOPBACKS seq 10 permit 2.2.2.2/32 ip prefix-list MATCH_LOOPBACKS seq 15 permit 3.3.3.3/32 ip prefix-list MATCH_LOOPBACKS seq 20 permit 5.5.5.5/32 ! route-map MATCH_LOOPBACKS permit 10 match ip address prefix-list MATCH_LOOPBACKS set mpls-label ! mpls ldp router-id Loopback0 ! |
IOS Config – Route Reflector
hostname RR1 ! router bgp 100 bgp router-id 5.5.5.5 template peer-policy IBGP_PEER route-reflector-client exit-peer-policy ! template peer-session IBGP_PEER remote-as 100 update-source Loopback0 exit-peer-session ! bgp log-neighbor-changes neighbor 1.1.1.1 inherit peer-session IBGP_PEER neighbor 2.2.2.2 inherit peer-session IBGP_PEER neighbor 20.20.20.20 remote-as 200 neighbor 20.20.20.20 ebgp-multihop 255 neighbor 20.20.20.20 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 inherit peer-policy IBGP_PEER neighbor 2.2.2.2 activate neighbor 2.2.2.2 send-community extended neighbor 2.2.2.2 inherit peer-policy IBGP_PEER neighbor 20.20.20.20 activate neighbor 20.20.20.20 send-community extended neighbor 20.20.20.20 next-hop-unchanged exit-address-family ! |
XR Config – ASBR
hostname ASBR1 ! interface Loopback0 ipv4 address 1.1.1.1 255.255.255.255 ! interface GigabitEthernet0/0/0/0.122 ipv4 address 10.1.22.1 255.255.255.0 encapsulation dot1q 122 ! prefix-set LOOPBACKS 1.1.1.1, 2.2.2.2, 3.3.3.3, 5.5.5.5 end-set ! route-policy FROM_REMOTE_AS pass end-policy ! route-policy MATCH_LOOPBACKS if destination in LOOPBACKS then pass else drop endif end-policy ! ! XR devices cannot label switch to a next-hop ! that is not learned via a /32 host. Hence the ! need for a static route here. router static address-family ipv4 unicast 10.1.22.22/32 GigabitEthernet0/0/0/0.122 ! ! router ospf 1 log adjacency changes detail router-id 1.1.1.1 redistribute bgp 100 area 0 mpls ldp sync mpls ldp auto-config interface Loopback0 passive enable ! interface GigabitEthernet0/0/0/0.13 ! ! router bgp 100 bgp router-id 1.1.1.1 address-family ipv4 unicast network 1.1.1.1/32 network 2.2.2.2/32 network 3.3.3.3/32 network 5.5.5.5/32 allocate-label all ! address-family vpnv4 unicast ! neighbor 10.1.22.22 remote-as 200 address-family ipv4 labeled-unicast route-policy FROM_REMOTE_AS in route-policy MATCH_LOOPBACKS out ! ! neighbor 5.5.5.5 remote-as 100 update-source Loopback0 address-family vpnv4 unicast next-hop-self ! ! ! mpls ldp router-id 1.1.1.1 address-family ipv4 label local allocate for host-routes ! ! ! ! mpls label range table 0 1000 1999 ! |
XR Config – Router Reflector
hostname RR1 ! router bgp 100 bgp router-id 5.5.5.5 address-family vpnv4 unicast ! neighbor-group IBGP_PEERS remote-as 100 update-source Loopback0 address-family vpnv4 unicast route-reflector-client ! ! neighbor 20.20.20.20 remote-as 200 ebgp-multihop 255 update-source Loopback0 address-family vpnv4 unicast route-policy PASS in route-policy PASS out next-hop-unchanged ! ! neighbor 1.1.1.1 use neighbor-group IBGP_PEERS address-family vpnv4 unicast ! ! neighbor 2.2.2.2 use neighbor-group IBGP_PEERS address-family vpnv4 unicast ! ! ! |