Re: Current bird via bookworm-backports?

2024-04-24 Thread Daniel Gröber
Hi Jakub and Ondřej, I'm also interested in using more recent bird versions in my deployment, but I don't use third-party repos on principle. Since I'm a DD I could just start uploading and maintaining a backports for bird2, is there I reason to not do that? My guess is you just want to avoid

Re: BGP on /32 (/128) interfaces

2024-04-15 Thread Daniel Gröber
Hi Arzhel, On Fri, Apr 12, 2024 at 11:57:38AM +0200, Arzhel Younsi wrote: > But for IPv6, it's cleaner to only require the router's link local address: > testvm2006:~$ ip -6 addr > inet6 2620:0:860:140:10:192:24:4/128 scope global > testvm2006:~$ ip -6 route > default via

Re: [Babel-users] Coexistence of multiple babel daemons on the same host

2024-03-31 Thread Daniel Gröber
Hi Juliusz, On Sun, Mar 31, 2024 at 04:35:28PM +0200, Juliusz Chroboczek wrote: > > I've just come across a reason I'd want to run babel with both bird and > > babeld on the same node and have them become neighbours. > > I hope you know what you're doing. I sure hope so too, haha. No it's

Coexistence of multiple babel daemons on the same host

2024-03-31 Thread Daniel Gröber
Hi Babelers, I've just come across a reason I'd want to run babel with both bird and babeld on the same node and have them become neighbours. The details are tedious -- my usual disclamer applies ;) This got me to think about something I'd observed in the past and been meaning to write about

Re: [Babel-users] [RFC] Replace WireGuard AllowedIPs with IP route attribute

2023-11-21 Thread Daniel Gröber
Hi Alexander, On Wed, Nov 22, 2023 at 12:17:49AM +0100, Alexander Zubkov wrote: > > Can you think of a use-case where fpRPF isn't enough? > > Yes. IMHO, the problem with RPF is that routing table doesn't reflect the > network topology, but only a subset of it. Right that is the fundamental

Re: [Babel-users] [RFC] Replace WireGuard AllowedIPs with IP route attribute

2023-11-19 Thread Daniel Gröber
Hi Erin, Juliusz, On Sat, Nov 18, 2023 at 11:21:57AM +0100, Erin Shepherd wrote: > On Sat, 18 Nov 2023, at 03:19, Daniel Gröber wrote: > > That would be a problem as I specifically want to tie the source address > > filtering to this too. I'll have a look at the internals (if and)

Re: [Babel-users] [RFC] Replace WireGuard AllowedIPs with IP route attribute

2023-11-17 Thread Daniel Gröber
Hi Alexander, On Thu, Nov 09, 2023 at 12:57:26PM +0100, Alexander Zubkov wrote: > I heard recently about the lightweight tunnel infrastructure in Linux > kernel (ip route ... encap ...). And I think this might be helpful in > the context of this thread. I hadn't seen that yet, thanks for

Re: babel rtt in bird: How to set the RTT equal to the latency?

2023-10-18 Thread Daniel Gröber
Hi Marek, On Wed, Oct 18, 2023 at 10:49:34PM +0200, Marek Küthe wrote: > I have seen that there is both rtt-min and rtt-max setting in bird, but > no max-rtt-penalty. So my question is how would I represent the above > expression in bird? The `rtt cost` option is the equivalent in bird.

Re: Doing something wrong with VRF's

2023-09-28 Thread Daniel Gröber
On Thu, Sep 28, 2023 at 04:03:33PM +, Nigel Kukard via Bird-users wrote: > Well .. I feel embarrassed now. The issue was a missing "kernel table ;" > in the kernel protocol. Don't feel bad. I was going to look into using VRFs with bird and now there's a nice worked example ready to play

Re: [RFC] Replace WireGuard AllowedIPs with IP route attribute

2023-08-28 Thread Daniel Gröber
Hi Juliusz, On Mon, Aug 28, 2023 at 07:40:51PM +0200, Juliusz Chroboczek wrote: > I've read the whole discussion, and I'm still not clear what advantages > the proposed route attribute has over having one interface per peer. Is > it because interfaces are expensive in the Linux kernel? Or is

Re: [Babel-users] [RFC] Replace WireGuard AllowedIPs with IP route attribute

2023-08-28 Thread Daniel Gröber
Hi Kyle, On Mon, Aug 28, 2023 at 11:40:48AM -0400, Kyle Rose wrote: > On Sat, Aug 19, 2023 at 5:25 PM Daniel Gröber wrote: > > Having read Kyle's use-case I'm thinking my original plan to extend the wg > > internal source-address filtering to use a rt lookup with our new attr

