mirror of
				https://gitlab.labs.nic.cz/labs/bird.git
				synced 2024-05-11 16:54:54 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			333 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			333 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| /*
 | |
|  *	This is an example configuration file for MB-BGP setting
 | |
|  */
 | |
| 
 | |
| 
 | |
| log "bird.log" all;
 | |
| # debug protocols all;
 | |
| 
 | |
| router id 192.168.1.1;
 | |
| 
 | |
| ipv4 table master4;
 | |
| ipv6 table master6;
 | |
| 
 | |
| ipv4 table mcast4;
 | |
| ipv6 table mcast6;
 | |
| 
 | |
| ipv4 table mtab4;
 | |
| ipv6 table mtab6;
 | |
| 
 | |
| vpn4 table vpntab4;
 | |
| vpn6 table vpntab6;
 | |
| 
 | |
| vpn4 table vpn4mc;
 | |
| vpn6 table vpn6mc;
 | |
| 
 | |
| flow4 table flowtab4;
 | |
| flow6 table flowtab6;
 | |
| 
 | |
| 
 | |
| protocol device {
 | |
| }
 | |
| 
 | |
| protocol kernel kernel4 {
 | |
| 	ipv4 {
 | |
| 		export all;
 | |
| 	};
 | |
| }
 | |
| 
 | |
| protocol kernel kernel6 {
 | |
| 	ipv6 {
 | |
| 		export all;
 | |
| 	};
 | |
| }
 | |
| 
 | |
| 
 | |
| protocol static static4 {
 | |
| 	ipv4;
 | |
| 
 | |
| 	route 10.10.0.0/24 via 192.168.1.2;
 | |
| 	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)); };
 | |
| }
 | |
| 
 | |
| protocol static static6 {
 | |
| 	ipv6;
 | |
| 
 | |
| 	route 2001:db8:10:10::/64 via 2001:db8:1:1::10;
 | |
| 	route 2001:db8:10:11::/64 via 2001:db8:1:1::10;
 | |
| 
 | |
| 	route 2001:db8:1:1::/64 via fe80::ec9b:67ff:fe60:fd5d % ve1;
 | |
| }
 | |
| 
 | |
| # VPNv4 routes with MPLS labels
 | |
| protocol static statvpn4 {
 | |
| 	vpn4;
 | |
| 
 | |
| 	route 10:10 10.20.0.0/24 via 192.168.1.2 mpls 210;
 | |
| 	route 10:10 10.20.1.0/24 via 192.168.1.2 mpls 210;
 | |
| 	route 10:20 10.20.0.0/24 via 192.168.1.2 mpls 220;
 | |
| 	route 10:20 10.20.1.0/24 via 192.168.1.2 mpls 220;
 | |
| }
 | |
| 
 | |
| protocol static statvpn6 {
 | |
| 	vpn6;
 | |
| 
 | |
| 	route 10:10 2001:db8:20:10::/64 via 2001:db8:1:1::10 mpls 200/210;
 | |
| 	route 10:10 2001:db8:20:11::/64 via 2001:db8:1:1::10 mpls 200/210;
 | |
| 	route 10:20 2001:db8:20:10::/64 via 2001:db8:1:1::10 mpls 200/220;
 | |
| 	route 10:20 2001:db8:20:11::/64 via 2001:db8:1:1::10 mpls 200/220;
 | |
| }
 | |
| 
 | |
| # RFC 5575 flow specification
 | |
| protocol static flowstat4 {
 | |
| 	flow4;
 | |
| 
 | |
| 	route flow4 {
 | |
| 		dst 10.0.0.0/8;
 | |
| 		proto = 23;
 | |
| 		dport > 24 && < 30 || 40..50,60..70,80;
 | |
| 		sport > 24 && < 30 || = 40 || 50,60..70,80;
 | |
| 		icmp type 80;
 | |
| 		icmp code 90;
 | |
| 		tcp flags 0x03/0x0f;
 | |
| 		length 2048..65535;
 | |
| 		dscp = 63;
 | |
| 		fragment dont_fragment, is_fragment || !first_fragment;
 | |
| 	};
 | |
| 
 | |
| 	route flow4 {
 | |
| 		dst 11.0.0.0/8;
 | |
| 		proto = 0x12;
 | |
| 		sport > 0x5678 && < 0x9abc || 0xdef0 || 0x1234,0x5678,0x9abc..0xdef0;
 | |
| 		dport = 50;
 | |
| 		tcp flags 0x000/0xf00;
 | |
| 	};
 | |
| 
 | |
| 	route flow4 {
 | |
| 		dst 12.0.0.0/32;
 | |
| 		tcp flags ! 0/0x999;
 | |
| 	};
 | |
| 
 | |
| 	route flow4 {
 | |
| 		dst 220.0.254.0/24;
 | |
| 		tcp flags 0x99/0x999;
 | |
| 	};
 | |
| 
 | |
| 	route flow4 {
 | |
| 		dst 220.0.254.192/28;
 | |
| 		tcp flags ! 0xfff/0xfff;
 | |
| 	};
 | |
| 
 | |
| 	route flow4 {
 | |
| 		dst 15.0.0.0/8;
 | |
| 		tcp flags ! 0x999/0x999;
 | |
| 	};
 | |
| }
 | |
