It's a easy question. can someone tell me if it's true?
how does PHP work?
we have a topology:
P2 will remove the packet's label and this packet will be labeled with null label.
PE2 will perform a routing lookup.
my question is: what happened to null label?
PHP was created to divide 2 tasks, remove label of the packet and routing lookup, but if a packet still have a null label will PE2 have to this task?
To add little to Harolds answer:
There are two null labels, one is called the implicit null label the other is called explicit null label.
The explicit null label is 4 Bytes and really sent between LSRs. Thus f.e. the Ethertype of such a labeled packet will not be 0x0800 for IPv4 but 0x8847 for labeled packets.
PHP on the other hand means that the penultimate LSR really removes the top label and sends the rest. Q: Why does he do it? A: Because he is told so!
The ultimate hop LSR has to signal to the penultimate hop LSR to remove the top label. Thus the implicit null label was introduced, but only within LDP for signalling purposes. The implicit null label can not be sent in a real packet. It is just a place holder for the action: "Dear penultimate hop LSR, please pop the top label for the FEC and send me the rest.".
Hope this helps! Please rate all posts.
No null label (explicit null) is used by default on the penultimate hop router. The top label (also know as IGP label) is simply popped by P2 and the packet is forwarded to PE2.
1. In the case of mpls vpn, PE2 performs an LFIB lookup on the service label and forwards the packet to the proper egress VRF interface.
2. In the case of IP, PE2 simply performs an ip lookup.
The default can be changed so that the egress router (PE2 in this case) advertises an explicit null label (label value of 0) to the penultimate hop router, which causes this router to swap the incoming label for an explicit null label before forwarding the packet to the egress router.
Hope this helps,