Re: Pending bird patches and discussions for proto/babel

2023-08-25 Thread Daniel Gröber
Hi Maria, On Tue, Jul 18, 2023 at 12:28:35AM +0200, Daniel Gröber wrote: > On Thu, Jun 01, 2023 at 05:33:42PM +0200, Maria Matejka via Bird-users wrote: > > > Lastly my v5 route selection patch should also be ready, all threads of > > > discussion should be resolved and th

Re: [Babel-users] [RFC] Replace WireGuard AllowedIPs with IP route attribute

2023-08-19 Thread Daniel Gröber
Hi Steffen, from the questions you ask I fear you've misunderstood my intention to "replace" AllowedIPs. I'm strictly talking of the _implementation_ (allowedips.c) in Linux particular. The netlink interface would naturally stay unchanged. On Sat, Aug 19, 2023 at 10:00:17PM +0200, Steffen Vogel

Re: [RFC] Replace WireGuard AllowedIPs with IP route attribute

2023-08-19 Thread Daniel Gröber
Hi Bernd, On Sat, Aug 19, 2023 at 07:50:38PM +0200, Bernd Naumann wrote: > Chances are high I do miss something, but I've just set AllowedIPs to > 0.0.0.0/0 and ::/0 and just used the routing protocol of my choice and > filters to select which routes got exported and imported... :shrug: Right,

[RFC] Replace WireGuard AllowedIPs with IP route attribute

2023-08-19 Thread Daniel Gröber
Hi wireguard, birds, and babelers, tl;dr I want to add a new Linux route attribute (think "via $wgpeer") to supplement wireguard's internal AllowedIPs logic for both routing and source address filtering. I've been pondering how to better integrate wireguard into dynamic routing daemons,

Re: Pending bird patches and discussions for proto/babel

2023-07-17 Thread Daniel Gröber
Hi Maria, On Thu, Jun 01, 2023 at 05:33:42PM +0200, Maria Matejka via Bird-users wrote: > > Lastly my v5 route selection patch should also be ready, all threads of > > discussion should be resolved and there are no known bugs. However I've not > > received any testing reports, hint, hint peeps

Re: Recursive nexthop via kernel route in proto static not working

2023-07-04 Thread Daniel Gröber
Hi Maria, So I just did a bird restart on the router I was testing on after poking around some more and now the recursive route is suddenly working without a change in config. On Tue, Jun 27, 2023 at 09:50:14PM +0200, Maria Matejka wrote: > this looks fishy. I tried a trivial config like this on

Re: Recursive nexthop via kernel route in proto static not working

2023-06-27 Thread Daniel Gröber
Hi Alexander, On Tue, Jun 27, 2023 at 04:48:46PM +0200, Alexander Zubkov wrote: > Not sure, but I would guess it can be related to the local address. It > might try to pick the first interface with such network. > Could you try your setup with some route that has the nexthop from a > unique

Recursive nexthop via kernel route in proto static not working

2023-06-27 Thread Daniel Gröber
Hi, I'm trying to configure a static route that uses the system's default router. The default router is out of my control and is announced via IPv6 RA. Since the MAC might not be stable I'd prefer not to hardcode the router's link-local address. So I tried: protocol static

Re: Graceful shutdown request signal

2023-06-20 Thread Daniel Gröber
Hi Erin, On Tue, Jun 20, 2023 at 08:20:50PM +0200, Erin Shepherd wrote: > I run bird on a system which uses systemd as a service supervisor, and > would like to implement graceful restart in a way which works well with > it. I'm also interested in getting this working. I'm wondering how graceful

Re: [PATCH] [RFC] Babel: Implement route daming with fixed delay

2023-06-02 Thread Daniel Gröber
Hi Juliusz, On Tue, Mar 07, 2023 at 01:20:28PM +0100, Juliusz Chroboczek wrote: > To be honest, we hacked things until we had acceptable worst-case behaviour. > > We had two networks to experiment with: Nexedi's production network > (hundreds of tunnels over the public IPv6 Internet) and a

Re: Pending bird patches and discussions for proto/babel

2023-06-01 Thread Daniel Gröber
Hi Maria, On Thu, Jun 01, 2023 at 05:33:42PM +0200, Maria Matejka via Bird-users wrote: > > Toke's first two patches are ready for merging, but the third (metric > > smoothing) is contested since it conflicts with my route selection patch in > > its current form and if adapted it conflicts with

Pending bird patches and discussions for proto/babel

