Annotation of elwix/config/etc/default/bird.conf, revision 1.1.2.2
1.1.2.2 ! misho 1: # This is a basic configuration file, which contains boilerplate options and
! 2: # some basic examples. It allows the BIRD daemon to start but will not cause
! 3: # anything else to happen.
! 4: #
! 5: # Please refer to the BIRD User's Guide documentation, which is also available
! 6: # online at http://bird.network.cz/ in HTML format, for more information on
! 7: # configuring BIRD and adding routing protocols.
1.1.2.1 misho 8:
9: # Configure logging
1.1.2.2 ! misho 10: log syslog all;
! 11: # log "/var/log/bird.log" { debug, trace, info, remote, warning, error, auth, fatal, bug };
1.1.2.1 misho 12:
1.1.2.2 ! misho 13: # Set router ID. It is a unique identification of your router, usually one of
! 14: # IPv4 addresses of the router. It is recommended to configure it explicitly.
! 15: # router id 198.51.100.1;
! 16:
! 17: # Turn on global debugging of all protocols (all messages or just selected classes)
! 18: # debug protocols all;
! 19: # debug protocols { events, states };
1.1.2.1 misho 20:
21: # Turn on internal watchdog
1.1.2.2 ! misho 22: # watchdog warning 5 s;
! 23: # watchdog timeout 30 s;
1.1.2.1 misho 24:
1.1.2.2 ! misho 25: # You can define your own constants
! 26: # define my_asn = 65000;
! 27: # define my_addr = 198.51.100.1;
! 28:
! 29: # Tables master4 and master6 are defined by default
! 30: # ipv4 table master4;
! 31: # ipv6 table master6;
! 32:
! 33: # Define more tables, e.g. for policy routing or as MRIB
! 34: # ipv4 table mrib4;
! 35: # ipv6 table mrib6;
! 36:
! 37: # The Device protocol is not a real routing protocol. It does not generate any
! 38: # routes and it only serves as a module for getting information about network
! 39: # interfaces from the kernel. It is necessary in almost any configuration.
! 40: protocol device {
! 41: }
! 42:
! 43: # The direct protocol is not a real routing protocol. It automatically generates
! 44: # direct routes to all network interfaces. Can exist in as many instances as you
! 45: # wish if you want to populate multiple routing tables with direct routes.
! 46: protocol direct {
! 47: disabled; # Disable by default
! 48: ipv4; # Connect to default IPv4 table
! 49: ipv6; # ... and to default IPv6 table
! 50: }
1.1.2.1 misho 51:
1.1.2.2 ! misho 52: # The Kernel protocol is not a real routing protocol. Instead of communicating
! 53: # with other routers in the network, it performs synchronization of BIRD
! 54: # routing tables with the OS kernel. One instance per table.
1.1.2.1 misho 55: protocol kernel {
1.1.2.2 ! misho 56: ipv4 { # Connect protocol to IPv4 table by channel
! 57: # table master4; # Default IPv4 table is master4
! 58: # import all; # Import to table, default is import all
! 59: export all; # Export to protocol. default is export none
! 60: };
! 61: # learn; # Learn alien routes from the kernel
! 62: # kernel table 10; # Kernel table to synchronize with (default: main)
1.1.2.1 misho 63: }
64:
1.1.2.2 ! misho 65: # Another instance for IPv6, skipping default options
! 66: protocol kernel {
! 67: ipv6 { export all; };
1.1.2.1 misho 68: }
69:
1.1.2.2 ! misho 70: # Static routes (Again, there can be multiple instances, for different address
! 71: # families and to disable/enable various groups of static routes on the fly).
1.1.2.1 misho 72: protocol static {
1.1.2.2 ! misho 73: ipv4; # Again, IPv4 channel with default options
! 74:
! 75: # route 0.0.0.0/0 via 198.51.100.10;
! 76: # route 192.0.2.0/24 blackhole;
1.1.2.1 misho 77: # route 10.0.0.0/8 unreachable;
1.1.2.2 ! misho 78: # route 10.2.0.0/24 via "eth0";
! 79: # # Static routes can be defined with optional attributes
! 80: # route 10.1.1.0/24 via 198.51.100.3 { rip_metric = 3; };
! 81: # route 10.1.2.0/24 via 198.51.100.3 { ospf_metric1 = 100; };
! 82: # route 10.1.3.0/24 via 198.51.100.4 { ospf_metric2 = 100; };
1.1.2.1 misho 83: }
84:
1.1.2.2 ! misho 85: # Pipe protocol connects two routing tables. Beware of loops.
! 86: # protocol pipe {
! 87: # table master4; # No ipv4/ipv6 channel definition like in other protocols
! 88: # peer table mrib4;
! 89: # import all; # Direction peer table -> table
! 90: # export all; # Direction table -> peer table
! 91: # }
! 92:
! 93: # RIP example, both RIP and RIPng are supported
! 94: # protocol rip {
! 95: # ipv4 {
! 96: # # Export direct, static routes and ones from RIP itself
! 97: # import all;
! 98: # export where source ~ [ RTS_DEVICE, RTS_STATIC, RTS_RIP ];
! 99: # };
! 100: # interface "eth*" {
! 101: # update time 10; # Default period is 30
! 102: # timeout time 60; # Default timeout is 180
! 103: # authentication cryptographic; # No authentication by default
! 104: # password "hello" { algorithm hmac sha256; }; # Default is MD5
! 105: # };
! 106: # }
1.1.2.1 misho 107:
1.1.2.2 ! misho 108: # OSPF example, both OSPFv2 and OSPFv3 are supported
! 109: # protocol ospf v3 {
! 110: # ipv6 {
! 111: # import all;
! 112: # export where source = RTS_STATIC;
! 113: # };
! 114: # area 0 {
1.1.2.1 misho 115: # interface "eth*" {
1.1.2.2 ! misho 116: # type broadcast; # Detected by default
! 117: # cost 10; # Interface metric
! 118: # hello 5; # Default hello perid 10 is too long
1.1.2.1 misho 119: # };
1.1.2.2 ! misho 120: # interface "tun*" {
! 121: # type ptp; # PtP mode, avoids DR selection
! 122: # cost 100; # Interface metric
! 123: # hello 5; # Default hello perid 10 is too long
1.1.2.1 misho 124: # };
1.1.2.2 ! misho 125: # interface "dummy0" {
! 126: # stub; # Stub interface, just propagate it
1.1.2.1 misho 127: # };
128: # };
129: #}
130:
1.1.2.2 ! misho 131: # Define simple filter as an example for BGP import filter
! 132: # See https://gitlab.labs.nic.cz/labs/bird/wikis/BGP_filtering for more examples
! 133: # filter rt_import
! 134: # {
! 135: # if bgp_path.first != 64496 then accept;
! 136: # if bgp_path.len > 64 then accept;
! 137: # if bgp_next_hop != from then accept;
! 138: # reject;
! 139: # }
1.1.2.1 misho 140:
1.1.2.2 ! misho 141: # BGP example, explicit name 'uplink1' is used instead of default 'bgp1'
! 142: # protocol bgp uplink1 {
1.1.2.1 misho 143: # description "My BGP uplink";
1.1.2.2 ! misho 144: # local 198.51.100.1 as 65000;
! 145: # neighbor 198.51.100.10 as 64496;
! 146: # hold time 90; # Default is 240
1.1.2.1 misho 147: # password "secret"; # Password used for MD5 authentication
1.1.2.2 ! misho 148: #
! 149: # ipv4 { # regular IPv4 unicast (1/1)
! 150: # import filter rt_import;
! 151: # export where source ~ [ RTS_STATIC, RTS_BGP ];
! 152: # };
! 153: #
! 154: # ipv6 { # regular IPv6 unicast (2/1)
! 155: # import filter rt_import;
! 156: # export filter { # The same as 'where' expression above
! 157: # if source ~ [ RTS_STATIC, RTS_BGP ]
! 158: # then accept;
! 159: # else reject;
! 160: # };
1.1.2.1 misho 161: # };
162: #
1.1.2.2 ! misho 163: # ipv4 multicast { # IPv4 multicast topology (1/2)
! 164: # table mrib4; # explicit IPv4 table
! 165: # import filter rt_import;
! 166: # export all;
! 167: # };
! 168: #
! 169: # ipv6 multicast { # IPv6 multicast topology (2/2)
! 170: # table mrib6; # explicit IPv6 table
! 171: # import filter rt_import;
! 172: # export all;
! 173: # };
! 174: #}
! 175:
! 176: # Template example. Using templates to define IBGP route reflector clients.
! 177: # template bgp rr_clients {
! 178: # local 10.0.0.1 as 65000;
! 179: # neighbor as 65000;
1.1.2.1 misho 180: # rr client;
181: # rr cluster id 1.0.0.1;
182: #
1.1.2.2 ! misho 183: # ipv4 {
! 184: # import all;
! 185: # export where source = RTS_BGP;
! 186: # };
! 187: #
! 188: # ipv6 {
! 189: # import all;
! 190: # export where source = RTS_BGP;
! 191: # };
! 192: # }
! 193: #
! 194: # protocol bgp client1 from rr_clients {
! 195: # neighbor 10.0.1.1;
! 196: # }
! 197: #
! 198: # protocol bgp client2 from rr_clients {
! 199: # neighbor 10.0.2.1;
! 200: # }
! 201: #
! 202: # protocol bgp client3 from rr_clients {
! 203: # neighbor 10.0.3.1;
! 204: # }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>