On 7/26/2012 1:54 AM, Ondrej Zajicek wrote:
<SNIP>
i have tried to use bgp in a local as between the master and the LB but
it seems that on the LB when he gets the static route it states the
route:
0.0.0.0 .... unreachable.
This is probably caused by 'gateway recursive' mode on BGP (default for IBGP).
See 'gateway direct' option and then question 'IBGP does not work ...' in FAQ:
https://git.nic.cz/redmine/projects/bird/wiki/FAQ
Another, completely different way how to implement this would be that
'master' would just announce which proxies are 'usable' (through one BGP
session) and LBs would fill all tables from this information. That could
be done using static recursive routes. For example for proxy 10.100.1.10
we will use auxiliary pseudo-IP 10.100.2.10 and if 10.100.1.10 is
usable, master will propagate pseudo-route:
10.100.2.10/32 via 10.100.1.10
to LB. On LB, there will be static recusive route:
route default recursive 10.100.2.10
If master propagated that pseudo-route, this recursive route will appear as:
route default via 10.100.1.10
otherwise it will appear as
route default unreachable
You could have such recursive route for each proxy so you will get a
table with a set of default routes that are either corrrect or
unreachable. Unfortunately being unreachable does not lower route
priority, so you would have to use another table connected with pipe and
in pipe filter you do something like 'if dest = RTD_UNREACHABLE then
prio = 1'. this will move all unreachable routes to the bottom, so the
reachable route with highest configured priority will be used. This have
to be replicated for each table on LB (probably with different priority
for each static routes so that different one will be used as best one),
only the table with pseudo-routes received from master will be shared.
It is pretty complex and i don't know if it does what you really need,
but it should work.
well i have tried to implement the mutipath idea i had but it seems that
on bgp i cant send multipath + weight from one host static protocol to
another.
is there any way to import a multipath statement with some coding?
what i mean is that i will advertise multiple statements of default
route that are under 100 and 1 means unreachable.
and on the destination LB i will gather them all together and will put
them in a multipath arrray.
since im not that experience with routing protocols i lack some knowledge.
Thanks,
Eliezer
--
Eliezer Croitoru
https://www1.ngtech.co.il
IT consulting for Nonprofit organizations
eliezer <at> ngtech.co.il