RE: funny ECMP
- From: Ingo Flaschberger <if@xxxxxx>
- Date: Tue, 24 Aug 2010 02:33:03 +0200 (CEST)
Dear Li,
nice to hear from you.
1st: i have send in a bugfix:
http://www.freebsd.org/cgi/query-pr.cgi?pr=149917
I have changed the route selection code of ecmp to
balance only between routes of the same weight.
(see attached file)
As Qing Li mentioned months ago, there are problems with static routes
and interfaces.
Do you have the exact link to the email thread?
There were no pending ECMP related issues since my last round of
commits
as far as I can remember.
http://lists.freebsd.org/pipermail/freebsd-net/2010-January/024420.html
http://lists.freebsd.org/pipermail/freebsd-net/2010-February/024539.html
Example 1:
ifconfig em1 alias 10.13.13.90/24
ping 10.13.13.95 ok
route add 10.13.13.0/24 10.11.11.1 -weight 2
ping 10.13.13.95 broken (arpresolve: can't allocate llinfo for
10.13.13.95)
Could you please explain a bit on exactly what you try to
accomplish here with this configuration?
rebuilding my core-routers.
it's a very special setup:
2 redundat core routers, connected via ospf (quagga),
vrrp to server-side.
currently I use a very modfied ucarp version because freebsd 6 only allows on route.
problem is with standard freebsd and carp, that there is at the failover router a via ospf received route to the server-side interface. when now carp tries to add the route during failover, it fails. and seconds later the ospf route times out.
so, i hoped to use carp, quagga and freebsd ecmp to be able to avoid this problems now.
so I need route-merics (weights?) to prefer direct interface routes (connected) before static ones.
perhaps I also need to change quagga to send also the merics to the kernel, as in differnce to, for example, cisco router, connected and static routes have the same weight.
deleting the last static multipath routes seems to affect?, destroy?
the interface route.
system crashes in:
/usr/src/sys/net/route.c:370
rn = rnh->rnh_matchaddr(dst, rnh);
if (rn && ((rn->rn_flags & RNF_ROOT) == 0)) {
newrt = rt = RNTORT(rn);
here -> RT_LOCK(newrt);
RT_ADDREF(newrt);
if (needlock)
I will take a look.
thanks.
Kind regards,
Ingo Flaschberger
_______________________________________________
freebsd-net@xxxxxxxxxxx mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscribe@xxxxxxxxxxx"
- Follow-Ups:
- RE: funny ECMP
- From: Ingo Flaschberger
- RE: funny ECMP
- From: Li, Qing
- RE: funny ECMP
- From: Ingo Flaschberger
- RE: funny ECMP
- References:
- funny ECMP
- From: Ingo Flaschberger
- Re: funny ECMP
- From: Ingo Flaschberger
- RE: funny ECMP
- From: Li, Qing
- funny ECMP
- Prev by Date: RE: funny ECMP
- Next by Date: RE: funny ECMP
- Previous by thread: RE: funny ECMP
- Next by thread: RE: funny ECMP
- Index(es):
Relevant Pages
|