version 1.1, 2017/08/22 14:36:56
|
version 1.2, 2021/03/11 13:59:51
|
Line 0
|
Line 1
|
|
/* |
|
* This is an example configuration file. |
|
*/ |
|
|
|
# Yes, even shell-like comments work... |
|
|
|
# Configure logging |
|
#log syslog { debug, trace, info, remote, warning, error, auth, fatal, bug }; |
|
#log stderr all; |
|
#log "tmp" all; |
|
|
|
# Override router ID |
|
#router id 198.51.100.1; |
|
|
|
# You can define your own symbols... |
|
#define xyzzy = (120+10); |
|
#define '1a-a1' = (30+40); |
|
|
|
# Define a route filter... |
|
#filter test_filter { |
|
# if net ~ 10.0.0.0/16 then accept; |
|
# else reject; |
|
#} |
|
|
|
#filter sink { reject; } |
|
#filter okay { accept; } |
|
|
|
#include "filters.conf"; |
|
|
|
# Define another routing table |
|
#table testable; |
|
|
|
# Turn on global debugging of all protocols |
|
#debug protocols all; |
|
|
|
# Turn on internal watchdog |
|
#watchdog warning 5 s; |
|
#watchdog timeout 30 s; |
|
|
|
# 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 { |
|
# 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 { |
|
# 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 |
|
# 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; # 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 198.51.100.13; |
|
# route 198.51.100.0/25 unreachable; |
|
# route 10.0.0.0/8 unreachable; |
|
# route 10.1.1.0:255.255.255.0 via 198.51.100.3; |
|
# route 10.1.2.0:255.255.255.0 via 198.51.100.3; |
|
# route 10.1.3.0:255.255.255.0 via 198.51.100.4; |
|
# route 10.2.0.0/24 via "arc0"; |
|
} |
|
|
|
# Pipe protocol connects two routing tables... Beware of loops. |
|
#protocol pipe { |
|
# peer table testable; |
|
# 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; |
|
# garbage time 60; |
|
# interface "*" { mode broadcast; }; |
|
# honor neighbor; # To whom do we agree to send the routing table |
|
# honor always; |
|
# honor never; |
|
# passwords { |
|
# password "nazdar"; |
|
# }; |
|
# authentication none; |
|
# import filter { print "importing"; accept; }; |
|
# export filter { print "exporting"; accept; }; |
|
#} |
|
|
|
#protocol ospf MyOSPF { |
|
# tick 2; |
|
# rfc1583compat yes; |
|
# area 0.0.0.0 { |
|
# stub no; |
|
# interface "eth*" { |
|
# hello 9; |
|
# retransmit 6; |
|
# cost 10; |
|
# transmit delay 5; |
|
# dead count 5; |
|
# wait 50; |
|
# type broadcast; |
|
# authentication simple; |
|
# password "pass"; |
|
# }; |
|
# interface "arc0" { |
|
# rx buffer large; |
|
# type nonbroadcast; |
|
# poll 14; |
|
# dead 75; |
|
# neighbors { |
|
# 10.1.1.2 eligible; |
|
# 10.1.1.4; |
|
# }; |
|
# strict nonbroadcast yes; |
|
# }; |
|
# interface "xxx0" { |
|
# passwords { |
|
# password "abc" { |
|
# id 1; |
|
# generate to "22-04-2003 11:00:06"; |
|
# accept to "17-01-2004 12:01:05"; |
|
# }; |
|
# password "def" { |
|
# id 2; |
|
# generate from "22-04-2003 11:00:07"; |
|
# accept from "17-01-2003 12:01:05"; |
|
# }; |
|
# }; |
|
# authentication cryptographic; |
|
# }; |
|
# }; |
|
# area 20 { |
|
# stub 1; |
|
# interface "ppp1" { |
|
# hello 8; |
|
# authentication none; |
|
# }; |
|
# interface "fr*"; |
|
# virtual link 192.168.0.1 { |
|
# password "sdsdffsdfg"; |
|
# authentication cryptographic; |
|
# }; |
|
# }; |
|
#} |
|
|
|
|
|
#protocol bgp { |
|
# disabled; |
|
# description "My BGP uplink"; |
|
# local as 65000; |
|
# neighbor 198.51.100.130 as 64496; |
|
# multihop; |
|
# 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 198.51.100.14; # What local address we use for the TCP connection |
|
# password "secret"; # Password used for MD5 authentication |
|
# rr client; # I am a route reflector and the neighor is my client |
|
# rr cluster id 1.0.0.1; # Use this value for cluster id instead of my router id |
|
# 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,64501) ~ bgp_community then |
|
# bgp_community.add((0, 1)); |
|
# if bgp_path ~ [= 65000 =] then |
|
# bgp_path.prepend(65000); |
|
# accept; |
|
# } |
|
# reject; |
|
# }; |
|
#} |
|
# |
|
# Template usage example |
|
#template bgp rr_client { |
|
# disabled; |
|
# local as 65000; |
|
# multihop; |
|
# rr client; |
|
# rr cluster id 1.0.0.1; |
|
#} |
|
# |
|
#protocol bgp rr_abcd from rr_client { |
|
# neighbor 10.1.4.7 as 65000; |
|
#} |