Examples of configurations

Default

Configurations built using the default general.yml and clients.yml files distributed with the project.

https://github.com/pierky/arouteserver/blob/master/examples/default

See the textual representation of this configuration.

Feature-rich example

Configurations built using the files provided in the examples/rich directory.

  • GTSM and ADD-PATH are enabled by default on the route server.
  • Next-hop filtering allows clients to set NEXT_HOP of any client in the same AS.
  • Local networks are filtered, and also transit-free ASNs, invalid paths and prefixes/origin ASNs which are not authorized by clients’ AS-SETs.
  • RPKI-based route validation is enabled; INVALID routes are rejected.
  • A max-prefix limit is enforced on the basis of PeeringDB information.
  • Blackhole filtering is implemented with a rewrite-next-hop policy and can be triggered with BGP communities BLACKHOLE, 65534:0 and 999:666:0.
  • Control communities allow selective announcement control and prepending, also on the basis of peers RTT.
  • Client timers are configured using the custom, site-specific .local file.
  • Informational custom BGP communities are used to tag routes from European or American clients.

https://github.com/pierky/arouteserver/blob/master/examples/rich

See the textual representation of this configuration.

BIRD hooks example

The BIRD configurations provided in this example have been generated enabling BIRD hooks:

$ arouteserver bird --ip-ver 4 --use-local-files header --use-hooks pre_receive_from_client post_receive_from_client [...]

The above list of hooks passed to the bird command has been truncated for the sake of readability; the complete list used in this example is provided below.

The command line argument --use-local-files enables the header inclusion point, in order to add the include "/etc/bird/header.local"; configuration statement to the BIRD configuration generated by ARouteServer.

define rs_as = 999;

log "/var/log/bird.log" all;
log syslog all;
debug protocols all;

protocol device {};

table master sorted;

include "/etc/bird/header.local";
...

This file must be present on the route server where BIRD is executed and must contain the custom functions used to implement the hooks. See the header.local file for the functions declaration.

List of hooks used in this example:

  • pre_receive_from_client
  • post_receive_from_client
  • pre_announce_to_client
  • post_announce_to_client
  • scrub_communities_in
  • scrub_communities_out
  • apply_blackhole_filtering_policy
  • route_can_be_announced_to
  • announce_rpki_invalid_to_client

https://github.com/pierky/arouteserver/blob/master/examples/bird_hooks

Clients from Euro-IX member list JSON file

Some clients files automatically built from Euro-IX member list JSON files are reported here.

https://github.com/pierky/arouteserver/blob/master/examples/clients-from-euroix