PHP in MPLS Nw

Answered Question
Sep 1st, 2009
User Badges:

Following is a quote from MPLS VPN architecture page 47.


An egress Edge-LSR in an MPLS network might have to perform two lookups on a packet received from an MPLS neighbor and destined for a subnet outside the MPLS domain.



here it says that PHP is used for for networks outside MPLs domain, here is another statement:



Penultimate Hop Popping is used only for directly connected subnets or aggregate routes.


this means that if the route outside MPLs domain is more than a hop away i.e not direcetly connected to the Edge-LSR, Label for that route will not be removed by the second last router(one before the ELSR) , and the ELSR will have to perform to lookups one in LFIB and other in FIB....



kindly explain.. i have tested this and it does only works for directly connected networks no matter inside or outside MPLS domain...



Thanks


MukarraM

Correct Answer by shivlu jain about 7 years 8 months ago

Hi


You are right PHP works for directly connected and aggregated routes or summary routes. As stated in the scenario the PHP will work only on C to reach D. After that no PHP will work because it is not the MPLS domain.

Never think that for each and everyhop PHP will work. The PHP will work only one router before the destination. Assume if the destination is C router then B and D will perform the PHP. to reach C. After C the packets will move to ip cloud i.e. twowards customer.


regards

shivlu jain


  • 1
  • 2
  • 3
  • 4
  • 5
Overall Rating: 4 (1 ratings)
Loading.
shivlu jain Wed, 09/02/2009 - 00:06
User Badges:
  • Silver, 250 points or more

hi Mukarram


PHP is used to reduce the number of lookups. Lets assume you are having four routers CE1-R1-R2-R3-R4-CE4. R1 is getting update from from R4 for CE4. In this case R1 will forward the packets with next R4 Mp-iBGP loopback and R2 will check the label for R4 loopback and forward to R3. Now R3 will see that the R4 loopback is comming as implicit null, so it means R3 will remove the top label which is the IGP label and forward the packet with vpnv4 label to R4. For more please visit the given blog


http://shivlu.blogspot.com/2008/11/what-is-php-penultimate-hop-popping.html


regards

shivlu jain

Mukarram Jah Raheel Wed, 09/02/2009 - 01:25
User Badges:

hello shivlu,


thanks for ur reply...


the scenario i discussed is a simple one , its based on unicast IP forwarding.. no VPNs... ospf is the IGP...



shivlu jain Wed, 09/02/2009 - 01:43
User Badges:
  • Silver, 250 points or more

In simple IGP case a single label will be added in the packet and R3 will pop the label of IGP before forwarding packet to R4.


regards

shivlu jain

Mukarram Jah Raheel Wed, 09/02/2009 - 02:01
User Badges:

fine....


ur statement is true for networks directly connected to R4, PHP will work fir it...


what about networks connected to CE router..i.e not directly connected to R4.. PHP will no work ???

Peter Paluch Wed, 09/02/2009 - 02:38
User Badges:
  • Cisco Employee,

Hello,


I assume still that we are talking about plain IP routing with MPLS, no VPNs. The PHP will work even in that case.


The logic is simple: if a network in your LFIB has the "Untagged" information in the outgoing label binding, then you will advertise this network to your upstream neighbors with an implicit null label, requesting a PHP. This way, both the networks that are directly connected and the remote networks for which you don't have any label binding will be subject to PHP.


Best regards,

Peter


Mukarram Jah Raheel Wed, 09/02/2009 - 06:32
User Badges:

Hello Paluchpeter,


you are right we are talking about plain IP over MPLS,


let me put my quest again:

thanku for ur reply..


let me explain my query again....


topology : X - A - B - C - D - Y - Z


routers X , Y and Z are outside mpls domain...



the link between Y and Z has subnet 6.6.6.0/30 and it is ofcourse not directly connected with the ELSR-D...


my questions is, why does'nt PHP works for this prefix... I tried this in GNS3 and D only sent imp-null for nw directly connected (subnet on link bw router D and Y) to C. not for 6.6.6.0/30...


So my question : PHP only works for directly connected and aggregated routes.. ( as stated in all MPLS books)... what about networks that are one or more hop away from router D that is not directly connected with D .. for all nws router D still has to perform two lookups ..


ur last statement:

both the networks that are directly connected and the remote networks for which you don't have any label binding will be subject to PHP.


this is what I am interested to know,

but what all i read and did in GNS3 negates this.. it says PHP only works for directly connected and aggregated routes.........


Correct Answer
shivlu jain Wed, 09/02/2009 - 07:53
User Badges:
  • Silver, 250 points or more

Hi


You are right PHP works for directly connected and aggregated routes or summary routes. As stated in the scenario the PHP will work only on C to reach D. After that no PHP will work because it is not the MPLS domain.

Never think that for each and everyhop PHP will work. The PHP will work only one router before the destination. Assume if the destination is C router then B and D will perform the PHP. to reach C. After C the packets will move to ip cloud i.e. twowards customer.


regards

shivlu jain


Mukarram Jah Raheel Wed, 09/02/2009 - 13:39
User Badges:

hi shivlu,


but this brings up one more questions.... taking above example , network directly connected to D would less likely to be a destination for IP packets travalling through the MPLS network... and networks beyond router Z (not directly connected to D) will be more likely be the destination for packets...


so this means we are not utilizing the full adv. of PHP... what do u think should'nt D be advertising imp-null label for all labels not even directly connected to it..


B/c D still has to perform double lookups (LFIB and FIB)....

shivlu jain Wed, 09/02/2009 - 03:31
User Badges:
  • Silver, 250 points or more

Hi


The logic is very simple and easy to understand that PHP will work only with in MPLS cloud. It has nothing to do with CE.

You can go with ip cloud or vpn cloud the php algo will remain the same because customer is forwarding ip packet and receiving the ip packet.


Hope this will clear your doubt.


regards

shivlu jain

Actions

This Discussion