cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
1467
Views
20
Helpful
6
Replies
Highlighted
Beginner

MPLS PAYLOAD

Hello experts

I was reading MPLS Fundamental  book. In Chapter 2 page 36, they have mentioned that MPLS Label do not  have network level identifier. It is the egress router that created  label for the FEC and when that label arrives at the Egress LSR it knows  that this label belongs to which FEC.

My question here is packets are classified at the ingress  router and they been allocated to a FEC. How do Egress LSR has  communicated to Ingress router that which label to choose for which FEC.

May be I misunderstood, then what is correct and how Egress router know  that what is the payload of MPLS packet.

I am not  talking about MPLS VPN here, but the simple MPLS.

Thanks

Vishal Bhugra

1 ACCEPTED SOLUTION

Accepted Solutions
Highlighted

Hello Vishal, just to add to Aacole post.

Router D, as the egress router, wil create FEC and assign label for local addresses, so Router D will know what the payload will be and how to forward packet. Router D than advertise this label to neighboring LDP peers which will advertise their local bindings to their LDP peers. Router A will know which label to use from his own LDP peer. This way intermediate routers do not need to know what is the payload.

Example:

R1 - R2 - R3 (R3's F0/0 IP: 34.0.0.3/24)

Cisco routers by default use PHP feature ->

http://www.mplsvpn.info/2008/11/what-is-php-penultimate-hop-popping.html

R3 will signalize to R2 that for prefix 34.0.0.0/24 use label number 3 - implicit NULL, which means that R2 will do POP operation and forward packet to R3 unlabeled in case of plain MPLS [in case MPLS VPN, with VPN label as top label].

R2 will create local binding for 34.0.0.0/24, lets say label 22 and advertise this binding to LDP peers. So if R2 receive mpls packet with top label 22, R2 will do POP operation, remove top label and forward as unlabeled IPv4 packet toward R3.

R1 will receive from from R2 that for 34.0.0.0/24 is using label 22. R1 will also create local binding for this prefix let say label 18 and advertise this binding to its LDP peers.

Now the promised example

R1 will receive packet with top label 18, R1 will make lookup in LFIB and decide to make SWAP operation [18 -> 22] and forward packet R2. L2 header will look like this: src MAC | dst MAC | type 8847 [MPLS unicast]

R2 will receive packet with top label 22, R1 will make lookup in LFIB and decide to make POP operation [remove top label] and forward packet to R3. L2 header will look like this: src MAC | dst MAC | type 0800 [IPv4]

R3 will receive IPv4 packet and forward packet based on CEF table.....

Now earlier I said that R3 create FEC so it knows how to forward packet, but if you noticed R2 stripped MPLS label and create new L2 header with EtherType 0800, but how R2 know that payload is IPv4?

- R3 signalized this to R2 together with label bindings [see the image]

Best Regards

Please rate all helpful posts and close solved questions

Best Regards Please rate all helpful posts and close solved questions

View solution in original post

6 REPLIES 6
Highlighted
Rising star

Hello,

The (Forward Equivellant Class) is a set of L2 and L3 packets that has the same treatment.

Every LSR assigns Labels to a FEC and builds a Label information Base (LIB), So that it knows what L3 or L2 are assigned which labels.

After that, Every Label Switch router advertises/populates those information using one of the following methodes:

1- Unsolicited upstream:  Used in Frame-mode MPLS based type.

2- Down Stream On Demand: Used in Cell-Mode MPLS based

HTH

Mohamed

Highlighted

Hello Mohammad

Thanks for your reply.

If I more detail my query, then I would say.. suppose there is topology A--B--C--D.

Here A is Ingress LSR and D is Egress LSR. Now when LDP run A will generate a local label and B will receive the remote label. So on and So fourth, but there is no direct communication between A and D.

Now FEC is decided at A.. How D will decide that coming packet is to sent out to which interface.

As in MPLS VPN, there is VPN label used by egress router to decide the egress interface.

Thanks

Vishal Bhugra

Highlighted

Hello,

Good question!

First, let us distinguish between the Top label & the VPN label. As you know , the label stack can have more than one label, the VPN label would be the bottom label in the label stack.

Looking at your example, when A populates its labels to B, B is also going to populate All its labels to C & C to D.
For D then, it knows to reach Prefix at A, it needs to go through C , because C has already sent a specific label for A to D. So there is no need for a direct link between A to D to provide reach ability between both.

However, the above normally applies to provide IGP reachability through the TOP label to establish an MP-BGP session between A&D.

Then, a label switch path ( LSP ) is created between the ingress and egress LSRs nodes (A & D). The VPN label is then forwarded between both nodes using MP-BGP , in other words, when node (D) has a VPN, it sends a VPN label DIRECTLY. To node (A). Through MP-BGP, this label is not visible for the intermediate nodes B & C, they are just transparent devices to provide IGP reachability to establish an LSP session from A to D. When node D receive a VPN label from node A. Through. MP-BGP, it knows which interface to use and what is the next hop for this VPN label which is forwarded through the MP-BGP.

Regards,
Mohamed


Sent from Cisco Technical Support iPad App

Highlighted

Hi Vishal,

your question reminded me of a query I had when trying to figure out how LDP builds the LIB. In your example, if the traffic flow is from A to D, then LDP assigns the labels starting at D and working back to A.

So D tells C to use label n for the route associated with the egress interface. To be a bit more specific, if D is using PHP then it will assign an implict label for locally connected interfaces or locally generated routes, which has a value of 3.

To answer your original question, this is why D knows which interface the label is associated with, it told router C, and so on back to the ingress router.

Highlighted

Hello Vishal, just to add to Aacole post.

Router D, as the egress router, wil create FEC and assign label for local addresses, so Router D will know what the payload will be and how to forward packet. Router D than advertise this label to neighboring LDP peers which will advertise their local bindings to their LDP peers. Router A will know which label to use from his own LDP peer. This way intermediate routers do not need to know what is the payload.

Example:

R1 - R2 - R3 (R3's F0/0 IP: 34.0.0.3/24)

Cisco routers by default use PHP feature ->

http://www.mplsvpn.info/2008/11/what-is-php-penultimate-hop-popping.html

R3 will signalize to R2 that for prefix 34.0.0.0/24 use label number 3 - implicit NULL, which means that R2 will do POP operation and forward packet to R3 unlabeled in case of plain MPLS [in case MPLS VPN, with VPN label as top label].

R2 will create local binding for 34.0.0.0/24, lets say label 22 and advertise this binding to LDP peers. So if R2 receive mpls packet with top label 22, R2 will do POP operation, remove top label and forward as unlabeled IPv4 packet toward R3.

R1 will receive from from R2 that for 34.0.0.0/24 is using label 22. R1 will also create local binding for this prefix let say label 18 and advertise this binding to its LDP peers.

Now the promised example

R1 will receive packet with top label 18, R1 will make lookup in LFIB and decide to make SWAP operation [18 -> 22] and forward packet R2. L2 header will look like this: src MAC | dst MAC | type 8847 [MPLS unicast]

R2 will receive packet with top label 22, R1 will make lookup in LFIB and decide to make POP operation [remove top label] and forward packet to R3. L2 header will look like this: src MAC | dst MAC | type 0800 [IPv4]

R3 will receive IPv4 packet and forward packet based on CEF table.....

Now earlier I said that R3 create FEC so it knows how to forward packet, but if you noticed R2 stripped MPLS label and create new L2 header with EtherType 0800, but how R2 know that payload is IPv4?

- R3 signalized this to R2 together with label bindings [see the image]

Best Regards

Please rate all helpful posts and close solved questions

Best Regards Please rate all helpful posts and close solved questions

View solution in original post

Highlighted

Its a good explanation..

Regards
Thanveer
"Everybody is genius. But if you judge a fish by its ability to climb a tree, it will live its whole life believing that it is a stupid."

This widget could not be displayed.