9

I have been going through the MPLS technology recently.I have this doubt in my mind after reading some of the features of the MPLS.

A---B---c
    |    |
    D----E

Lets say routers A,E are LER and B,C,D are LSR,we want to send traffic from A->E. I have learnt that only LSR can initially assign labels and In LDP, downstream routers initiate the distribution of labels and the label/FEC binding.

Can someone please explain me
1.)how A(LER) can transmit the packets to B(LSR).
2.)how can B know which label and port to forward,if it receives the distribution from C(Where C and D are downstream routers)

Thanks.

12

Label itself is either an aggregate label, which means label does not have rewrite information attached to it, so it does not know egress interface nor egress MAC address. Aggregate labels are used for example to connected networks.
Aggregate label implies that you do not know egress information after MPLS lookup, so you must do normal IP lookup to determine egress information.

Normal label is attached with egress rewrite information, that is lookup against label will return egress interface (with all necessary information, like MAC address, VLAN etc)

Lets assume all links are IGP metric 1, except B-C is metric 2.

For A to send to E's loopback (192.0.2.5) following will happen

  1. E will allocate either explicit (0) or implicit (default) for 192.0.2.5/32
  2. E will distribute the prefix+label (FEC) to C and D, using LDP
  3. C will allocate local label for this, say 100 (could be anything)
    1. C will program FIB entry, so that label 100 points to interface towards E, and MPLS label operations 'SWAP 0' if explicit null, or 'POP' if implicit null
    2. C will program FIB entry, so that prefix 192.0.2.5/32 points to interface towards E, and MPLS label operation 'PUSH 0' if explicit null
  4. D will allocate local label for this, say 200 (could be anything, even 100, 300, 400)
    1. D will program FIB entry, so that label 200 points to interface towards E, and MPLS label operation 'SWAP 0' if explicit null, or 'POP' if implicit null
    2. D will program FIB entry, so that prefix 192.0.2.5/32 points to interface towards E, and MPLS label operation 'PUSH 0' if explicit null
  5. D and C will distribute the prefix+label to B, using LDP
  6. B will allocate local label for this, say 300 (could be anything)
    1. B will program FIB entry, so that label 300 points to interface towards D (because of IGP metric!), and MPLS label operation 'SWAP 200'
    2. B will program FIB entry, so that prefix 192.0.2.5/32 points to interface towards D, and MPLS label operation 'PUSH 200'
  7. B will distribute the prefix+label to A, using LDP
  8. A will allocate local label for this, say 400 (could be anything)
    1. A will program FIB entry, so that label 400 points to interface towards B, and MPLS label operation 'SWAP 300'
    2. A will program FIB entry, so that prefix 192.0.2.5/32 points to interface towards B, and MPLS label operation 'PUSH 300'

Now what happens in forwarding plane when A sends to 192.0.2.5/32

  1. A will PUSH (impose) label 300 and send towards B
  2. B will consult FIB for 300, which is Interface D and SWAP 200
  3. D will consult FIB for 200, which is Interface E and POP (or SWAP 0)
  4. E will receive frame
2
  • 1
    Thanks mate.What happens if the B-C is also metric 1 ? – starkk92 Aug 21 '13 at 10:43
  • 2
    Is B-C metric is also 1 and load-balancing is disabled, there is some tie-breaker, like router-id. If load-balancing is enabled, you're going to use ECMP (Equal Cost Multi Path). MPLS in no way changes normal IPv4/IPv6 behavior in case of load-balancing, so if you understand how IPv4 works in this case, it's exactly the same, only with labels added to the frames. So in step 6.1 and 6.2 you'd add TWO FIB entries, and traffic would do HASH(keys) -> [12] to decide which one to use. – ytti Aug 21 '13 at 10:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.