Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

Navigation

Interprovider VPN Example—MP-EBGP Between ISP Peer Routers

In this example, all routes learned from the CE routers are sent over both service provider networks as VPN-IPv4 routes. The routes are initially learned by the PE routers (Router B and Router E) from the CE routers (Router A and Router F) and are announced by the PE routers to the AS border routers (Router C and Router D). The AS border routers are then configured with an MP-EBGP session, enabling them to pass the VPN-IPv4 routes with each other. When an AS border router—Router C for example—learns VPN-IPv4 routes from an IBGP PE, the following events occur:

  1. Router C sets itself as the next hop for the route and creates a label for that route.
  2. Router C advertises the VPN-IPv4 route to PE Router D in AS 10045.
  3. Router D sets the next hop to itself, creates another label, and then forwards the label and the route to its IBGP PE router (Router E).

This example has scaling limitations because of restrictions on the number of labels each PE router needs to allocate at the AS border.

Figure 1 illustrates the network topology used in this VPN example.

Figure 1: Network Topology for the Interprovider VPN Example

Network Topology for the Interprovider
VPN Example

For configuration information see the following sections:

Configuration for Router A

Configure a family inet EBGP session with Router B and export the direct routes:

[edit]protocols {bgp {group to-provider {export attached;peer-as 10023;neighbor 192.168.198.2;}}}policy-options {policy-statement attached {from protocol direct;then accept;}}

Configuration for Router B

Router A is configured as a CE router (using the routing-instances statement) in the configuration for Router B. Because they exchange VPN-IPv4 routes, Router D and Router C are configured as PE routers.

Configure Router B:

[edit]protocols {rsvp {interface t3-0/0/0.0;}mpls {label-switched-path to-routerC {to 10.255.14.171;description "to-routerC for use with VPNs";}interface t3-0/0/0.0;interface so-1/2/0.0;}bgp {group to-ibgp {type internal;local-address 10.255.14.175;family inet-vpn {unicast;}neighbor 10.255.14.171;}}ospf {traffic-engineering;reference-bandwidth 4g;area 0.0.0.0 {interface t3-0/0/0.0;interface lo0.0 {passive;}}}}routing-instances {vpna {instance-type vrf;interface so-1/2/0.0;route-distinguisher 10.255.14.175:9;vrf-import vpna-import;vrf-export vpna-export;protocols {bgp {group to-ce {peer-as 9;neighbor 192.168.198.1;}}}}}policy-options {policy-statement vpna-import {term 1 {from {protocol bgp;community vpna-comm;}then accept;}term 2 {then reject;}}policy-statement vpna-export {term 1 {from protocol bgp;then {community add vpna-comm;accept;}}term 2 {then reject;}}community vpna-comm members target:100:1001;}

Configuration for Router C

In the BGP protocol configuration for Router C, include the keep all statement. When this statement is included, BGP must store every route learned through BGP. Configure two BGP sessions (configure family inet-vpn on both sessions):

  • IBGP session to Router B (group to-ibgp in this example)
  • EBGP session to Router D (group to-ebgp-pe in this example)

Interface t3-0/2/0 is added at the [edit protocols mpls] hierarchy level, allowing BGP to announce routes with labels over the EBGP session.

Configure Router C:

[edit]protocols {rsvp {interface t3-0/2/0.0;}mpls {label-switched-path to-routerB {to 10.255.14.175;description "to-routerB for use with vpns";}interface t3-0/2/0.0;interface so-0/0/0.0;}bgp {keep all;group to-ibgp {type internal;local-address 10.255.14.171;family inet-vpn {unicast;}neighbor 10.255.14.175;}group to-ebgp-pe {type external;family inet-vpn {unicast;}neighbor 192.168.197.22 {peer-as 10045;}}}ospf {traffic-engineering;reference-bandwidth 4g;area 0.0.0.0 {interface t3-0/2/0.0;interface lo0.0 {passive;}}}}

Configuration for Router D

The configuration for Router D is almost identical to that of Router C:

[edit]protocols {rsvp {interface fe-1/1/0.0;}mpls {label-switched-path to-E {to 10.255.14.177;description "to-routerE for vpna";}interface fe-1/1/0.0;interface so-0/1/0.0;}bgp {keep all;group to-ibgp-pe {type internal;family inet-vpn {unicast;}neighbor 10.255.14.177;}group to-ebgp-pe {type external;family inet-vpn {unicast;}peer-as 10023;neighbor 192.168.197.21;}}ospf {traffic-engineering;reference-bandwidth 4g;area 0.0.0.0 {interface fe-1/1/0.0;interface lo0.0 {passive;}}}}

Configuration for Router E

The configuration for Router E is very similar to the configuration for Router B:

[edit]protocols {rsvp {interface fe-1/1/2.0;}mpls {label-switched-path to-routerD {to 10.255.14.173;description "to-routerD for use with VPNa";}interface fe-1/1/2.0;interface so-1/2/0.0;}bgp {group to-ibgp-pe {type internal;local-address 10.255.14.177;family inet-vpn {unicast;}neighbor 10.255.14.173;}}ospf {traffic-engineering;reference-bandwidth 4g;area 0.0.0.0 {interface fe-1/1/2.0;interface lo0.0 {passive;}}}}routing-instances {vpna {instance-type vrf;interface so-1/2/0.0;route-distinguisher 10.255.14.177:11;vrf-import vpna-import;vrf-export vpna-export;protocols {bgp {group to-routerF-ce {neighbor 192.168.198.14 {peer-as 11;}}}}}}policy-options {policy-statement vpna-import {term 1 {from {protocol bgp;community vpna-comm;}then accept;}term 2 {then reject;}}policy-statement vpna-export {term 1 {from protocol bgp;then {community add vpna-comm;accept;}}term 2 {then reject;}}community vpna-comm members target:100:1001;}

Configuration for Router F

Configure Router F as a CE router; the configuration is similar to that for Router A:

[edit]protocols {bgp {group to-provider {type external;export attached;neighbor 192.168.198.13 {peer-as 10045;}}}}policy-options {policy-statement attached {from protocol direct;then accept;}}

}

Published: 2012-11-29

Supported Platforms

Published: 2012-11-29