Annotation of embedaddon/bird2/doc/bird.conf.example2, revision 1.1.1.1
1.1 misho 1: /*
2: * This is an example configuration file for MB-BGP setting
3: */
4:
5:
6: log "bird.log" all;
7: # debug protocols all;
8:
9: router id 192.168.1.1;
10:
11: ipv4 table master4;
12: ipv6 table master6;
13:
14: ipv4 table mcast4;
15: ipv6 table mcast6;
16:
17: ipv4 table mtab4;
18: ipv6 table mtab6;
19:
20: vpn4 table vpntab4;
21: vpn6 table vpntab6;
22:
23: vpn4 table vpn4mc;
24: vpn6 table vpn6mc;
25:
26: flow4 table flowtab4;
27: flow6 table flowtab6;
28:
29:
30: protocol device {
31: }
32:
33: protocol kernel kernel4 {
34: ipv4 {
35: export all;
36: };
37: }
38:
39: protocol kernel kernel6 {
40: ipv6 {
41: export all;
42: };
43: }
44:
45:
46: protocol 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:
53: protocol 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:
62: # VPNv4 routes with MPLS labels
63: protocol 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:
72: protocol 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:
81: # RFC 5575 flow specification
82: protocol 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;
96: };
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;
103: tcp flags 0x000/0xf00;
104: };
105:
106: route flow4 {
107: dst 12.0.0.0/32;
108: tcp flags ! 0/0x999;
109: };
110:
111: route flow4 {
112: dst 220.0.254.0/24;
113: tcp flags 0x99/0x999;
114: };
115:
116: route flow4 {
117: dst 220.0.254.192/28;
118: tcp flags ! 0xfff/0xfff;
119: };
120:
121: route flow4 {
122: dst 15.0.0.0/8;
123: tcp flags ! 0x999/0x999;
124: };
125: }
126:
127: protocol 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;
139: };
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;
148: };
149: }
150:
151:
152: protocol pipe {
153: table master4;
154: peer table mcast4;
155: import none;
156: export where source = RTS_OSPF;
157: }
158:
159: protocol pipe {
160: table master6;
161: peer table mcast6;
162: import none;
163: export where source = RTS_OSPF;
164: }
165:
166: protocol ospf v2 ospf4 {
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:
181: protocol ospf v3 ospf6 {
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:
194: protocol 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:
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)
245: ipv6 mpls {
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:
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:
297: protocol 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:
315: protocol 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:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>