Re: BGP outgoing traffic balancing between 2 uplinks

2013-12-06 Thread Sergey Popovich
В письме от 6 декабря 2013 12:46:48 пользователь Martin Kraus написал:

> 
> I don't think there is. cisco has a bgp multipath but that basically works
> only if you have two uplinks to the same provider as it multipaths only
> routes that have nearly all the attributes the same (pref,as path,...).

Moreover, having enabled this on cisco with "bgp bestpath as-path multipath-
relax" (hidden in IOS) without completely understanding traffic paths could
lead traffic reordering and other problems, as path within AS in two upstreams
usually differ. Altough by default cisco do per flow traffic balance (src+dst 
ip...), which lowers problem.

As for function, describing "bestpath" selection algo within BIRD by 
distributing some prefix lengths across uplinks, this could improve
sharing, but this gives no real hint for data plane to reach ~50/50%.

BTW: why not use just static default routes, which is supported in BIRD
for multipath load sharing by Linux kernel? In this case all load sharing job 
will be put to ECMP implementation in Linux kernel (which is good enough
as for me).

> 
> mk

-- 
SP5474-RIPE
Sergey Popovich



Re: BGP outgoing traffic balancing between 2 uplinks

2013-12-06 Thread Martin Kraus
On Fri, Dec 06, 2013 at 12:29:53PM +0200, 0dm1n wrote:
> sorry, in one second after message has been sent got an idea:

that's what usually happens:-)

> filter Uplink1_in {
> if (net.len > 19) then
> bgp_local_pref=150;
> else
> bgp_local_pref=100;
> accept;
> }
> 
> result: 60%/40% (not bad)
> may be exists another less brusquely method...

I don't think there is. cisco has a bgp multipath but that basically works
only if you have two uplinks to the same provider as it multipaths only routes
that have nearly all the attributes the same (pref,as path,...).

mk


Re: BGP outgoing traffic balancing between 2 uplinks

2013-12-06 Thread 0dm1n

On 06.12.2013 12:14, 0dm1n wrote:

filter Uplink1_in {
 if (net.len > 19 && "other_uplink_is_alive") then
reject;
 else {
 bgp_local_pref=100;
 accept;
 }
}


sorry, in one second after message has been sent got an idea:
filter Uplink1_in {
if (net.len > 19) then
bgp_local_pref=150;
else
bgp_local_pref=100;
accept;
}

result: 60%/40% (not bad)
may be exists another less brusquely method...

--
Best Wishes