rpsltool templates for BIRD route servers

Marco d'Itri md at Linux.IT
Sat May 22 19:53:32 CEST 2010


On May 22, Arnold Nipper <arnold at nipper.de> wrote:

> Imho there are zillions of ways to do a configuration. Maybe that's why
> Ondrej is asking for an example of input and output.

I choose the multiple RIB+pipe approach, so something like this is
generated for each peer.
Then there are the common functions invalid_prefix() (for filtering
bogons), bgp_in() ("bgp enforce-first-as"-like check) and bgp_out()
(for filtering community-controlled selective announcements).
The output format is defined by a template, so if anybody likes a
different configuration approach (why?) it can be modified to taste.

function bgp_seeweb_in(int peeras)
prefix set seeweb_in;
{
        seeweb_in = [
14.128.0.0/24, 14.191.0.0/22, 14.255.0.0/16, 31.0.0.0/16, 31.1.0.0/21,
...
        ];
        if !(bgp_in(peeras)) then return false;
        if !(net ~ seeweb_in) then return false;
        return true;
}

table T_SEEWEB;

protocol pipe P_SEEWEB {
        table master;
        mode transparent;
        peer table T_SEEWEB;
        /* routes from the global table to seeweb */
        export where bgp_out(12637) = true;
        /* routes from seeweb to the global table */
        import where bgp_seeweb_in(12637) = true;
}

protocol bgp SEEWEB {
        description "Seeweb";
        neighbor 92.60.70.5 as 12637;
        local as 64725;
        table T_SEEWEB;
        rs client;
        interpret communities no;
        route limit 1000;
#       hold time 24;
#       keepalive time 7;
        connect retry time 3600;
        passive;
        import all;
        export all;
}


The input is a series of entries (formally a list of associative arrays)
like this one:

- as: 12637
  description: Seeweb
  import: AS12637:AS-CUSTOMERS
  ip: 92.60.70.5

YAML is a serialization format supported by many languages, so the
neighbors database can be trivially generated from e.g. a web-driven
SQL database.


I am interested in implementing new features in rpsltool, so please
everybody let me know if you would like to do something which is
currently not supported.

-- 
ciao,
Marco
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://trubka.network.cz/pipermail/bird-users/attachments/20100522/8e412d6c/attachment-0001.asc>


More information about the Bird-users mailing list