summaryrefslogtreecommitdiff
path: root/doc/bird.conf.example2
diff options
context:
space:
mode:
Diffstat (limited to 'doc/bird.conf.example2')
-rw-r--r--doc/bird.conf.example2341
1 files changed, 341 insertions, 0 deletions
diff --git a/doc/bird.conf.example2 b/doc/bird.conf.example2
new file mode 100644
index 00000000..d7048b64
--- /dev/null
+++ b/doc/bird.conf.example2
@@ -0,0 +1,341 @@
+/*
+ * 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 {
+ scan time 10;
+}
+
+protocol kernel kernel4 {
+ scan time 20;
+
+ ipv4 {
+ export all;
+ };
+}
+
+protocol kernel kernel6 {
+ scan time 20;
+
+ 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 {
+# ecmp;
+
+ 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 {
+# ecmp;
+
+ 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 multicast {
+ # 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 ];
+ };
+}
+