How do I configure BIRD to support multiple Linux kernel routing tables?
Grant Taylor
gtaylor at tnetconsulting.net
Sun Feb 25 19:51:26 CET 2018
On 02/25/2018 06:01 AM, Ondrej Zajicek wrote:
> Hello
Hi,
> protocol kernel {
> learn;
> export all;
> import all;
> # these are default values
> # table master;
> # kernel table 254;
> }
>
> table deftab;
>
> protocol kernel {
> learn;
> export all;
> import all;
> table deftab;
> kernel table 253;
> }
I think the key that I was missing was the "table deftab;" outside of
"protocol kernel".
I also needed to remove the "main" and "default" from the "protocol
kernel" lines.
And the apparent table name limitation got me. "Default" is one letter
too long." :-/ (Table name length is probably documented somewhere
I've not read yet.)
> This will sync kernel table 254 ('main') with default BIRD table 'master'
> and kernel table 253 ('default') with additional BIRD table 'deftab'.
Understood.
> Optionally, you can use pipe protocol to distribute routes between
> these tables.
Do I need to use pipes to distribute routes between tables?
I ask this because I've updated the config (below) and now BIRD seems
happier. However I'm seeing evidence that the single / default route
from the dfault table is being filtered (?).
bird: kernel2 > added [best] 0.0.0.0/0 via 8.44.144.1 on eth0
bird: kernel2 < rejected by protocol 0.0.0.0/0 via 8.44.144.1 on eth0
I think BIRD is seeing the single / default route and starts to use it,
but then filters it, or at least that's what I think is happening.
> There are two unexpected issues that may cause problems:
>
> 1) BIRD does not allow two Kernel protocol instances to be connected to
> the same BIRD table, you have to use two BIRD tables, like above.
Understood and duly noted. - I don't foresee this to be a problem for me.
> 2) Trying to use BIRD keywords as protocol/table names would lead to
> hard to understand 'syntax error' errors during configuration processing.
That makes sense. I just need to be smart enough to recognize when that
happens.
# cat /etc/bird.conf
protocol kernel {
learn;
export all;
import all;
persist no;
kernel table 254;
}
table dfault;
protocol kernel {
debug all;
learn;
export all;
import all;
persist no;
table dfault;
kernel table 253;
}
protocol device {
}
protocol direct {
interface "*";
}
protocol rip {
export all;
import all;
interface "wgc", "test1", "test2", "test3" {
version 2;
};
}
--
Grant. . . .
unix || die
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 3982 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://trubka.network.cz/pipermail/bird-users/attachments/20180225/004b3437/attachment.p7s>
More information about the Bird-users
mailing list