bird.conf.example 6.15 KB
Newer Older
1 2 3 4
/*
 *	This is an example configuration file.
 */

Martin Mareš's avatar
Martin Mareš committed
5
# Yes, even shell-like comments work...
6

Martin Mareš's avatar
Martin Mareš committed
7 8 9
# Configure logging
#log syslog { debug, trace, info, remote, warning, error, auth, fatal, bug };
#log stderr all;
10 11
#log "tmp" all;

Martin Mareš's avatar
Martin Mareš committed
12
# Override router ID
13
#router id 198.51.100.1;
14

Martin Mareš's avatar
Martin Mareš committed
15
# You can define your own symbols...
16 17
#define xyzzy = (120+10);
#define '1a-a1' = (30+40);
18

Martin Mareš's avatar
Martin Mareš committed
19
# Define a route filter...
20 21 22 23
#filter test_filter {
#	if net ~ 10.0.0.0/16 then accept;
#	else reject;
#}
Martin Mareš's avatar
Martin Mareš committed
24

25 26 27
#filter sink { reject; }
#filter okay { accept; }

28 29
#include "filters.conf";

Martin Mareš's avatar
Martin Mareš committed
30
# Define another routing table
31 32
#table testable;

Martin Mareš's avatar
Martin Mareš committed
33 34
# Turn on global debugging of all protocols
#debug protocols all;
35

36 37 38 39
# Turn on internal watchdog
#watchdog warning 5 s;
#watchdog timeout 30 s;

Martin Mareš's avatar
Martin Mareš committed
40 41 42
# 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.
43
#protocol direct {
Martin Mareš's avatar
Martin Mareš committed
44
#	interface "-eth*", "*";	# Restrict network interfaces it works with
45
#}
46

Martin Mareš's avatar
Martin Mareš committed
47 48 49 50
# 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.
51
protocol kernel {
Martin Mareš's avatar
Martin Mareš committed
52
#	learn;			# Learn all alien routes from the kernel
53 54
	persist;		# Don't remove routes on bird shutdown
	scan time 20;		# Scan kernel routing table every 20 seconds
55 56
#	import none;		# Default is import all
	export all;		# Default is export none
57
#	kernel table 5;		# Kernel table to synchronize with (default: main)
58
}
59

Martin Mareš's avatar
Martin Mareš committed
60
# This pseudo-protocol watches all interface up/down events.
61
protocol device {
62
	scan time 10;		# Scan interfaces every 10 seconds
63 64
}

Martin Mareš's avatar
Martin Mareš committed
65 66
# Static routes (again, there can be multiple instances, so that you
# can disable/enable various groups of static routes on the fly).
67
protocol static {
Martin Mareš's avatar
Martin Mareš committed
68 69 70 71 72
#	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;
73
#	route 0.0.0.0/0 via 198.51.100.13;
74 75
#	route 198.51.100.0/25 unreachable;
#	route 10.0.0.0/8 unreachable;
76 77 78
#	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;
79
#	route 10.2.0.0/24 via "arc0";
80
}
81

Martin Mareš's avatar
Martin Mareš committed
82
# Pipe protocol connects two routing tables... Beware of loops.
83 84
#protocol pipe {
#	peer table testable;
Martin Mareš's avatar
Martin Mareš committed
85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
# 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;
100
#	garbage time 60;
Martin Mareš's avatar
Martin Mareš committed
101 102 103 104
#	interface "*" { mode broadcast; };
#	honor neighbor;		# To whom do we agree to send the routing table
#	honor always;
#	honor never;
105 106 107
#	passwords {
#		password "nazdar";
#	};
Martin Mareš's avatar
Martin Mareš committed
108 109 110 111 112
#	authentication none;
#	import filter { print "importing"; accept; };
#	export filter { print "exporting"; accept; };
#}

113
#protocol ospf MyOSPF {
114
#       tick 2;
115 116 117 118 119 120 121
#	rfc1583compat yes;
#	area 0.0.0.0 {
#		stub no;
#		interface "eth*" {
#			hello 9;
#			retransmit 6;
#			cost 10;
Ondřej Filip's avatar
Ondřej Filip committed
122
#			transmit delay 5;
123 124 125
#			dead count 5;
#			wait 50;
#			type broadcast;
126 127
#			authentication simple;
#			password "pass";
128
#		};
129
#		interface "arc0" {
130
#			rx buffer large;
131
#			type nonbroadcast;
Ondřej Filip's avatar
Ondřej Filip committed
132
#			poll 14;
133
#			dead 75;
134
#			neighbors {
Ondřej Filip's avatar
Ondřej Filip committed
135
#				10.1.1.2 eligible;
136 137
#				10.1.1.4;
#			};
Ondřej Filip's avatar
Ondřej Filip committed
138
#			strict nonbroadcast yes;
139
#		};
140 141 142 143 144 145 146 147 148 149 150 151
#		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";
#				};
152
#			};
153 154
#                       authentication cryptographic;
#		};
155 156 157 158 159
#	};
#	area 20 {
#		stub 1;
#		interface "ppp1" {
#			hello 8;
160
#			authentication none;
161
#		};
162 163 164 165 166
#               interface "fr*";
#               virtual link 192.168.0.1 {
#                       password "sdsdffsdfg";
#                       authentication cryptographic;
#               };
167 168
#	};
#}
169

170

Martin Mareš's avatar
Martin Mareš committed
171 172
#protocol bgp {
#	disabled;
173
#	description "My BGP uplink";
Martin Mareš's avatar
Martin Mareš committed
174
#	local as 65000;
175
#	neighbor 198.51.100.130 as 64496;
Ondřej Zajíček's avatar
Ondřej Zajíček committed
176
#	multihop;
Martin Mareš's avatar
Martin Mareš committed
177 178 179 180 181 182 183 184 185 186 187 188 189
#	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
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
Martin Mareš's avatar
Martin Mareš committed
194 195 196
#	export where source=RTS_STATIC;
#	export filter {
#		if source = RTS_STATIC then {
197 198
#			bgp_community = -empty-; bgp_community = add(bgp_community,(65000,5678));
#			bgp_origin = 0;
Martin Mareš's avatar
Martin Mareš committed
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
Martin Mareš's avatar
Martin Mareš committed
203 204 205 206 207
#				bgp_path.prepend(65000);
#			accept;
#		}
#		reject;
#	};
208
#}
209
#
210 211 212 213 214 215 216 217 218 219 220 221
# 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;
#}