LSP Routers
Routers in an LSP
Each router in an LSP performs one of the following functions:
Ingress router—The router at the beginning of an LSP. This router encapsulates IP packets with an MPLS Layer 2 frame and forwards it to the next router in the path. Each LSP can have only one ingress router.
Egress router—The router at the end of an LSP. This router removes the MPLS encapsulation, thus transforming it from an MPLS packet to an IP packet, and forwards the packet to its final destination using information in the IP forwarding table. Each LSP can have only one egress router. The ingress and egress routers in an LSP cannot be the same router.
Transit router—Any intermediate router in the LSP between the ingress and egress routers. A transit router forwards received MPLS packets to the next router in the MPLS path. An LSP can contain zero or more transit routers, up to a maximum of 253 transit routers in a single LSP.
A single router can be part of multiple LSPs. It can be the ingress or egress router for one or more LSPs, and it also can be a transit router in one or more LSPs. The functions that each router supports depend on your network design.
Configuring the Ingress and Egress Router Addresses for LSPs
The following sections describe how to specify the addresses of an LSP’s ingress and egress routers:
- Configuring the Ingress Router Address for LSPs
- Configuring the Egress Router Address for LSPs
- Preventing the Addition of Egress Router Addresses to Routing Tables
Configuring the Ingress Router Address for LSPs
The local router always is considered to be the ingress router, which is the beginning of the LSP. The software automatically determines the proper outgoing interface and IP address to use to reach the next router in an LSP.
By default, the router ID is chosen as the address of the ingress
router. To override the automatic selection of the source address,
specify a source address in the from
statement:
from address;
You can include this statement at the following hierarchy levels:
[edit protocols mpls label-switched-path lsp-name]
[edit logical-systems logical-system-name protocols mpls label-switched-path lsp-name]
The outgoing interface used by the LSP is not affected by the source address that you configure.
Configuring the Egress Router Address for LSPs
When configuring an LSP, you must specify the address of the
egress router by including the to
statement:
to address;
You can include this statement at the following hierarchy levels:
[edit protocols mpls label-switched-path lsp-name]
[edit protocols mpls static-label-switched-path lsp-name]
[edit logical-systems logical-system-name protocols mpls label-switched-path lsp-name]
[edit logical-systems logical-system-name protocols mpls static-label-switched-path lsp-name]
When you are setting up a signaled LSP, the to
statement
is the only required statement. All other statements are optional.
After the LSP is established, the address of the egress router is installed as a host route in the routing table. This route can then be used by BGP to forward traffic.
To have the software send BGP traffic over an LSP, the address of the egress router is the same as the address of the BGP next hop. You can specify the egress router’s address as any one of the router’s interface addresses or as the BGP router ID. If you specify a different address, even if the address is on the same router, BGP traffic is not sent over the LSP.
To determine the address of the BGP next hop, use the show
route detail
command. To determine the destination address of
an LSP, use the show mpls lsp
command. To determine whether
a route has gone through an LSP, use the show route
or show route forwarding-table
command. In the output of these
last two commands, the label-switched-path
or push
keyword included with the route indicates it has passed through
an LSP. Also, use the traceroute
command to trace the actual
path to which the route leads. This is another indication whether
a route has passed through an LSP.
You also can manipulate the address of the BGP next hop by defining a BGP import policy filter that sets the route’s next-hop address.
Preventing the Addition of Egress Router Addresses to Routing Tables
You must configure an address using the to
statement
for all LSPs. This address is always installed as a /32
prefix in the inet.3 or inet.0 routing tables. You can prevent the
egress router address configured using the to
statement
from being added to the inet.3 and inet.0 routing tables by including
the no-install-to-address
statement.
Some reasons not to install the to
statement address
in the inet.3 and inet.0 routing tables include the following:
Allow Constrained Shortest Path First (CSPF) RSVP LSPs to be mapped to traffic intended for secondary loopback addresses. If you configure an RSVP tunnel, including the
no-install-to-address
statement, and then configure aninstall pfx/ <active>
policy later, you can do the following:Verify that the LSP was set up correctly without impacting traffic.
Map traffic to the LSP in incremental steps.
Map traffic to the destination loopback address (the BGP next hop) by removing the
no-install-to-address
statement once troubleshooting is complete.
Prevent CCC connections from losing IP traffic. When an LSP determines that it does not belong to a connection, it installs the address specified with the
to
statement in the inet.3 routing table. IP traffic is then forwarded to the CCC remote endpoint, which can cause some types of PICs to fail.
To prevent the egress router address configured using the to
statement from being added to the inet.3 and inet.0 routing
tables, include the no-install-to-address
statement:
no-install-to-address;
You can include this statement at the following hierarchy levels:
[edit protocols mpls label-switched-path lsp-name]
[edit protocols mpls static-label-switched-path lsp-name]
[edit logical-systems logical-system-name protocols mpls label-switched-path lsp-name]
[edit logical-systems logical-system-name protocols mpls static-label-switched-path lsp-name]
Configuring the Ingress Router for MPLS-Signaled LSPs
MPLS-signaled label-switched paths (LSPs) run from a specific ingress router to a specific egress router. For basic MPLS-signaled LSP function, you must configure the ingress router, but do not have to configure any other routers.
To configure signaled LSPs, perform the following tasks on the ingress router:
Creating Named Paths
To configure signaled LSPs, you must first create one or more named paths on the ingress router. For each path, you can specify some or all transit routers in the path, or you can leave it empty.
Each pathname can contain up to 32 characters and can include
letters, digits, periods, and hyphens. The name must be unique within
the ingress router. Once a named path is created, you can use the
named path with the primary
or secondary
statement
to configure LSPs at the [edit protocols mpls label-switched-path label-path-name]
hierarchy level. You can specify
the same named path on any number of LSPs.
To determine whether an LSP is associated with the primary or
secondary path in an RSVP session, issue the show rsvp session detail
command.
To create an empty path, create a named path by including the
following form of the path
statement. This form of the path
statement is empty, which means that any path between
the ingress and egress routers is accepted. In actuality, the path
used tends to be the same path as is followed by destination-based,
best-effort traffic.
path path-name;
You can include this statement at the following hierarchy levels:
[edit protocols mpls]
[edit logical-systems logical-system-name protocols mpls]
To create a path in which you specify some or all transit routers
in the path, include the following form of the path
statement,
specifying one address for each transit router:
path path-name { (address | hostname) <strict | loose>; }
You can include this statement at the following hierarchy levels:
[edit protocols mpls]
[edit logical-systems logical-system-name protocols mpls]
In this form of the path
statement, you specify one
or more transit router addresses. Specifying the ingress or egress
routers is optional. You can specify the address or hostname of each
transit router, although you do not need to list each transit router
if its type is loose
. Specify the addresses in order, starting
with the ingress router (optional) or the first transit router, and
continuing sequentially along the path up to the egress router (optional)
or the router immediately before the egress router. You need to specify
only one address per router hop. If you specify more than one address
for the same router, only the first address is used; the additional
addresses are ignored and truncated.
For each router address, you specify the type, which can be one of the following:
strict
—(Default) The route taken from the previous router to this router is a direct path and cannot include any other routers. Ifaddress
is an interface address, this router also ensures that the incoming interface is the one specified. Ensuring that the incoming interface is the one specified is important when there are parallel links between the previous router and this router. It also ensures that routing can be enforced on a per-link basis.For strict addresses, you must ensure that the router immediately preceding the router you are configuring has a direct connection to that router. The address can be a loopback interface address, in which case the incoming interface is not checked.
loose
—The route taken from the previous router to this router need not be a direct path, can include other routers, and can be received on any interface. The address can be any interface address or the address of the loopback interface.
Examples: Creating Named Paths
Configure a path, to-hastings
, to specify the complete strict path from the
ingress to the egress routers through
10.14.1.1
,
10.13.1.1
,
10.12.1.1
,
and
10.11.1.1
,
in that order. There cannot be any intermediate routers except the ones
specified. However, there can be intermediate routers between
10.11.1.1
and the egress router because the egress router is not specifically listed in
the path
statement. To prevent intermediate routers before
egress, configure the egress router as the last router, with a
strict
type.
[edit protocols mpls] path to-hastings { 10.14.1.1 strict; 10.13.1.1 strict; 10.12.1.1 strict; 10.11.1.1 strict; }
Create a path, alt-hastings
, to allow any number of intermediate routers between
routers
10.14.1.1
and
10.11.1.1
.
In addition, intermediate routers are permitted between
10.11.1.1
and the egress router.
[edit protocols mpls] path alt-hastings { 10.14.1.1 strict; 10.11.1.1 loose; }
Configuring Alternate Backup Paths Using Fate Sharing
You can create a database of information that Constrained Shortest Path First (CSPF) uses to compute one or more backup paths in case the primary path becomes unstable. The database describes the relationships between elements of the network, such as routers and links. Because these network elements share the same fate, this relationship is called fate sharing.
You can configure backup paths that minimize the number of shared links and fiber paths with the primary paths as much as possible to ensure that, if a fiber is cut, the minimum amount of data is lost and a path still exists to the destination.
For a backup path to work optimally, it must not share links or physical fiber paths with the primary path. This ensures that a single point of failure will not affect the primary and backup paths at the same time.
The following sections describe how to configure fate sharing and how it affects CSPF, and provides a fate sharing configuration example:
- Configuring Fate Sharing
- Implications for CSPF
- Implications for CSPF When Fate Sharing with Bypass LSPs
- Example: Configuring Fate Sharing
Configuring Fate Sharing
To configure fate sharing, include the fate-sharing
statement:
fate-sharing { group group-name { cost value; from address <to address>; } }
For a list of hierarchy levels at which you can include this statement, see the statement summary section for this statement.
Each fate-sharing group must have a name, which can be up to 32 characters long and can contain letters, digits, periods (.) and hyphens (-). You can define up to 512 groups.
Fate-sharing groups contain three types of objects:
Point-to-point links—Identified by the IP addresses at each end of the link. Unnumbered point-to-point links are typically identified by borrowing IP addresses from other interfaces. Order is not important;
from 10.1.3.4 to 10.1.3.5
andfrom 10.1.3.5 to 10.1.3.4
have the same meaning.Non-point-to-point links—Include links on a LAN interface (such as Gigabit Ethernet interfaces) or nonbroadcast multiaccess (NBMA) interfaces (such as Asynchronous Transfer Mode [ATM] or Frame Relay). You identify these links by their individual interface address. For example, if the LAN interface
192.168.200.0/24
has four routers attached to it, each router link is individually identified:from 192.168.200.1; # LAN interface of router 1 from 192.168.200.2; # LAN interface of router 2 from 192.168.200.3; # LAN interface of router 3 from 192.168.200.4; # LAN interface of router 4
You can list the addresses in any order.
A router node—Identified by its configured router ID.
All objects in a group share certain similarities. For example, you can define a group for all fibers that share the same fiber conduit, all optical channels that share the same fiber, all links that connect to the same LAN switch, all equipment that shares the same power source, and so on. All objects are treated as /32 host addresses.
For a group to be meaningful, it should contain at least two objects. You can configure groups with zero or one object; these groups are ignored during processing.
An object can be in any number of groups, and a group can contain any number of objects. Each group has a configurable cost attributed to it, which represents the level of impact this group has on CSPF computations. The higher the cost, the less likely a backup path will share with the primary path any objects in the group. The cost is directly comparable to traffic engineering metrics. By default, the cost is 1. Changing the fate-sharing database does not affect established LSPs until the next reoptimization of CSPF. The fate-sharing database does influence fast-reroute computations.
Implications for CSPF
When CSPF computes the primary paths of an LSP (or secondary paths when the primary path is not active), it ignores the fate-sharing information. You always want to find the best possible path (least IGP cost) for the primary path.
When CSPF computes a secondary path while the primary path (of the same LSP) is active, the following occurs:
CSPF identifies all fate-sharing groups that are associated with the primary path. CSPF does this by identifying all links and nodes that the primary path traverses and compiling group lists that contain at least one of the links or nodes. CSPF ignores the ingress and egress nodes in the search.
CSPF checks each link in the traffic engineering database against the compiled group list. If the link is a member of a group, the cost of the link is increased by the cost of the group. If a link is a member of multiple groups, all group costs are added together.
CSPF performs the check for every node in the traffic engineering database, except the ingress and egress node. Again, a node can belong to multiple groups, so costs are additive.
The router performs regular CSPF computation with the adjusted topology.
Implications for CSPF When Fate Sharing with Bypass LSPs
When fate sharing is enabled with link protection or link-node protection, CSPF operates as follows when calculating the bypass LSP path:
CSPF identifies the fate-sharing groups that are associated with the primary LSP path. CSPF does this by identifying the immediate downstream link and immediate downstream nodes that the bypass is trying to protect. CSPF compiles group lists that contain the immediate downstream link and immediate downstream nodes.
CSPF checks each link (from ingress to the immediate downstream node) in the traffic engineering database against the compiled group list. If the link is a member of a group, the cost of the link is increased by the cost of the group.
CSPF identifies the downstream link that is not in the fate-shared path.
This calculation prevents bypasses from using the same physical link as the primary LSP path when viable alternatives are available.
Example: Configuring Fate Sharing
Configure fate-sharing groups east
and west
. Because west
has no objects, it is ignored during processing.
[edit routing-options] fate-sharing { group east { cost 20; # Optional, default value is 1 from 10.1.3.4 to 10.1.3.5; # A point-to-point link from 192.168.200.1; # LAN interface from 192.168.200.2; # LAN interface from 192.168.200.3; # LAN interface from 192.168.200.4; # LAN interface from 10.168.1.220; # Router ID of a router node from 10.168.1.221; # Router ID of a router node } group west { ..... } }
Configuring the Intermediate and Egress Routers for MPLS-Signaled LSPs
To configure signaled LSPs on all MPLS routers that should participate in MPLS, you need to enable MPLS and RSVP on these routers.
Configuring the Connection Between Ingress and Egress Routers
The ingress router might make many attempts to connect and reconnect to the egress router using the primary path. You can control how often the ingress router tries to establish a connection using the primary path and how long it waits between retry attempts.
The retry timer configures how long the ingress router waits
before trying to connect again to the egress router using the primary
path. The default retry time is 30 seconds. The time can be from
1 through 600 seconds. To modify this value, include the retry-timer
statement:
retry-timer seconds;
You can configure this statement at the following hierarchy levels:
[edit protocols mpls label-switched-path lsp-name]
[edit logical-systems logical-system-name protocols mpls label-switched-path lsp-name]
By default, no limit is set to the number of times an ingress
router attempts to establish or reestablish a connection to the egress
router using the primary path. To limit the number of attempts, include
the retry-limit
statement:
retry-limit number;
You can configure this statement at the following hierarchy levels:
[edit protocols mpls label-switched-path lsp-name]
[edit logical-systems logical-system-name protocols mpls label-switched-path lsp-name]
The limit can be a value up to 10,000. When the retry limit is exceeded, no more attempts are made to establish a path connection. At this point, intervention is required to restart the primary path.
If you set a retry limit, it is reset to 1 each time a successful primary path is created.
Pinging LSPs
The following sections describe how to use the ping mpls
command to confirm LSP functioning.
- Pinging MPLS LSPs
- Pinging Point-to-Multipoint LSPs
- Pinging the Endpoint Address of MPLS LSPs
- Pinging CCC LSPs
- Pinging Layer 3 VPNs
- Support for LSP Ping and Traceroute Commands Based on RFC 4379
Pinging MPLS LSPs
You can ping a specific LSP. Echo requests are sent over the LSP as MPLS packets. The payload is a User Datagram Protocol (UDP) packet forwarded to an address in the 127/8 range (127.0.0.1 by default, this address is configurable) and port 8503. The label and interface information for building and sending this information as an MPLS packet is the same as for standard LSP traffic.
When the echo request arrives at the egress node, the receiver checks the contents of the packet and sends a reply containing the correct return value, by using UDP. The router sending the echo request waits to receive an echo reply after a timeout of 2 seconds (you cannot configure this value).
You must configure MPLS at the [edit protocols mpls]
hierarchy level on the remote router to be able to ping an LSP terminating
there. You must configure MPLS even if you intend to ping only LDP
forwarding equivalence classes (FECs).
To ping an MPLS LSP use the ping mpls <count count> <ldp <fec>> <rsvp <exp forwarding-class> <lsp-name>>
command. To ping a secondary
MPLS LSP, use the ping mpls <count count> <rsvp <lsp-name>> standby path-name
command. For a detailed description of
this command, see the CLI Explorer.
The ping mpls
command is not supported within routing
instances.
Self-ping is supported for the master instance and not supported for VLAN-based LSPs or LSPs used in CCC. The message is displayed for each LSP and reduces the readability of the configuration.
Pinging Point-to-Multipoint LSPs
To ping a point-to-multipoint LSP, use the ping mpls rsvp lsp-name multipoint
or ping mpls rsvp egress address
commands. The ping mpls rsvp lsp-name multipoint
command returns a list of all
of the egress router identifiers and the current status of the point-to-multipoint
LSP egress routers. The ping mpls rsvp lsp-name multipoint egress address
command returns
the current status of the specified egress router.
Pinging the Endpoint Address of MPLS LSPs
To determine whether an LSP between two provider edge (PE) routers
is up and running, you can ping the endpoint address of the LSP. To
ping an MPLS LSP endpoint, use the ping mpls lsp-end-point address
command. This command tells you what type
of LSP (RSVP or LDP) terminates at the address specified and whether
that LSP is up or down.
For a detailed description of this command, see the CLI Explorer.
Pinging CCC LSPs
You can ping a specific CCC LSP. The CCC LSP ping command is
identical to the one used for MPLS LSPs. The command you use is ping mpls <count count> <rsvp <lsp-name>>
. You can also ping a secondary standby
CCC LSP by using the ping mpls <count count> <rsvp <lsp-name>> standby path-name
command.
For a detailed description of this command, see the CLI Explorer.
Pinging Layer 3 VPNs
You can use a similar command, ping mpls l3vpn vpn-name prefix prefix <count count>
, to ping a Layer 3 VPN. For more information
about this command, see the Junos OS VPNs Library for Routing Devices and the CLI Explorer.
Support for LSP Ping and Traceroute Commands Based on RFC 4379
The Junos OS supports LSP ping
and traceroute
commands based on RFC 4379, Detecting Multi-Protocol
Label Switched (MPLS) Data Plane Failures.
LSP ping
and traceroute
commands based
on RFC 4379 attempt to trace the path taken by an LSP by relying
on MPLS TTL expiration. An LSP can take multiple paths from ingress
to egress. This occurs in particular with Equal Cost Multipath (ECMP).
The LSP traceroute
command can trace all possible paths
to an LSP node.