]> git.ipfire.org Git - thirdparty/bird.git/blame - doc/bird.conf.example2
Doc: BFD update
[thirdparty/bird.git] / doc / bird.conf.example2
CommitLineData
66e5dc15 1/*
6ea8a46c 2 * This is an example configuration file for MP-BGP setting
66e5dc15
OZ
3 */
4
5
6log "bird.log" all;
7# debug protocols all;
8
9router id 192.168.1.1;
10
11ipv4 table master4;
12ipv6 table master6;
13
14ipv4 table mcast4;
15ipv6 table mcast6;
16
a1de692a
OZ
17ipv4 table mtab4;
18ipv6 table mtab6;
19
20vpn4 table vpntab4;
21vpn6 table vpntab6;
22
23vpn4 table vpn4mc;
24vpn6 table vpn6mc;
25
66e5dc15
OZ
26flow4 table flowtab4;
27flow6 table flowtab6;
28
29
30protocol device {
66e5dc15
OZ
31}
32
33protocol kernel kernel4 {
66e5dc15
OZ
34 ipv4 {
35 export all;
36 };
37}
38
39protocol kernel kernel6 {
66e5dc15
OZ
40 ipv6 {
41 export all;
42 };
43}
44
45
46protocol static static4 {
47 ipv4;
48
49 route 10.10.0.0/24 via 192.168.1.2;
50 route 10.10.1.0/24 via 192.168.1.2 { bgp_large_community.add((10,20,30)); bgp_large_community.add((10,(20*3),10)); };
51}
52
53protocol static static6 {
54 ipv6;
55
56 route 2001:db8:10:10::/64 via 2001:db8:1:1::10;
57 route 2001:db8:10:11::/64 via 2001:db8:1:1::10;
58
59 route 2001:db8:1:1::/64 via fe80::ec9b:67ff:fe60:fd5d % ve1;
60}
61
a1de692a
OZ
62# VPNv4 routes with MPLS labels
63protocol static statvpn4 {
64 vpn4;
65
66 route 10:10 10.20.0.0/24 via 192.168.1.2 mpls 210;
67 route 10:10 10.20.1.0/24 via 192.168.1.2 mpls 210;
68 route 10:20 10.20.0.0/24 via 192.168.1.2 mpls 220;
69 route 10:20 10.20.1.0/24 via 192.168.1.2 mpls 220;
70}
71
72protocol static statvpn6 {
73 vpn6;
74
75 route 10:10 2001:db8:20:10::/64 via 2001:db8:1:1::10 mpls 200/210;
76 route 10:10 2001:db8:20:11::/64 via 2001:db8:1:1::10 mpls 200/210;
77 route 10:20 2001:db8:20:10::/64 via 2001:db8:1:1::10 mpls 200/220;
78 route 10:20 2001:db8:20:11::/64 via 2001:db8:1:1::10 mpls 200/220;
79}
80
66e5dc15
OZ
81# RFC 5575 flow specification
82protocol static flowstat4 {
83 flow4;
84
85 route flow4 {
86 dst 10.0.0.0/8;
87 proto = 23;
88 dport > 24 && < 30 || 40..50,60..70,80;
89 sport > 24 && < 30 || = 40 || 50,60..70,80;
90 icmp type 80;
91 icmp code 90;
92 tcp flags 0x03/0x0f;
93 length 2048..65535;
94 dscp = 63;
95 fragment dont_fragment, is_fragment || !first_fragment;
a1de692a 96 };
66e5dc15
OZ
97
98 route flow4 {
99 dst 11.0.0.0/8;
100 proto = 0x12;
101 sport > 0x5678 && < 0x9abc || 0xdef0 || 0x1234,0x5678,0x9abc..0xdef0;
102 dport = 50;
5ca4bd5d 103 tcp flags 0x000/0xf00;
a1de692a 104 };
66e5dc15
OZ
105
106 route flow4 {
107 dst 12.0.0.0/32;
5ca4bd5d 108 tcp flags ! 0/0x999;
a1de692a 109 };
66e5dc15
OZ
110
111 route flow4 {
112 dst 220.0.254.0/24;
5ca4bd5d 113 tcp flags 0x99/0x999;
a1de692a 114 };
66e5dc15
OZ
115
116 route flow4 {
117 dst 220.0.254.192/28;
5ca4bd5d 118 tcp flags ! 0xfff/0xfff;
a1de692a 119 };
66e5dc15
OZ
120
121 route flow4 {
122 dst 15.0.0.0/8;
5ca4bd5d 123 tcp flags ! 0x999/0x999;
a1de692a 124 };
66e5dc15
OZ
125}
126
127protocol static flowstat6 {
128 flow6;
129
130 route flow6 {
131 dst fec0:1122:3344:5566::1/128;
132 src 0000:0000:0000:0001:1234:5678:9800:0000/101 offset 63;
133 next header = 23;
134 sport 24..30, 42 || 50,60,70..80;
135 dport = 50;
136 tcp flags 0x03/0x0f, !0/0xff || 0x33/0x33;
137 fragment !is_fragment || !first_fragment;
138 label 0xaaaa/0xaaaa && 0x33/0x33;
a1de692a 139 };
66e5dc15
OZ
140
141 route flow6 {
142 dst fec0:1122:3344:5566::1/128;
143 src ::1:1234:5678:9800:0/101 offset 63;
144 next header = 23;
145 dport = 50;
146 sport > 24 && < 30 || = 40 || = 50 || = 60 || >= 70 && <= 80;
147 tcp flags 0x3/0x3 && 0x0/0xc;
a1de692a 148 };
66e5dc15
OZ
149}
150
151
152protocol pipe {
153 table master4;
154 peer table mcast4;
155 import none;
156 export where source = RTS_OSPF;
157}
158
159protocol pipe {
160 table master6;
161 peer table mcast6;
162 import none;
163 export where source = RTS_OSPF;
164}
165
8e25f7d2 166protocol ospf v2 ospf4 {
66e5dc15
OZ
167 ipv4 {
168 import all;
169# export where source = RTS_STATIC;
170 };
171
172 area 0 {
173 interface "ve0" { stub; };
174 interface "ve1" { hello 5; type ptp; };
175 interface "ve2" { hello 5; type bcast; ttl security; };
176 interface "ve3" { hello 5; type bcast; ttl security; };
177 };
178}
179
180
8e25f7d2 181protocol ospf v3 ospf6 {
66e5dc15
OZ
182 ipv6 {
183 import all;
184# export where source = RTS_STATIC;
185 };
186
187 area 0 {
188 interface "ve0" { stub; };
189 interface "ve1" { hello 5; type ptp; };
190 interface "ve2" { hello 5; type bcast; };
191 };
192}
193
194protocol bgp {
195 local 192.168.11.1 as 1000;
196 neighbor 192.168.11.2 as 2000;
197# local 192.168.1.1 as 1000;
198# neighbor 192.168.2.1 as 2000;
199# multihop;
200# rr client;
201# strict bind;
202# debug all;
203
204 # regular IPv4 unicast (1/1)
205 ipv4 {
206 # connects to master4 table by default
207 import all;
208 export where source ~ [ RTS_STATIC, RTS_BGP ];
209 };
210
211 # regular IPv6 unicast (2/1)
212 ipv6 {
213 # connects to master6 table by default
214 import all;
215 export where source ~ [ RTS_STATIC, RTS_BGP ];
216# next hop address 2001:db8:1:1::1;
217 };
218
219 # IPv4 multicast topology (1/2)
220 ipv4 multicast {
221 # explicit IPv4 table
222 table mcast4;
223 import all;
224 export all;
225 };
226
227 # IPv6 multicast topology (2/2)
228 ipv6 multicast {
229 # explicit IPv6 table
230 table mcast6;
231 import all;
232 export all;
233# next hop address 2001:db8:1:1::1;
234 };
235
a1de692a
OZ
236 # IPv4 with MPLS labels (1/4)
237 ipv4 mpls {
238 # explicit IPv4 table
239 table mtab4;
240 import all;
241 export all;
242 };
243
244 # IPv6 with MPLS labels (2/4)
def6efa1 245 ipv6 mpls {
a1de692a
OZ
246 # explicit IPv6 table
247 table mtab6;
248 import all;
249 export all;
250 # allows IPv4 next hops (6PE)
251 # extended next hop;
252 };
253
254 # VPNv4 with MPLS labels (1/128)
255 vpn4 mpls {
256 # connects to vpntab4 table by default
257 import all;
258 export all;
259 };
260
261 # VPNv6 with MPLS labels (2/128)
262 vpn6 mpls {
263 # connects to vpntab6 table by default
264 import all;
265 export all;
266 };
267
268 # VPNv4 multicast topology (1/129)
269 vpn4 multicast {
270 table vpn4mc;
271 import all;
272 export all;
273 };
274
275 # VPNv6 multicast topology (2/129)
276 vpn6 multicast {
277 table vpn6mc;
278 import all;
279 export all;
280 };
281
66e5dc15
OZ
282 # IPv4 Flowspec (1/133)
283 flow4 {
284 # connects to flowtab4 table by default
285 import all;
286 export all;
287 };
288
289 # IPv6 Flowspec (2/133)
290 flow6 {
291 # connects to flowtab6 table by default
292 import all;
293 export all;
294 };
295}
296
297protocol bgp {
298 local 192.168.1.1 as 1000;
299 neighbor 192.168.3.1 as 1000;
300 multihop;
301 rr client;
302
303 ipv4 {
304 import all;
305 export where source ~ [ RTS_STATIC, RTS_BGP ];
306 };
307
308 ipv6 {
309 import all;
310 export where source ~ [ RTS_STATIC, RTS_BGP ];
311 next hop address 2001:db8:1:1::1;
312 };
313}
314
315protocol bgp {
316 local 2001:db8:1:1::1 as 1000;
317 neighbor 2001:db8:4:1::1 as 1000;
318 multihop;
319 rr client;
320
321 ipv4 {
322 import all;
323 export where source ~ [ RTS_STATIC, RTS_BGP ];
324 next hop address 192.168.4.1;
325 };
326
327 ipv6 {
328 import all;
329 export where source ~ [ RTS_STATIC, RTS_BGP ];
330 };
331}
332