Configuring Routing Instances on PE Routers in VPNs
You need to configure a routing instance for each VPN on each of the PE routers participating in the VPN. The configuration procedures outlined in this section are applicable to Layer 2 VPNs, Layer 3 VPNs, and VPLS. The configuration procedures specific to each type of VPN are described in the corresponding sections in the other configuration chapters.
To configure routing instances for VPNs, include the following statements:
description text; instance-type type; interface interface-name; route-distinguisher (as-number:number | ip-address:number); vrf-import [ policy-names ]; vrf-export [ policy-names ]; vrf-target { export community-name; import community-name; }
You can include these statements at the following hierarchy levels:
[edit routing-instances routing-instance-name]
[edit logical-systems logical-system-name routing-instances routing-instance-name]
To configure VPN routing instances, you perform the steps in the following sections:
Configuring the Routing Instance Name for a VPN
The name of the routing instance for a VPN can be a maximum
of 128 characters and can contain letters, numbers, and hyphens. In
Junos OS Release 9.0 and later, you can no longer specify default
as the actual routing-instance name. You also cannot use any special
characters (! @ # $ % ^ & * , +< > : ;) within the name of
a routing instance.
In Junos OS Release 9.6 and later, you can include a slash (/) in a routing instance name only if a logical system is not configured. That is, you cannot include the slash character in a routing instance name if a logical system other than the default is explicitly configured.
Specify the routing-instance name with the routing-instance
statement:
routing-instance routing-instance-name {...}
You can include this statement at the following hierarchy levels:
[edit]
[edit logical-systems logical-system-name]
Configuring the Description
To provide a text description for the routing instance, include
the description
statement. If the text includes one or
more spaces, enclose them in quotation marks (" "). Any descriptive
text you include is displayed in the output of the show route
instance detail
command and has no effect on the operation of
the routing instance.
To configure a text description, include the description
statement:
description text;
You can include this statement at the following hierarchy levels:
[edit routing-instances routing-instance-name]
[edit logical-systems logical-system-name routing-instances routing-instance-name]
Configuring the Instance Type
The instance type you configure varies depending on whether
you are configuring Layer 2 VPNs, Layer 3 VPNs, VPLS, or
virtual routers. Specify the instance type by including the instance-type
statement:
To enable Layer 2 VPN routing on a PE router, include the
instance-type
statement and specify the valuel2vpn
:instance-type l2vpn;
To enable VPLS routing on a PE router, include the
instance-type
statement and specify the valuevpls
:instance-type vpls;
Layer 3 VPNs require that each PE router have a VPN routing and forwarding (VRF) table for distributing routes within the VPN. To create the VRF table on the PE router, include the
instance-type
statement and specify the valuevrf
:instance-type vrf;
Note:Routing Engine based sampling is not supported on VRF routing instances.
To enable the virtual-router routing instance, include the
instance-type
statement and specify the valuevirtual-router
:instance-type virtual-router;
You can include this statement at the following hierarchy levels:
[edit routing-instances routing-instance-name]
[edit logical-systems logical-system-name routing-instances routing-instance-name]
Configuring Interfaces for VPN Routing
On each PE router, you must configure an interface over which the VPN traffic travels between the PE and CE routers.
The sections that follow describe how to configure interfaces for VPNs:
- General Configuration for VPN Routing
- Configuring Interfaces for Layer 3 VPNs
- Configuring Interfaces for Carrier-of-Carriers VPNs
- Configuring Unicast RPF on VPN Interfaces
General Configuration for VPN Routing
The configuration described in this section applies to all types of VPNs. For Layer 3 VPNs and carrier-of-carriers VPNs, complete the configuration described in this section before proceeding to the interface configuration sections specific to those topics.
To configure interfaces for VPN routing, include the interface
statement:
interface interface-name;
You can include this statement at the following hierarchy levels:
[edit routing-instances routing-instance-name]
[edit logical-systems logical-system-name routing-instances routing-instance-name]
Specify both the physical and logical portions of the interface name, in the following format:
physical.logical
For example, in at-1/2/1.2
, at-1/2/1
is
the physical portion of the interface name and 2
is the
logical portion. If you do not specify the logical portion of the
interface name, the value 0
is set by default.
A logical interface can be associated with only one routing
instance. If you enable a routing protocol on all instances by specifying interfaces all
when configuring the master instance of the
protocol at the [edit protocols]
hierarchy level, and if
you configure a specific interface for VPN routing at the [edit
routing-instances routing-instance-name]
hierarchy level or at the [edit logical-systems logical-system-name routing-instances routing-instance-name]
hierarchy level, the latter interface statement takes precedence
and the interface is used exclusively for the VPN.
If you explicitly configure the same interface name at the [edit protocols]
hierarchy level and at either the [edit
routing-instances routing-instance-name]
or [edit logical-systems logical-system-name routing-instances routing-instance-name]
hierarchy levels, an attempt to commit the configuration fails.
Configuring Interfaces for Layer 3 VPNs
When you configure the Layer 3 VPN interfaces at the [edit interfaces]
hierarchy level, you must also configure family inet
when configuring the logical interface:
[edit interfaces] interface-name { unit logical-unit-number { family inet; } }
Configuring Interfaces for Carrier-of-Carriers VPNs
When you configure carrier-of-carriers VPNs, you need to configure
the family mpls
statement in addition to the family
inet
statement for the interfaces between the PE and CE routers.
For carrier-of-carriers VPNs, configure the logical interface as follows:
[edit interfaces] interface-name { unit logical-unit-number { family inet; family mpls; } }
If you configure family mpls
on the logical interface
and then configure this interface for a non-carrier-of-carriers routing
instance, the family mpls
statement is automatically removed
from the configuration for the logical interface, since it is not
needed.
Configuring Unicast RPF on VPN Interfaces
For VPN interfaces that carry IP version 4 or version 6 (IPv4 or IPv6) traffic, you can reduce the impact of denial-of-service (DoS) attacks by configuring unicast reverse path forwarding (RPF). Unicast RPF helps determine the source of attacks and rejects packets from unexpected source addresses on interfaces where unicast RPF is enabled.
You can configure unicast RPF on a VPN interface by enabling
unicast RPF on the interface and including the interface
statement at the [edit routing-instances routing-instance-name]
hierarchy level.
You cannot configure unicast RPF on the core-facing interfaces. You can only configure unicast RPF on the CE router-to-PE router interfaces on the PE router. However, for virtual-router routing instances, unicast RPF is supported on all interfaces you specify in the routing instance.
For information about how to configure unicast RPF on VPN interfaces, see Understanding Unicast RPF (Routers).
Configuring the Route Distinguisher
Each routing instance that you configure on a PE router must have a unique route distinguisher associated with it. VPN routing instances need a route distinguisher to help BGP to distinguish between potentially identical network layer reachability information (NLRI) messages received from different VPNs. If you configure different VPN routing instances with the same route distinguisher, the commit fails.
For Layer 2 VPNs and VPLS, if you have configured the l2vpn-use-bgp-rules
statement, you must configure a unique route distinguisher for each
PE router participating in a specific routing instance.
For other types of VPNs, we recommend that you use a unique route distinguisher for each PE router participating in the routing instance. Although you can use the same route distinguisher on all PE routers for the same VPN routing instance (except for Layer 2 VPNs and VPLS), if you use a unique route distinguisher, you can determine the CE router from which a route originated within the VPN.
To configure a route distinguisher on a PE router, include the route-distinguisher
statement:
route-distinguisher (as-number:number | ip-address:number);
For a list of hierarchy levels at which you can include this statement, see the statement summary section for this statement.
The route distinguisher is a 6-byte value that you can specify in one of the following formats:
as-number
:number
, whereas-number
is an autonomous system (AS) number (a 2-byte value) andnumber
is any 4-byte value. The AS number can be in the range 1 through 65,535. We recommend that you use an Internet Assigned Numbers Authority (IANA)-assigned, nonprivate AS number, preferably the Internet service provider’s (ISP’s) own or the customer’s own AS number.ip-address
:number
, whereip-address
is an IP address (a 4-byte value) andnumber
is any 2-byte value. The IP address can be any globally unique unicast address. We recommend that you use the address that you configure in therouter-id
statement, which is a nonprivate address in your assigned prefix range.
Configuring Automatic Route Distinguishers
If you configure the route-distinguisher-id
statement at the [edit routing-options]
hierarchy level, a route distinguisher is automatically assigned
to the routing instance. If you also configure the route-distinguisher
statement in addition to the route-distinguisher-id
statement,
the value configured for route-distinguisher
supersedes
the value generated from route-distinguisher-id
.
To assign a route distinguisher automatically, include the route-distinguisher-id
statement:
route-distinguisher-id ip-address;
You can include this statement at the following hierarchy levels:
[edit routing-options]
[edit logical-systems logical-system-name routing-options]
A type 1 route distinguisher is automatically assigned
to the routing instance using the format ip-address:number
. The IP address is specified by
the route-distinguisher-id
statement and the number is
unique for the routing instance.