| 
 | |
| protocol static flowstat6 {
 | |
| 	flow6;
 | |
| 
 | |
| 	route flow6 {
 | |
| 		dst fec0:1122:3344:5566::1/128;
 | |
| 		src 0000:0000:0000:0001:1234:5678:9800:0000/101 offset 63;
 | |
| 		next header = 23;
 | |
| 		sport 24..30, 42 || 50,60,70..80;
 | |
| 		dport = 50;
 | |
| 		tcp flags 0x03/0x0f, !0/0xff || 0x33/0x33;
 | |
| 		fragment !is_fragment || !first_fragment;
 | |
| 		label 0xaaaa/0xaaaa && 0x33/0x33;
 | |
| 	};
 | |
| 
 | |
| 	route flow6 {
 | |
| 		dst fec0:1122:3344:5566::1/128;
 | |
| 		src ::1:1234:5678:9800:0/101 offset 63;
 | |
| 		next header = 23;
 | |
| 		dport = 50;
 | |
| 		sport > 24 && < 30 || = 40 || = 50 || = 60 || >= 70 && <= 80;
 | |
| 		tcp flags 0x3/0x3 && 0x0/0xc;
 | |
| 	};
 | |
| }
 | |
| 
 | |
| 
 | |
| protocol pipe {
 | |
| 	table master4;
 | |
| 	peer table mcast4;
 | |
| 	import none;
 | |
| 	export where source = RTS_OSPF;
 | |
| }
 | |
| 
 | |
| protocol pipe {
 | |
| 	table master6;
 | |
| 	peer table mcast6;
 | |
| 	import none;
 | |
| 	export where source = RTS_OSPF;
 | |
| }
 | |
| 
 | |
| protocol ospf v2 ospf4 {
 | |
| 	ipv4 {
 | |
| 		import all;
 | |
| #		export where source = RTS_STATIC;
 | |
| 	};
 | |
| 
 | |
| 	area 0 {
 | |
| 		interface "ve0" { stub; };
 | |
| 		interface "ve1" { hello 5; type ptp; };
 | |
| 		interface "ve2" { hello 5; type bcast; ttl security; };
 | |
| 		interface "ve3" { hello 5; type bcast; ttl security; };
 | |
| 	};
 | |
| }
 | |
| 
 | |
| 
 | |
| protocol ospf v3 ospf6 {
 | |
| 	ipv6 {
 | |
| 		import all;
 | |
| #		export where source = RTS_STATIC;
 | |
| 	};
 | |
| 
 | |
| 	area 0 {
 | |
| 		interface "ve0" { stub; };
 | |
| 		interface "ve1" { hello 5; type ptp; };
 | |
| 		interface "ve2" { hello 5; type bcast; };
 | |
| 	};
 | |
| }
 | |
| 
 | |
