Hello! unset(krt_prefsrc);
Maria On 16 May 2023 15:51:07 CEST, [email protected] wrote: >Hello. > >I am currently trying to get route leaking to work on Linux with bird. > >I have several VRFs and want to leak some of the routes from one VRF into an >other. For this I have several routing tables in bird, one kernel protocol per >table and pipe protocols to leak to routes between the tables. This works as >intended. >However I have a problem when exporting my leaked routes to the kernel. > >I get the log message > >May 16 15:28:24 host-1 bird[7349]: kernel4: 0.0.0.0/0: reinstalling >May 16 15:28:24 host-1 bird[7349]: Netlink: Invalid argument >May 16 15:28:24 host-1 bird[7349]: kernel4: 172.21.0.1/32: reinstalling >May 16 15:28:24 host-1 bird[7349]: Netlink: Invalid argument > >Those 2 routes are not installed into the corresponding kernel routing table. >These are exactly the routes that have the Kernel.prefsrc/krt_prefsrc >attribute set. >If I try to install these routes manually with all the attributes they have in >the bird routing table I get the error > >> root@host-1:~# ip r add table 5 0.0.0.0/0 via 172.21.0.1 dev vlan-uplink-1 >> metric 1024 src 172.21.0.153 >> Error: Invalid prefsrc address. > >This is because the IP address that is used here comes from an other VRF where >it is available however it is not available in the VRF I am trying to install >it. >(I also don't need the prefsrc option to where the route is installed.) >If I add the route to the Linux FIB without the prefsrc value or with an IP >address that is available in the corresponding VRF, then it works out as >intended. >A workaround that I found is to set the krt_prefsrc attribute on export to >something that is available in the target VRF. However it would be nicer to >simply remove the attribute. >So is it possible to remove an attribute from a route in bird? > >Greetings >Jo >
