1/*
2 *	This is an example configuration file.
3 */
4
5# Yes, even shell-like comments work...
6
7# Configure logging
8#log syslog { debug, trace, info, remote, warning, error, auth, fatal, bug };
9#log stderr all;
10#log "tmp" all;
11
12# Override router ID
13#router id 198.51.100.1;
14
15# You can define your own symbols...
16#define xyzzy = (120+10);
17#define '1a-a1' = (30+40);
18
19# Define a route filter...
20#filter test_filter {
21#	if net ~ 10.0.0.0/16 then accept;
22#	else reject;
23#}
24
25#filter sink { reject; }
26#filter okay { accept; }
27
28#include "filters.conf";
29
30# Define another routing table
31#table testable;
32
33# Turn on global debugging of all protocols
34#debug protocols all;
35
36# Turn on internal watchdog
37#watchdog warning 5 s;
38#watchdog timeout 30 s;
39
40# The direct protocol automatically generates device routes to
41# all network interfaces. Can exist in as many instances as you wish
42# if you want to populate multiple routing tables with device routes.
43#protocol direct {
44#	interface "-eth*", "*";	# Restrict network interfaces it works with
45#}
46
47# This pseudo-protocol performs synchronization between BIRD's routing
48# tables and the kernel. If your kernel supports multiple routing tables
49# (as Linux 2.2.x does), you can run multiple instances of the kernel
50# protocol and synchronize different kernel tables with different BIRD tables.
51protocol kernel {
52#	learn;			# Learn all alien routes from the kernel
53	persist;		# Don't remove routes on bird shutdown
54	scan time 20;		# Scan kernel routing table every 20 seconds
55#	import none;		# Default is import all
56	export all;		# Default is export none
57#	kernel table 5;		# Kernel table to synchronize with (default: main)
58}
59
60# This pseudo-protocol watches all interface up/down events.
61protocol device {
62	scan time 10;		# Scan interfaces every 10 seconds
63}
64
65# Static routes (again, there can be multiple instances, so that you
66# can disable/enable various groups of static routes on the fly).
67protocol static {
68#	disabled;		# Disable by default
69#	table testable;		# Connect to a non-default table
70#	preference 1000;	# Default preference of routes
71#	debug { states, routes, filters, interfaces, events, packets };
72#	debug all;
73#	route 0.0.0.0/0 via 198.51.100.13;
74#	route 198.51.100.0/25 unreachable;
75#	route 10.0.0.0/8 unreachable;
76#	route 10.1.1.0:255.255.255.0 via 198.51.100.3;
77#	route 10.1.2.0:255.255.255.0 via 198.51.100.3;
78#	route 10.1.3.0:255.255.255.0 via 198.51.100.4;
79#	route 10.2.0.0/24 via "arc0";
80}
81
82# Pipe protocol connects two routing tables... Beware of loops.
83#protocol pipe {
84#	peer table testable;
85# Define what routes do we export to this protocol / import from it.
86#	import all;		# default is all
87#	export all;		# default is none
88#	import none;		# If you wish to disable imports
89#	import filter test_filter;		# Use named filter
90#	import where source = RTS_DEVICE;	# Use explicit filter
91#}
92
93# RIP aka Rest In Pieces...
94#protocol rip MyRIP {	# You can also use an explicit name
95#	preference xyzzy;
96#	debug all;
97#	port 1520;
98#	period 7;
99#	infinity 16;
100#	garbage time 60;
101#	interface "*" { mode broadcast; };
102#	honor neighbor;		# To whom do we agree to send the routing table
103#	honor always;
104#	honor never;
105#	passwords {
106#		password "nazdar";
107#	};
108#	authentication none;
109#	import filter { print "importing"; accept; };
110#	export filter { print "exporting"; accept; };
111#}
112
113#protocol ospf MyOSPF {
114#       tick 2;
115#	rfc1583compat yes;
116#	area 0.0.0.0 {
117#		stub no;
118#		interface "eth*" {
119#			hello 9;
120#			retransmit 6;
121#			cost 10;
122#			transmit delay 5;
123#			dead count 5;
124#			wait 50;
125#			type broadcast;
126#			authentication simple;
127#			password "pass";
128#		};
129#		interface "arc0" {
130#			rx buffer large;
131#			type nonbroadcast;
132#			poll 14;
133#			dead 75;
134#			neighbors {
135#				10.1.1.2 eligible;
136#				10.1.1.4;
137#			};
138#			strict nonbroadcast yes;
139#		};
140#		interface "xxx0" {
141#                       passwords {
142#				password "abc" {
143#					id 1;
144#					generate to "22-04-2003 11:00:06";
145#					accept to "17-01-2004 12:01:05";
146#				};
147#				password "def" {
148#					id 2;
149#					generate from "22-04-2003 11:00:07";
150#					accept from "17-01-2003 12:01:05";
151#				};
152#			};
153#                       authentication cryptographic;
154#		};
155#	};
156#	area 20 {
157#		stub 1;
158#		interface "ppp1" {
159#			hello 8;
160#			authentication none;
161#		};
162#               interface "fr*";
163#               virtual link 192.168.0.1 {
164#                       password "sdsdffsdfg";
165#                       authentication cryptographic;
166#               };
167#	};
168#}
169
170
171#protocol bgp {
172#	disabled;
173#	description "My BGP uplink";
174#	local as 65000;
175#	neighbor 198.51.100.130 as 64496;
176#	multihop;
177#	hold time 240;
178#	startup hold time 240;
179#	connect retry time 120;
180#	keepalive time 80;	# defaults to hold time / 3
181#	start delay time 5;	# How long do we wait before initial connect
182#	error wait time 60, 300;# Minimum and maximum time we wait after an error (when consecutive
183#				# errors occur, we increase the delay exponentially ...
184#	error forget time 300;	# ... until this timeout expires)
185#	disable after error;	# Disable the protocol automatically when an error occurs
186#	next hop self;		# Disable next hop processing and always advertise our local address as nexthop
187#	path metric 1;		# Prefer routes with shorter paths (like Cisco does)
188#	default bgp_med 0;	# MED value we use for comparison when none is defined
189#	default bgp_local_pref 0;	# The same for local preference
190#	source address 198.51.100.14;	# What local address we use for the TCP connection
191#	password "secret";	# Password used for MD5 authentication
192#	rr client;		# I am a route reflector and the neighor is my client
193#	rr cluster id 1.0.0.1;	# Use this value for cluster id instead of my router id
194#	export where source=RTS_STATIC;
195#	export filter {
196#		if source = RTS_STATIC then {
197#			bgp_community = -empty-; bgp_community = add(bgp_community,(65000,5678));
198#			bgp_origin = 0;
199#			bgp_community = -empty-; bgp_community.add((65000,5678));
200#			if (65000,64501) ~ bgp_community then
201#				bgp_community.add((0, 1));
202#			if bgp_path ~ [= 65000 =] then
203#				bgp_path.prepend(65000);
204#			accept;
205#		}
206#		reject;
207#	};
208#}
209#
210# Template usage example
211#template bgp rr_client {
212#	disabled;
213#	local as 65000;
214#	multihop;
215#	rr client;
216#	rr cluster id 1.0.0.1;
217#}
218#
219#protocol bgp rr_abcd from rr_client {
220#	neighbor 10.1.4.7 as 65000;
221#}
222