[j-nsp] Broken Per-Flow load sharing

Nalkhande Tarique Abbas ntarique at juniper.net
Thu Aug 20 12:15:53 EDT 2009


Beginning with JUNOS Release 9.3, you can enable router-specific load
balancing by configuring a unique, load balance hash value for each
Packet
Forwarding Engine slot.

To configure per-prefix load balancing. include the load-balance
statement
at the [edit forwarding-options] hierarchy level:

[edit forwarding-options]

load-balance {
        indexed-next-hop;

             per-flow {
                     hash-seed number; <---

             }

}

To enable per-flow load balancing, you must include the hash-seed number
statement. The range that you can configure is 0 through 65,535. 0 is
the
default value; Though if no hash seed is configured, the elected
forwarding next hop should be the same as in previous releases. 

Hope it helps!

 
Thanks & Regards,
Tarique A. Nalkhande

-----Original Message-----
From: juniper-nsp-bounces at puck.nether.net
[mailto:juniper-nsp-bounces at puck.nether.net] On Behalf Of Serge Vautour
Sent: Thursday, August 20, 2009 8:14 PM
To: juniper-nsp at puck.nether.net
Subject: [j-nsp] Broken Per-Flow load sharing

Hello,

We have several M320s & T640s in our network running 8.5R4.3. They are
all configured for per-flow load sharing:

RouterA> show configuration routing-options forwarding-table 
export perDestinationLoadBalance;

RouterA> show configuration policy-options policy-statement
perDestinationLoadBalance 
/* Policy exported against forwarding-table configuration to ensure
per-flow-destination load balance */
then {
    load-balance per-packet;
}


The routers have 2x 10GEs via switches to reach Aggregation routers.
OSPF sees 2 equal cost paths to the BGP next hops and splits the traffic
across the links. This has been working fine for a few years (it worked
on 8.2 as well). 

We recently upgraded to 9.3R2.8 and load sharing is no longer working:

RouterA> show interfaces xe-1/0/0 detail | match "Output packets.*pps"

   Output packets:              6183879                    7 pps
     Output packets:                    0                    0 pps
     Output packets:                52542                    6 pps
     Output packets:                19279                    0 pps
     Output packets:                 3134                    0 pps
     Output packets:                    0                    0 pps

RouterA> show interfaces xe-2/0/0 detail | match "Output packets.*pps"

   Output packets:         285078265156               228705 pps
     Output packets:                    0                    0 pps
     Output packets:         280511288646               221803 pps
     Output packets:           4118406919                 6075 pps
     Output packets:            442607080                  894 pps
     Output packets:                    0                    0 pps

The first "Output" line is the 10GE aggregate. The other output lines
are the VLANs on the 10GE. Note that the xe-1/0/0 interface has next to
0 pps on output!! We have upgraded two M320s and they are both showing
the same problem.

My guess is that the per-flow load balancing hash has changed in the
newer release. The 9.3 manual talks about setting something like this:

[edit forwarding-options hash-key]
family inet {
  layer-3;
  layer-4;
}

But it's a bit unclear as to what happens if it isn't set. Can anyone
confirm that this will restore per-flow load sharing?

Any help would be appreciated. 

Thanks,
Serge


      __________________________________________________________________
Looking for the perfect gift? Give the gift of Flickr! 

http://www.flickr.com/gift/
_______________________________________________
juniper-nsp mailing list juniper-nsp at puck.nether.net
https://puck.nether.net/mailman/listinfo/juniper-nsp


More information about the juniper-nsp mailing list