Cisco Support Community
cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Bronze

CEF LOAD balancing in MPLS core

 

Hi everybody

 

Please consider the  following example:

 

R1-------R2 s1------R3
                    s2------
           
R1 ( lo:1.1.1.1) has IBGP with R3(3.3.3.3)

R2 is our core router. LDP is on all interfaces on all routers. Assume this BGP free core scenario . R3 is advertising 30.30.30.0 via BGP to R1

R3 has no knowledge of 30.30.30.0/24


R2 has following mpls forwarding table:

Local  outgoing  prefix       int
16      POP      3.3.3.3/32    s1
                 3.3.3.3 /32   s2

Let suppose R1 has a packet to send to 30.30.30.1

R1 sends the packet with label 16, R2 receives it checks the LFIB and forwards it to R3

 

In CEF load balancing, an operation is performed on the src ip and dest ip which yeilds a hex a value. This hax value then determines which interface a router will use to forward packet.

 

 

Above in our example, how  does R2 determine which links to forward the packet out to R3 ?

1)Will R2 use source ip and dest ip to determine that  though R2 has no knowledgeof dest ip 30.30.30.1 ?


2) How about if labelled packet is not IP packet we see in our example, rather it is ATOM, carrying Ethernet frame as a payload ?
How does R2 choose link in such case ?


Thanks

2 ACCEPTED SOLUTIONS

Accepted Solutions
Cisco Employee

Hi, 1)Will R2 use source ip

Hi,

 

1)Will R2 use source ip and dest ip to determine that  though R2 has no knowledgeof dest ip 30.30.30.1 ?

<Nagendra> Yes. If I remember it right, the hardware ASIC are capable of looking upto 5 label size stack and use hashing based on label/IP src/dst to identify the egress interface (from ECMP path).


2) How about if labelled packet is not IP packet we see in our example, rather it is ATOM, carrying Ethernet frame as a payload ?
How does R2 choose link in such case ?

<Nagendra> If the payload is non IP, it relies only on the label stack. Infact that is why FAT label was introduced. 

 

There is also a special purpose label as "Entropy Label" that is used to hash the input and include it as label in the stack so any transit nodes doesnt need to perform deep stack lookup for load balancing hashing. This is currently not supported in CIsco devices and not sure about the support plan.

 

-Nagendra

Cisco Employee

Hi Sarah,Per my understanding

Hi Sarah,

Per my understanding, the hash bucket is not a fixed size table but supports a maximum of 16 (and so 16 ECMP paths). It depends per prefix entry in CEF table. In your case, the egress interfaces are 3 and the hash bucket will be 15 for the entry. It is not 16 with 1 bucket unassigned, but the prefix ith 3 ECMP apth will only have 15 buckets assigned.

 

 

You can try creating a topology with 3 ECMP paths between R1 and R2 and 4 ECMP paths between R2 and R3.

 

Now use "show ip cef <prefix> internal" and you will see 15 hash buckets assigned from R2 to R1 while 16 buckets assigned from R2 for R3.

 

Hope this clarifies.

 

BTW, your queries always shows that you try to learn a technology in a very detailed manner. Keep it up..Really appreciate it :)

Thanks,

Nagendra

 

5 REPLIES
Cisco Employee

Hi, 1)Will R2 use source ip

Hi,

 

1)Will R2 use source ip and dest ip to determine that  though R2 has no knowledgeof dest ip 30.30.30.1 ?

<Nagendra> Yes. If I remember it right, the hardware ASIC are capable of looking upto 5 label size stack and use hashing based on label/IP src/dst to identify the egress interface (from ECMP path).


2) How about if labelled packet is not IP packet we see in our example, rather it is ATOM, carrying Ethernet frame as a payload ?
How does R2 choose link in such case ?

<Nagendra> If the payload is non IP, it relies only on the label stack. Infact that is why FAT label was introduced. 

 

There is also a special purpose label as "Entropy Label" that is used to hash the input and include it as label in the stack so any transit nodes doesnt need to perform deep stack lookup for load balancing hashing. This is currently not supported in CIsco devices and not sure about the support plan.

 

-Nagendra

Bronze

Hi Nagendra Another question

Hi Nagendra

 

Another question just came to my mind

 

Here is quote from my book (  MPLS FUNDAMENTALS) about CEF bucket values:

 

 

 

 

 

Sixteen hash buckets exist. These hash buckets distribute the load of traffic among all possible outgoing paths in the best possible way. For example, in the case of two outgoing paths, eight hash buckets are assigned to each outgoing path. In the case of three outgoing paths, five hash buckets are assigned to each outgoing path, and one hash bucket is unassigned. In short, if 16 is not divisible by the number of paths, the remainder hash buckets are not used and are disabled

 

Lets suppose our router ( R1) has three equal  cost links, after R1 perform the hashing algorithm on src ip and dest ip, R1 finds the hashing bucket 16 be used to forward the packet out . But Bucket 16 is  not mapped to any outgoing interface as there is only three links; bucket 16 value is not being used.

What action will R1 take ?

 

Thanks

 

 

 

 

 

 

 

Cisco Employee

Hi Sarah,Per my understanding

Hi Sarah,

Per my understanding, the hash bucket is not a fixed size table but supports a maximum of 16 (and so 16 ECMP paths). It depends per prefix entry in CEF table. In your case, the egress interfaces are 3 and the hash bucket will be 15 for the entry. It is not 16 with 1 bucket unassigned, but the prefix ith 3 ECMP apth will only have 15 buckets assigned.

 

 

You can try creating a topology with 3 ECMP paths between R1 and R2 and 4 ECMP paths between R2 and R3.

 

Now use "show ip cef <prefix> internal" and you will see 15 hash buckets assigned from R2 to R1 while 16 buckets assigned from R2 for R3.

 

Hope this clarifies.

 

BTW, your queries always shows that you try to learn a technology in a very detailed manner. Keep it up..Really appreciate it :)

Thanks,

Nagendra

 

Bronze

Thanks Nagendra for your kind

Thanks Nagendra for your kind words and for helping me learn the ropes in MPLS.

 

Have a great weekend!!

Bronze

Thanks Nagendra

Thanks Nagendra

299
Views
0
Helpful
5
Replies
CreatePlease to create content