diff --git a/docs/routing/bird.md b/docs/routing/bird.md index 1a47647..76eaef3 100644 --- a/docs/routing/bird.md +++ b/docs/routing/bird.md @@ -115,8 +115,6 @@ TODO: Add a check about not installing RTD_UNREACHABLEs which babel will generat ### Direct protocol -TODO: fix/finish this section - This provides BIRD with a manner of picking up the `subnet/prefix` pair that is assigned to local interfaces such that these can be imported into BIRD and later advertised. ``` @@ -127,11 +125,31 @@ protocol direct crxnDirect table crxn; import filter crxnFilter; }; - # Interfaces to find neighbours on + + # Interfaces to find neighbors on interface "eth*"; } ``` +### Kernel protocol + +We need to sync the routes from the BIRD routing table `crxn` to the actual kernel's routing table such that it can be used in forwarding decisions. This is accomplished with the following declaration: + +``` +protocol kernel crxnKernel +{ + ipv6 { + # bird's crxn table -> kernel + table crxn; + export filter crxnFilter; + }; + + persist; +} +``` + +1. The `persist` option means that when BIRD exits it will not flush the routing table. This is useful if you want to do maintenance and still want to allow forwarding of traffic for a little while (of course other routers may expire routes to you but at least not that fast) + --- Old stuff below WIP):