6

I have 4 Cisco routers, connected one to another like the following:

**R1**(s1/0)--(s1/0)**R2**(s1/1)--(s1/0)**R3**(s1/1)--(s1/0)**R4**

All of them have an IP address assigned on their interfaces. There is a route between R1 and R2, and a route between R3 and R4.

I want R2 and R3 to be an MPLS network, which I configure like so:

R2:

ip cef
int s1/1
mpls label protocol ldp
mpls ip
mpls mtu 1512
ip route-cache cef

R3:

ip cef
int s1/0
mpls label protocol ldp
mpls ip
mpls mtu 1512
ip route-cache cef

However, R1 cannot ping anything except R2 and Traceroute gives "!H" after R2. If I use EIGRP as a routing protocol wrapped in MPLS it works, but my question is why should I need to configure the routes between R2 and R3?

MPLS features rerouting, can it not just create the routes by itself?

1
  • 1
    Others have provided more detailed answers, in short though: MPLS is not a routing protocol so no, MPLS it's self does not provide "re-routing" either, that is a misunderstanding.
    – jwbensley
    Feb 10, 2014 at 9:18

2 Answers 2

7

Short answer: MPLS is not a Layer 3 Routing protocol, however, it requires one to establish it's paths.

--

Per RFC 3031 Multiprotocol Label Switching Architecture:

An MPLS node will be aware of MPLS control protocols, will operate one or more L3 routing protocols, and will be capable of forwarding packets based on labels.

What this means is that an MPLS node can make forwarding decisions based on labels, not on L3 routing information, but it will still require an L3 routing protocol for creating the path.

MPLS cannot create IP routes where none exist. (Nor can it re-route traffic to where no previous IP routes exist.)

The key to answering this question is in understanding what MPLS is and how it functions. I would recommend checking out Cisco's MPLS FAQ For Beginners and then for more in-depth reading, RFC 3031. These cover your question (and others) in some depth.

2
  • IS it correct to understand this as the following: MPLS is used (among other features) to choose the route to take, but not to create these routes. Creating the routes is a job for some other protocols, like EIGRP.
    – Vulpo
    Feb 10, 2014 at 9:28
  • 1
    @Vulpo, your statement isn't quite correct. First MPLS is a family of protocols and technically MPLS does not do what you said; LDP is the protocol you asked about in your question. LDP can be used several different ways; the way you used it makes a copy of the EIGRP routing table (it's actually based on the CEF tables to be most exact) and maps MPLS labels to each prefix in the CEF table. Feb 10, 2014 at 11:23
8

MPLS features rerouting, can it not just create the routes by itself?

You've enabled LDP; however, as an MPLS label distribution protocol LDP, only maps IGP routes to MPLS labels; in your case the IGP is EIGRP...

Quoting RFC 3031 - MPLS Architecture, page 8 (emphasis mine):

 MPLS node                  a node which is running MPLS.  An MPLS
                            node will be aware of MPLS control
                            protocols, will **operate one or more L3
                            routing protocols**, and will be capable
                            of forwarding packets based on labels.
                            An MPLS node may optionally be also
                            capable of forwarding native L3 packets.

The RFC doesn't leave this open to interpretation. You cannot use LDP without a routing protocol.

2
  • Mike, you're just too fast for me, beat me by 9 minutes! :) Feb 10, 2014 at 1:08
  • It's all good Brett, I know you well enough that I'm sure you didn't copy the answer. I got started on Stack Overflow answering python questions where you have to be quick because there are so many people answering. Feb 10, 2014 at 1:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.