Help with multiple routing tables.

Toke Høiland-Jørgensen toke at toke.dk
Tue Aug 21 10:00:42 CEST 2018


Grant Taylor <gtaylor at tnetconsulting.net> writes:

> Hi,
>
> I need a second set of eyes on the following config.  I feel like I've 
> made a mistake and I'm too tired to see it.
>
>   - main_rib is Linux kernel table #254 and has all locally attached 
> interfaces.  There is no default gateway in kernel table #254.
>   - default_rib is Linux kernel table #253 and only has the default gateway.
>   - I have a series of ip rules that cascade across multiple Linux 
> kernel tables, 254, others, and finally 253.
>
> I want BIRD to:
>   1 Advertise the following routes via RIP:
>      - Locally attached
>      - Default learned from default_rib (253)
>   2 Learn routes from RIP and update main_rib (254)
>
> Currently bird is not doing #2.
>
> I'm not completely sure when I want to learn or not.  I think "learn" is 
> for BIRD to learn about the routes from the routing table.  I don't know 
> if I need to "learn" in the kernel protocol for table 254 or not.  I 
> thought the locally attached routes were picked up via the direct protocol.
>
> BIRD is learning about the single default route in default_rib (253) and 
> advertising it via RIP to other systems on the network.
>
> Any help would be greatly appreciated.  Thank you in advance.
>
>
>
> ipv4 table main_rib;
> ipv4 table default_rib;
>
> protocol device {
> }
>
> protocol kernel {
> 	ipv4 {
> 		export all;
> 		import all;
> 		table main_rib;
> 	};
> 	kernel table 254;
> 	#learn;
> }
>
> protocol kernel {
> 	ipv4 {
> 		export none;
> 		import all;
> 		table default_rib;
> 	};
> 	kernel table 253;
> 	learn;
> }
>
> protocol direct {
> 	ipv4;
> 	interface "*";
> }
>
> protocol rip {
> 	interface "eth0", "eth1", "eth2", "eth3" {
> 		version 2;
> 	};
> 	ipv4 {
> 		export all;
> 		import all;
> 		table main_rib;
> 		table default_rib;

A protocol instance can only be attached to a single routing table; so
you'll need to use the same Bird table and steer routes into the
different kernel tables using export filters instead...

-Toke


More information about the Bird-users mailing list