Hi Michael

Thanks for the feedback.

On Mon, 25 Apr 2016 15:07:25 -0400, Michael Richardson <[email protected]> said:

> [email protected] wrote:
>> I'm starting to feel stupid talking to myself here.  What are the
>> magic words I need to say to get any kind of response to this issue?

>> It's a rather fundamental difference in behaviuor and it breaks my use
>> case.  Help, please.

>>>> I've been using quagga for a long time to implement router-style
>>>> "loopback" addresses on multi-homed hosts, i.e. I configure a /128 on
>>>> the lo device and announce it via BGP.  The host receives a default
>>>> route ::/0 and I use BGP policies to select which interface to prefer
>>>> for outbound traffic.  At the same time, the host uses SLAAC to
>>>> set up a default route on each interface as a fallback.

> Sounds reasonable.

> you show:

>>>> default via fe80::2a94:fff:fefd:5bc0 dev eth0  proto kernel  metric
>>>> 1024  expires 1794sec hoplimit 64

> vs

>>>> default via fe80::207:7dff:fe76:5980 dev eth0  proto ra  metric 1024
>>>> expires 1631sec hoplimit 64

>>>> The obvious difference is that the 3.16 kernel uses proto "ra" instead
>>>> of proto "kernel" for the routes learned via SLAAC (i don't know in
>>>> which kernel version this started to happen).  I'm totally unfamiliar
>>>> with the Quagga code, but a glance at
>>>> zebra/rt_netlink.c:netlink_routing_table() seems to suggest that
>>>> routes of type "kernel" are always ignored due to

>>>> if (rtm->rtm_protocol == RTPROT_KERNEL)
>>>> return 0;

>>>> Since the routes in question are now using proto "ra", they are no
>>>> longer ignored, hence the different behaviour of zebrad.

>>>> So, my question is whether this is really how it's supposed to be.  If
>>>> so, how can I override it?  I do believe that I should be able to do
>>>> that.  If it's a bug, maybe routes of type RTPROT_RA should be ignored
>>>> as well?

> It sounds reasonable to me.
>    if (rtm->rtm_protocol == RTPROT_KERNEL || rtm->rtm_protocol == RTPROT_RA)

> Maybe change that line above and see if works for you?

Yes, this solves my problem.  If that's really the proper fix, it
would be great if somebody could prepare a proper patch for this.

--
Alex

_______________________________________________
Quagga-dev mailing list
[email protected]
https://lists.quagga.net/mailman/listinfo/quagga-dev

Reply via email to