04-13-2013 12:45 AM
I am not talking about MPLS VPN here, but the simple MPLS.
Thanks
Vishal Bhugra
Solved! Go to Solution.
04-14-2013 03:01 PM
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
04-13-2013 02:01 AM
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
04-13-2013 10:05 PM
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
04-14-2013 01:37 AM
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
04-14-2013 05:31 AM
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.
04-14-2013 03:01 PM
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
04-15-2013 09:10 AM
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."
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide