350-501 SPCOR Cisco CCNP Service Provider – MPLS Label Distribution Protocol part 4

  1. Penultimate Hop Popping

Penalty made hop popping. So penalty made hop popping is actually a built in feature inside the MLS service for network which is going to optimize the MP’s performance. Now how it is going to optimize. So PHP is actually a behavior which is going to remove the requirement of doing the label lookup two times on the provider edge router. Now which means on the edge router before the label packet comes inside, before it goes outside as a normal IP packet, it’s not going to do the label lookup two times, it’s going to do only one time. Let’s see how exactly it is going to work. In general. Let’s first take an example. If there is no PHP, how it is going to behave. And then we’ll see with PHP how it is going to behave.

Now first let’s try to understand if there is no PHP, if I just go with a normal label looker that’s second example, I got a destination here, ten dot network. And each and every router is going to assign a label. Let’s say the router one is going to assign a label of 20 for ten dot network. And the router two is going to assign a label of 21. And then router three is going to assign a label of 30. And then router four is going to assign a label of 25. Now by default, whenever a packet enters as a normal IP packet inside the service for a network that is MBL’s domain, router one is going to see the outgoing label. The outgoing label will be the remote label. It will be 21. It’s going to send with an outgoing label of 21.

Now what router two is going to do? Router two is going to swap the 21 label with an outgoing label of 30. That’s what swapping happens. So here it’s going to push the label that is adding the label. And then router three, router three is going to see the outgoing label. The outgoing label is 25. So router 30 will be sacked with a label of 25 and finally reaches the router four. Now what router four is going to do is router four will see what is the outgoing label for 25. It says it’s outgoing label. It’s not a label, it’s a normal IP packet. When the router four realizes that it’s a normal IP packet, then first it is, then it’s going to check your forwarding information base and it says what is the destination network? Tendon network.

Tendon network, okay, tendon network is on which interface and it will seek interface something let’s say f zero by zero and simply send as a normal IP packet. But if you see the behavior here, the router four is actually doing the lookup two times. First it is going to check the label forwarding information base to verify what is the outgoing label. And then realizes that the outgoing label, outgoing is not a label packet. It’s a normal IP packet. So then it is going to see your forwarding information based table and then forward as a normal IP packet. So this PE router, the provider edge router is actually doing lookup two times. Now this is something what happens if there is no PHP, if we just talk about a normal lookup happens inside the service for network.

Now let’s take an example. With PHP enabled, by default it’s enabled. So with PHP enabled, let’s take a similar kind of example here. Router one is going to assign a label of 20. Router two is going to assign a label of 21 and router three is going to assign a label of 30. And the router four, let’s say it’s a directly candidate. So there’s no label here. So now actually router four will assign a label of implicit null here for all your locally originated routes. The router four is going to assign a label of implicit null instead of another label. Now how exactly it’s going to work in this scenario? Now in this scenario again, when a packet enters a normal IP packet inside the provider network, the router one is going to see the outgoing label, outgoing label is 2021 and then sent to router two.

Now router two is going to swap the label with 30 because the outgoing label is 30 for the router three. And then now router three which is a PHP router penalty mate router penalty made means it’s a one hop before router. What it is going to do is it is going to remove the label because the router three knows that it’s a directly connected network for router four. So it is going to remove the label and it’s going to send as a pop label. Now it’s more like no label we can send. So it’s going to remove the label, pop label. And then when the router four receives with a pop nothing but it removes a label, it’s going to only look up, it’s going to see only the routing table, fib fib table in the inside the sip and verify what is the next stop and exit interface and forward as a normal IB packet.

If you just verify the behavior what we have seen in a previous scenario without PHP in this case there is no label forwarding information based, no lfib verification checking here it’s going to see only the Fib table the forwarding information based because the one hop before router is actually reviewing the label and it is sending as a pop label nothing but it’s reviewing the label and send it to router four. And router four understands that, okay, it’s without label. So it’s going to simply forward as a normal IP packet. So this is the default behavior with PHP. Now the question is how the router three, you can just get a question like okay, router three is going to pop the label before it sends to the last router.

But now how the router Three is going to learn or how the router three is going to understand that this router is the last router, the next router is the last hop and this router is a one hop before how the router three is going to understand. So the router three understands through the advertisements given by the router four. Now what happens here is now your router for the P router, in my case, the edge router is going to advertise a label with a label value of three. Now this label value of three, we call it as implicit null label. So that’s what if you remember in our previous examples, in the practical verification, we have seen that the router four is going to assign a local label of three, which is nothing but implicit null label.

Now based on this label, okay, so implicit null is a label which is assigned for locally originated routes. Now whenever a router three receives any label with this implicit null, it’s going to understand that it’s a last hop router and it has to pop the label before it sends anything. Whenever it sees a next label or outgoing label as implicit null, then it will automatically what it is going to do is it is going to pop the label. It will just remove the label and send as a pop that’s what you’ll see as an outgoing label will be as a pop before it reaches the router fold. Now, if you just get back to our command line to verify the same thing, like if you see the diagram here I have written what are the local labels assigned by the router.

If you are watching the previous videos, if you remember I have used the label of 10 three, but now it has changed to 10 seven. And the reason is actually I reconfigured my complete MPLS because I’m doing this recording the next day. So I have to reconfigure the complete MPLS service once again. So there might be a change in the label. So as of now, as for my configurations, the router one is going to assign a label of 10 seven for the network 40 dot network 41 one. And the router two is going to assign a label of 20 six. And router three is going to assign a label of 30 six and router four with an implicit null because it is a dietary guide. So router four is going to advertise the label with implicit null. Let’s verify the same thing here.

So I’ll go to router three here, and if I use Show MPLS forwarding table, or you can just say Show MPLS boarding table for the network with a slash value of eight. Now you can see router three, it’s a PHP router, the penultimate router before before to reach router four, it’s going to send as a pop tag. Now ongoing label is a pop tag, which means it is going to remove the label before it actually sends router four. If we just go back to router two again to verify the same thing, show MPLS forwarding table 40, dot zero zero, dot eight. Let’s try to verify the same thing starting from the router one. So show MPLS forwarding table 40, dot zero zero with slash eight subnet mask, I can see router one is going to assign a label of 10 seven, and the outgoing label is 20 six.

Router two, on the router two, the outgoing label will be 30 six, because that is what router three assigns. And on the router three, the outgoing label will be pop tag, which means the router three is going to remove the label before it sends to router four. But if you see show MPLS LDP bindings as per our previous examples, for 40 dot network with eight submit mass, now I can see the remote binding for router four, it will be implicit null, which means here the router four is going to advertise with a label called implicit null for all the locally originated routes. Based on that, the router three understands that, okay, 49 network belongs to the next router, and it’s a directly connected network for that.

So anything, if I’m sending anything, it’s going to map the remote binding with implicit null, and in your forwarding table it will be seen as pop tag. And whenever you see the remote binding as implicit null, it will automatically use pop tag. That is what PHP penalty made hopping. Now you can ask me, is there any way to disable this PHP feature? Now we can also disable this PHP feature, but it’s really not recommended in most of the cases unless you are using some MPLS quality of service. So probably if you want to disable this PHP feature, we can just go to router three and router four. So I can add one command called MPLS label explicit null. mPLUS LDP explicit null. Yeah, m plus LDP explicit null. The same thing I’m going to do on the router four as well.

I’m going to say MLS LDP explicit null. Now there is a command called MP list LDP explicit null. And using this command, what I can do is I can disable this PHP feature. Now, whenever you disable the PHP features now, router four is going to advertise with a label of zero type, okay? So for all the locally originated routes, before disabling the PHP, the router four is advertising with the label of impressive null, right? But when once you disable this PHP feature, it’s going to autodize with a label of zero here. So let’s go to our command line and verify on the router three, if I use show MPLS forwarding, I can see the tag is explicit null. It’s not implicit null null, it’s explicit null. And if I verify my forwarding table, I’ll see the outgoing label will be zero as I.

Now when exactly we need to disable this? Now probably this is more recommended when you are using something called MPLS quality of service. If you’re implementing especially in the advanced CCI service for networks, if you’re preparing for CCI, you will come across some quality of service implementation over MPLS networks. Now, quality of service is actually a type of marking we can do inside the network. Let’s say I want to give some priority for specific traffic, then we apply some marking. So this will be a normal IP packet enter and will be added with a label. And then for the next order, the router two will be having an IP packet and a label. And the router three is also having an IP packet with a label information. So now when the router three sends out a router four, it’s going to remove that label automatically.

That is what PHP feature. Now, by default, if you’re implementing some quality of service, we do some marking here, marking for selected trial, we do some IP presence or DSCP values marking. And this marking information will be carried inside the service for network, inside the label field. If you remember, label is a 32 bit address in that there are three bits which are used for experimental bits, we call them as experimental bits. Now, if this last router do not receive that label information, in that case it will not be able to carry, we don’t have the end to end marking will not be present. So the marking will be only available up to here. Because the last router is removing the label to provide end to end quality of service, we definitely need to have we may need to disable this PHP feature.

In that case we can configure something called explicit. Now, apart from that, any other scenarios, it’s really not recommended to disable the PHP. But the only advantage we get if there is HP is the routing. Lookup, generally it will happen only one time because the P router is just forwarding based on the IP packet. Because a PHP router, one hop router, one hop before it’s going to remove the label and send us a pop label. That’s what pop outgoing label will be pop, something like that. So unless and uncle if you’re using some impulse quality of service, you really need no need to disable the PHP. But if you want to disable, we can just go and add the command called mPLUS LDP Explicit. Now, if you want to reenable again, you just need to remove remove that command by adding a no.

 

img