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