diff options
-rw-r--r-- | doc/bird.conf.example | 122 |
1 files changed, 94 insertions, 28 deletions
diff --git a/doc/bird.conf.example b/doc/bird.conf.example index cf3b36b..f30ce8d 100644 --- a/doc/bird.conf.example +++ b/doc/bird.conf.example @@ -2,61 +2,67 @@ * This is an example configuration file. */ -# Yet another comment +# Yes, even shell-like comments work... -#log syslog { error }; +# Configure logging +#log syslog { debug, trace, info, remote, warning, error, auth, fatal, bug }; +#log stderr all; #log "tmp" all; +# Override router ID #router id 62.168.0.1; +# You can define your own symbols... #define xyzzy = 120+10; +# Define a route filter... +filter test_filter { + if net ~ 10.0.0.0/16 then accept; + else reject; +} + #filter sink { reject; } #filter okay { accept; } +# Define another routing table #table testable; -debug protocols all; - -#protocol rip MyRIP_test { -# preference xyzzy; -# debug all; -# port 1520; -# period 7; -# garbagetime 60; -# interface "*" { mode broadcast; }; -# honour neighbour; -# passwords { password "ahoj" from 0 to 10; -# password "nazdar" from 10; -# } -# authentication none; -# import filter { print "importing"; accept; }; -# export filter { print "exporting"; accept; }; -#} +# Turn on global debugging of all protocols +#debug protocols all; +# The direct protocol automatically generates device routes to +# all network interfaces. Can exist in as many instances as you wish +# if you want to populate multiple routing tables with device routes. protocol direct { -# disabled; -# interface "-eth*", "*"; +# interface "-eth*", "*"; # Restrict network interfaces it works with } +# This pseudo-protocol performs synchronization between BIRD's routing +# tables and the kernel. If your kernel supports multiple routing tables +# (as Linux 2.2.x does), you can run multiple instances of the kernel +# protocol and synchronize different kernel tables with different BIRD tables. protocol kernel { -# disabled; -# learn; # Learn all routes from the kernel +# learn; # Learn all alien routes from the kernel persist; # Don't remove routes on bird shutdown scan time 20; # Scan kernel routing table every 20 seconds -# async off; # Netlink: Disable asynchronous events # import none; # Default is import all export all; # Default is export none # kernel table 5; # Kernel table to synchronize with (default: main) } +# This pseudo-protocol watches all interface up/down events. protocol device { scan time 10; # Scan interfaces every 10 seconds } +# Static routes (again, there can be multiple instances, so that you +# can disable/enable various groups of static routes on the fly). protocol static { -# disabled; -# table testable; +# disabled; # Disable by default +# table testable; # Connect to a non-default table +# preference 1000; # Default preference of routes +# debug { states, routes, filters, interfaces, events, packets }; +# debug all; # route 0.0.0.0/0 via 62.168.0.13; # route 62.168.0.0/25 reject; # route 10.0.0.0/8 reject; @@ -66,8 +72,68 @@ protocol static { # route 10.2.0.0/24 via "arc0"; } +# Pipe protocol connects two routing tables... Beware of loops. #protocol pipe { # peer table testable; -# import all; -# export all; +# Define what routes do we export to this protocol / import from it. +# import all; # default is all +# export all; # default is none +# import none; # If you wish to disable imports +# import filter test_filter; # Use named filter +# import where source = RTS_DEVICE; # Use explicit filter +#} + +# RIP aka Rest In Pieces... +#protocol rip MyRIP { # You can also use an explicit name +# preference xyzzy; +# debug all; +# port 1520; +# period 7; +# infinity 16; +# garbagetime 60; +# interface "*" { mode broadcast; }; +# honor neighbor; # To whom do we agree to send the routing table +# honor always; +# honor never; +# passwords { password "ahoj" from 0 to 10; +# password "nazdar" from 10; +# } +# authentication none; +# import filter { print "importing"; accept; }; +# export filter { print "exporting"; accept; }; +#} + +#protocol bgp { +# disabled; +# local as 65000; +# neighbor 62.168.0.130 as 5588; +# multihop 20 via 62.168.0.13; +# hold time 240; +# startup hold time 240; +# connect retry time 120; +# keepalive time 80; # defaults to hold time / 3 +# start delay time 5; # How long do we wait before initial connect +# error wait time 60, 300;# Minimum and maximum time we wait after an error (when consecutive +# # errors occur, we increase the delay exponentially ... +# error forget time 300; # ... until this timeout expires) +# disable after error; # Disable the protocol automatically when an error occurs +# next hop self; # Disable next hop processing and always advertise our local address as nexthop +# path metric 1; # Prefer routes with shorter paths (like Cisco does) +# default bgp_med 0; # MED value we use for comparison when none is defined +# default bgp_local_pref 0; # The same for local preference +# source address 62.168.0.14; # What local address we use for the TCP connection +# export where source=RTS_STATIC; +# export filter { +# if source = RTS_STATIC then { +## bgp_community = -empty-; bgp_community = add(bgp_community,(65000,5678)); +## bgp_origin = 0; +# bgp_community = -empty-; bgp_community.add((65000,5678)); +## if (65000,5678) ~ bgp_community then +## bgp_community.add((0, 1)); +# if bgp_path ~ / 65000 / then +# bgp_path.prepend(65000); +# accept; +# } +# reject; +# }; #} |