2023-06-01 Thread Daniel Gröber
Hello birds, I just thought I'd put together an overview of as yet unresolved proto/babel patches and discussions to stimulate some activity :) Toke's RTT series: - lib/timer: Add current_time_now() function for immediate timestamp - babel: Add support for the RTT extension - babel: Add route

Re: Radv proto sending adverts on wrong interface

2023-03-13 Thread Daniel Gröber
Hi Kees, On Mon, Mar 13, 2023 at 07:23:17AM +0100, Kees Meijs | Nefos wrote: > About VLAN configuration: I guess one should never ever use VLAN_DEFAULT > c.q. VLAN 1 at all. Vendors often think differently about this case, > sometimes allowing to have a .1Q tag, sometimes not. Or sort of "both"

[PATCH] Fix sk sending link-local scope multicast on wrong interface

2023-03-10 Thread Daniel Gröber
When radv sends to the ipv6 all-nodes multicast address (ff02::1) we don't set sin6_scope_id because ipa_is_link_local isn't satisfied. This will cause packets to be sent via the wrong interface. To fix this we use ip6_classify, which returns SCOPE_LINK for unicast fe80::/64 as well as multicast

Radv proto sending adverts on wrong interface

2023-03-10 Thread Daniel Gröber
Hi, I'm using bird as a replacement for radvd since the latter has a longstanding issue with sending adverts on unconfigured interfaces under complex conditions. Turns out bird has a similar issue :) Looking at the code, when opening the socket for an interface in radv_sk_open we set sk->iface

[PATCH] [RFC] Babel: Implement route daming with fixed delay

2023-03-02 Thread Daniel Gröber
In order to prevent RTT based routing from causing persistent traffic oscillations we delay core rte announcement of each prefix by a configurable but metric invariant amount of time. Initial announcements and withdrawals will go through undelayed but a chnage in route for a prefix will cancel

Re: [PATCH 0/3] babel: Add support for the RTT extension

2023-03-02 Thread Daniel Gröber
Hi Maria, Hi Toke, On Tue, Feb 28, 2023 at 02:07:06PM +0100, Maria Matejka via Bird-users wrote: > > > I think it's probably simpler to just re-announce any route that's still > > > converging every time we go through the routing table. > > > > Simpler, yes, but I do want to be able to maintain

DHCPv6 PD server as client route originator (Was: iBGP RR IPv6 link-local next-hop not kept)

2023-02-28 Thread Daniel Gröber
Hi Mirai, On Tue, Feb 28, 2023 at 02:57:54PM -0500, Mirai Azayaka wrote: > I am trying to send routes from my DHCPv6 prefix delegation server to > my router using iBGP. Those delegated prefix routes on the DHCPv6 > server are installed in its kernel table, such as 2001:db8:db8::/56 > via . Wow,

Re: [PATCH 0/3] babel: Add support for the RTT extension