| protocol bgp {
 | |
| 	local 192.168.11.1 as 1000;
 | |
| 	neighbor 192.168.11.2 as 2000;
 | |
| #	local 192.168.1.1 as 1000;
 | |
| #	neighbor 192.168.2.1 as 2000;
 | |
| #	multihop;
 | |
| #	rr client;
 | |
| #	strict bind;
 | |
| #	debug all;
 | |
| 
 | |
| 	# regular IPv4 unicast (1/1)
 | |
| 	ipv4 {
 | |
| 		# connects to master4 table by default
 | |
| 		import all;
 | |
| 		export where source ~ [ RTS_STATIC, RTS_BGP ];
 | |
| 	};
 | |
| 
 | |
| 	# regular IPv6 unicast (2/1)
 | |
| 	ipv6 {
 | |
| 		# connects to master6 table by default
 | |
| 		import all;
 | |
| 		export where source ~ [ RTS_STATIC, RTS_BGP ];
 | |
| #		next hop address 2001:db8:1:1::1;
 | |
| 	};
 | |
| 
 | |
| 	# IPv4 multicast topology (1/2)
 | |
| 	ipv4 multicast {
 | |
| 		# explicit IPv4 table
 | |
| 		table mcast4;
 | |
| 		import all;
 | |
| 		export all;
 | |
| 	};
 | |
| 
 | |
| 	# IPv6 multicast topology (2/2)
 | |
| 	ipv6 multicast {
 | |
| 		# explicit IPv6 table
 | |
| 		table mcast6;
 | |
| 		import all;
 | |
| 		export all;
 | |
| #		next hop address 2001:db8:1:1::1;
 | |
| 	};
 | |
| 
 | |
| 	# IPv4 with MPLS labels (1/4)
 | |
| 	ipv4 mpls {
 | |
| 		# explicit IPv4 table
 | |
| 		table mtab4;
 | |
| 		import all;
 | |
| 		export all;
 | |
| 	};
 | |
| 
 | |
| 	# IPv6 with MPLS labels (2/4)
 | |
| 	ipv6 mpls {
 | |
| 		# explicit IPv6 table
 | |
| 		table mtab6;
 | |
| 		import all;
 | |
| 		export all;
 | |
| 		# allows IPv4 next hops (6PE)
 | |
| 		# extended next hop;
 | |
| 	};
 | |
| 
 | |
| 	# VPNv4 with MPLS labels (1/128)
 | |
|         vpn4 mpls {
 | |
| 		# connects to vpntab4 table by default
 | |
| 		import all;
 | |
| 		export all;
 | |
| 	};
 | |
| 
 | |
| 	# VPNv6 with MPLS labels (2/128)
 | |
|         vpn6 mpls {
 | |
| 		# connects to vpntab6 table by default
 | |
| 		import all;
 | |
| 		export all;
 | |
| 	};
 | |
| 
 | |
| 	# VPNv4 multicast topology (1/129)
 | |
|         vpn4 multicast {
 | |
| 		table vpn4mc;
 | |
| 		import all;
 | |
| 		export all;
 | |
| 	};
 | |
| 
 | |
| 	# VPNv6 multicast topology (2/129)
 | |
|         vpn6 multicast {
 | |
| 		table vpn6mc;
 | |
| 		import all;
 | |
| 		export all;
 | |
| 	};
 | |
| 
 | |
| 	# IPv4 Flowspec (1/133)
 | |
| 	flow4 {
 | |
| 		# connects to flowtab4 table by default
 | |
| 		import all;
 | |
| 		export all;
 | |
| 	};
 | |
| 
 | |
| 	# IPv6 Flowspec (2/133)
 | |
| 	flow6 {
 | |
| 		# connects to flowtab6 table by default
 | |
| 		import all;
 | |
| 		export all;
 | |
| 	};
 | |
| }
 | |
| 
 | |
| protocol bgp {
 | |
| 	local 192.168.1.1 as 1000;
 | |
| 	neighbor 192.168.3.1 as 1000;
 | |
| 	multihop;
 | |
| 	rr client;
 | |
| 
 | |
| 	ipv4 {
 | |
| 		import all;
 | |
| 		export where source ~ [ RTS_STATIC, RTS_BGP ];
 | |
| 	};
 | |
| 
 | |
| 	ipv6 {
 | |
| 		import all;
 | |
| 		export where source ~ [ RTS_STATIC, RTS_BGP ];
 | |
| 		next hop address 2001:db8:1:1::1;
 | |
| 	};
 | |
| }
 | |
| 
 | |
| protocol bgp {
 | |
| 	local 2001:db8:1:1::1 as 1000;
 | |
| 	neighbor 2001:db8:4:1::1 as 1000;
 | |
| 	multihop;
 | |
| 	rr client;
 | |
| 
 | |
| 	ipv4 {
 | |
| 		import all;
 | |
| 		export where source ~ [ RTS_STATIC, RTS_BGP ];
 | |
| 		next hop address 192.168.4.1;
 | |
| 	};
 | |
| 
 | |
| 	ipv6 {
 | |
| 		import all;
 | |
| 		export where source ~ [ RTS_STATIC, RTS_BGP ];
 | |
| 	};
 | |
| }
 | |
| 
 |