[j-nsp] per packet/flow load balancing.

German Martinez gmartine@mafalda.opentransit.net
Mon, 25 Nov 2002 12:00:37 -0500 (EST)


Ben,

--

"Peace cannot be kept by force.   It can only be achieved by
       understanding."  Albert Einstein.


On Mon, 25 Nov 2002, Ben Buxton wrote:

>
> Since the IP2 processor, load balancing per packet is a bit of
> a misnomer. A modern Juniper will load balance per *flow*,

Internet Processor I ASIC forwarded traffic per-packet in a
round-robin fashion among the multiple next-hops.

Internet Processor II ASIC forwards packets based on individual traffic
flows (micro-flows).  Packets for each individual flow are kept on a
single interface.

Juniper didn't change the keyboard "per-packet" when they introduced the
IP2 Chip, to keep consistency in the config files


> even though the config says per-packet.
>
> You cannot do true per packet load balancing on a Juniper. Which
> is a good thing at the datarates they're designed for.
>

By default, the hash key use just Layer 3 information (Incoming Interface,
Dest IP, Source IP, IPv4 Prot ID).

As the hash-key control de info that is used int the load-balancing
algorithm you can give even more information to that algorithm if you
enable Layer-4 (Source Port, Dest. Port, TOS Byte).

Hash result is scaled down to the number of available next-hops.
All packets having the same hash will go to the same next-hop interface.

> So if you're measuring with a single flow, this might
explain it. >
> BB
>
> -----Original Message-----
> From: Jonathan Tse [mailto:jonathantse@pacific.net.sg]
> Sent: maandag 25 november 2002 16:59
> To: juniper-nsp@puck.nether.net
> Subject: [j-nsp] per packet/flow load balancing.
>
>
> Hi,
>
> This has been discussed many times here. Apologize if someone think this is
> too simple. But only now I give it a try and without luck.
>
> I have setup this in the test lab:
>
>            /-- IBGP -- router A -- EBGP --\
> router C <                                 > router D
>            \-- IBGP -- router B -- EBGP --/
>
> I believe there are equal cost paths but the router C doesn't seem to be
> able the load balance per packet.
>
> Below is a snapshot from router C:
>
> 192.168.44.0/22    *[BGP/170] 19:07:50, MED 90, localpref 350, from
> 192.168.9.2
>                       AS path: 64665 64665 I
>                       to 192.168.4.1 via ge-0/1/0.0
>                     > to 192.168.4.2 via ge-0/1/0.0
> 192.168.48.0/22    *[BGP/170] 19:07:50, MED 90, localpref 350, from
> 192.168.9.2
>                       AS path: 64665 64665 I
>                     > to 192.168.4.1 via ge-0/1/0.0
>                       to 192.168.4.2 via ge-0/1/0.0
>
> router C# show policy-options policy-statement load-balancing-policy
> from as-path TEST-AS;
> then {
>     load-balance per-packet;
> }
>
> router C# show policy-options as-path TEST-AS
> "64665 .*";
>
> router C# show routing-options forwarding-table
> export load-balancing-policy;
>
> I have even configured "multipath" at BGP but doesn't help still.
>
> I wonder how do I verify whether the per packet load balancing is being
> enabled other than traceroute.
>
> Thanks!
>
> Jonathan.
>
> _______________________________________________
> juniper-nsp mailing list juniper-nsp@puck.nether.net
> http://puck.nether.net/mailman/listinfo/juniper-nsp
> _______________________________________________
> juniper-nsp mailing list juniper-nsp@puck.nether.net
> http://puck.nether.net/mailman/listinfo/juniper-nsp
>