2023-02-27 Thread Daniel Gröber
Hi Toke, On Mon, Feb 27, 2023 at 12:16:01PM +0100, Toke Høiland-Jørgensen wrote: > >> - Add the smoothed metric as a new route attribute (so it's also > >> available to filters) > > > > I think doing that is a bad idea. If we keep filters from changing this we > > might just be able to optimize

Re: [PATCH 3/3] babel: Add route metric smoothing

2023-02-27 Thread Daniel Gröber
Hi Toke, See below. On Sun, Feb 26, 2023 at 11:10:06PM +0100, Toke Høiland-Jørgensen via Bird-users wrote: > The Babel RTT extension employs metric smoothing to dampen route > oscillations in the face of varying RTT values between two peers[0]. > > This patch implements such dampening in Bird,

Re: Babel: Clarifications on seqno request handling in bird

2023-02-27 Thread Daniel Gröber
On Mon, Feb 27, 2023 at 07:25:13PM +0100, Juliusz Chroboczek wrote: > > That's a bug in the new RFC text then ;) > > Agreed. https://www.rfc-editor.org/how-to-report/ Done :) --Daniel

[PATCH v5] Babel: Replace internal route selection by bird's nest

2023-02-27 Thread Daniel Gröber
This introduces the ability to filter routes from specific interfaces and neighbours. With the current internal route selection proto babel exports only up to one route and an admin cannot do fine-grained filtering. To fix this we rip out the internal route selection entirely and export evey

Re: Babel: Clarifications on seqno request handling in bird

2023-02-27 Thread Daniel Gröber
Hi Juliusz, On Mon, Feb 27, 2023 at 01:58:21PM +0100, Juliusz Chroboczek wrote: > > I don't think RFC8966 is really framed in bird's "multi protocol" mindset > > See the beginning of Section 3.7, which describes how a route > redistributed from another protocol has router-id set to the local >

Re: [PATCH 0/3] babel: Add support for the RTT extension

2023-02-26 Thread Daniel Gröber
Hi Toke, On Mon, Feb 27, 2023 at 12:14:23AM +0100, Toke Høiland-Jørgensen wrote: > > To clarify: it's really only the metric smoothing patch that's in conflict > > with my patch. I would advocate for merging only the other two patches for > > now while we figure out how to rework the smoothing on

Re: [PATCH v4] Babel: Replace internal route selection by bird's nest

2023-02-26 Thread Daniel Gröber
yet, I think it happened after a system suspend thogh. More notes below: On Sun, Feb 26, 2023 at 09:05:24PM +0100, Daniel Gröber wrote: > This introduces the ability to filter routes from specific interfaces and > neighbours. With the current internal route selection proto babel exports

Re: [PATCH 0/3] babel: Add support for the RTT extension

2023-02-26 Thread Daniel Gröber
(and also Daniel is one of > the current users of this extension so I expect he'd be interested in > having the two be compatible). Indeed I've been using these patches for a while, but I've had to switch to babeld due to lack of proper route filtering ;) Still consider this Tested-By

[PATCH v4] Babel: Replace internal route selection by bird's nest

2023-02-26 Thread Daniel Gröber
This introduces the ability to filter routes from specific interfaces and neighbours. With the current internal route selection proto babel exports only up to one route and an admin cannot do fine-grained filtering. To fix this we rip out the internal route selection entirely and export evey

Re: [Babel-users] Babel: Clarifications on seqno request handling in bird

2023-02-26 Thread Daniel Gröber
Hi Maria, On Sun, Feb 26, 2023 at 07:34:06PM +0100, Maria Matejka wrote: > > I don't think RFC8966 is really framed in bird's "multi protocol" mindset > > so it's unclear to me whether this is something we have to fix or > > not. Section 3.8.2.1. says: > > > > > A node that has lost all feasible

Re: [PATCH v3] Babel: Replace internal route selection by bird's nest

2023-01-31 Thread Daniel Gröber
Hi Toke, Thanks for the comprehensive review! See below. On Tue, Jan 31, 2023 at 12:38:25PM +0100, Toke Høiland-Jørgensen wrote: > Daniel Gröber writes: > > This appears to not actually be a breaking change as route announcement was > > already based on which routes bird

[PATCH v3] Babel: Replace internal route selection by bird's nest

2023-01-30 Thread Daniel Gröber
This allows for filtering routes from specific interfaces and neighbours. With the current internal route selection proto babel exports only up to one route and an admin cannot do fine-grained filtering. To fix this we rip out the internal route selection entirely and put them all into the bird's

[PATCH v2 2/2] [RFC] Babel: Replace internal route selection by bird's nest

2023-01-30 Thread Daniel Gröber
This allows for filtering routes from specific interfaces and neighbours. With the current internal route selection proto babel exports only up to one route and an admin cannot do fine-grained filtering. To fix this we rip out the internal route selection entirely and put them all into the bird's

[PATCH v2 1/2] Babel: Remove unecessary FIB_ITERATE restart

2023-01-30 Thread Daniel Gröber
The route expiration code appears to have been stolen from rip.c, in that code the rt_notify function actually does modify the rtable fib by calling fib_get. The babel code however does no such thing, so this inefficient restart is just entirely uneccesarry. To prove this is true I add a bunch of

[PATCH] [RFC] Babel: Replace internal route selection by bird nest

2023-01-29 Thread Daniel Gröber
The main motivation for this change is to allow for ingress route filtering. With the current internal route selection proto/babel exports only the one route it selected and an admin cannot decide which neighbours/interfaces to import certain routes from using filters. To fix this we rip out the

[PATCH] Babel: Remove unecessary FIB_ITERATE restart

2023-01-29 Thread Daniel Gröber
The route expiration code appears to have been stolen from rip.c, in that code the rt_notify function actually does modify the rtable fib by calling fib_get. The babel code however does no such thing, so this inefficient restart is just entirely uneccesarry. To prove this is true I add a bunch of

Babel: Possible segfault in bird unfeasible update handling code

2023-01-29 Thread Daniel Gröber
Hi Babelers, I've been working on the babel proto in bird and found some code where I can't convince myself it won't segfault. The problematic bit is, I think, 's' in babel_handle_update can be NULL because nothing ensures the babel_source for a particular neighbour actually exists here:

[PATCH v3] Babel: Add option to support ecmp routes

2022-05-26 Thread Daniel Gröber
We introduce ecmp support for the babel protocol by extending it's definition of a route being selected to mean the route being in the ECMP set. In order to keep code changes minimal we keep the pointer to an arbitrary member of the ECMP set in the FIB entry and add a new flag to babel_route

[PATCH v2 2/2] Netlink: Propagate ECMP nexthop weight to kernel for inet6 routes

2022-05-26 Thread Daniel Gröber
Previously nl_send_route would use plain nl_add_nexthop for ecmp ipv6 routes instead of adding RTA_MULTIPATH objects via nl_add_multipath. The former lacks support for the rtnh_hops field needed for setting the nexthop weight though. On the kernel side support for nexthop weights was introduced

[PATCH v2 1/2] Netlink: Drop ECMP route splitting hacks

2022-05-26 Thread Daniel Gröber
This removes the hacky route merging/splitting code needed to support older kernel versions. Consequently the required Linux version is raised to 4.11 for reliable operation. --- sysdep/linux/netlink.c | 218 +++-- 1 file changed, 33 insertions(+), 185

[PATCH] Netlink: Propagate ecmp nexthop weight to kernel for inet6 routes

2022-05-22 Thread Daniel Gröber
Previously nl_send_route would use plain nl_add_nexthop for ecmp ipv6 routes instead of adding RTA_MULTIPATH objects via nl_add_multipath. The former lacks support for the rtnh_hops field needed for setting the nexthop weight though. On the kernel side support for nexthop weights was introduced

[PATCH] Netlink: Propagate ecmp nexthop weight to kernel for inet6 routes

2022-05-22 Thread Daniel Gröber
Previously nl_send_route would use plain nl_add_nexthop for ecmp ipv6 routes instead of adding RTA_MULTIPATH objects via nl_add_multipath. The former lacks support for the rtnexthop.rtnh_hops field need for setting the nexthop weight though. On the kernel side support for nexthop weights was

[PATCH v2 2/2] Babel: Add option to control ecmp nexthop weight

2022-05-09 Thread Daniel Gröber
--- doc/bird.sgml| 7 +++ proto/babel/babel.c | 1 + proto/babel/babel.h | 2 ++ proto/babel/config.Y | 2 ++ 4 files changed, 12 insertions(+) diff --git a/doc/bird.sgml b/doc/bird.sgml index d1e6376b..8d159b22 100644 --- a/doc/bird.sgml +++ b/doc/bird.sgml @@ -1880,6 +1880,7 @@

[PATCH v2 1/2] Babel: Add option to support ecmp routes

2022-05-09 Thread Daniel Gröber
--- doc/bird.sgml| 25 proto/babel/babel.c | 70 +--- proto/babel/babel.h | 5 proto/babel/config.Y | 3 ++ 4 files changed, 92 insertions(+), 11 deletions(-) diff --git a/doc/bird.sgml b/doc/bird.sgml index

Re: Merging multiple routes into a single multipath route

2022-05-08 Thread Daniel Gröber
Hi Johannes, On Tue, May 03, 2022 at 04:07:08PM +0200, Johannes Erwerle wrote: > I would like to use both uplinks via the linux multipath routing and I am > searching for a way to "merge" both default routes that I get into one route > with multiple next hops. > > Is there a way to accomplish

[PATCH 1/2] Babel: Add option to support ecmp routes

2022-05-08 Thread Daniel Gröber
--- The FIB walks in babel_reconfigure_iface are a bit ugly, I tried to loop over ifa->neigh_list instead but couldn't get it to work. I'm open to suggestions :) doc/bird.sgml| 8 + proto/babel/babel.c | 70 +--- proto/babel/babel.h | 3 ++

[PATCH 2/2] Babel: Add option to control ecmp nexthop weight

2022-05-08 Thread Daniel Gröber
--- doc/bird.sgml| 21 ++--- proto/babel/babel.c | 1 + proto/babel/babel.h | 2 ++ proto/babel/config.Y | 2 ++ 4 files changed, 19 insertions(+), 7 deletions(-) diff --git a/doc/bird.sgml b/doc/bird.sgml index 5e85d8ec..1fdda7bc 100644 --- a/doc/bird.sgml +++

[PATCH] krt: Dump routing tables separetely on linux to avoid congestion

2022-04-16 Thread Daniel Gröber
When dumping the routing table bird currently doesn't set the rtm_table netlink field to select any particular one but rather wants to get all at once. This can be problematic when multiple routing daemons are running on a system as the kernel's route modification performance goes down drasticly