Return to bird.conf CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / elwix / config / etc / default |
1.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. ! 8: ! 9: # Configure logging ! 10: log syslog all; ! 11: # log "/var/log/bird.log" { debug, trace, info, remote, warning, error, auth, fatal, bug }; ! 12: ! 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 }; ! 20: ! 21: # Turn on internal watchdog ! 22: # watchdog warning 5 s; ! 23: # watchdog timeout 30 s; ! 24: ! 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: } ! 51: ! 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. ! 55: protocol kernel { ! 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) ! 63: } ! 64: ! 65: # Another instance for IPv6, skipping default options ! 66: protocol kernel { ! 67: ipv6 { export all; }; ! 68: } ! 69: ! 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). ! 72: protocol static { ! 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; ! 77: # route 10.0.0.0/8 unreachable; ! 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; }; ! 83: } ! 84: ! 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: # } ! 107: ! 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 { ! 115: # interface "eth*" { ! 116: # type broadcast; # Detected by default ! 117: # cost 10; # Interface metric ! 118: # hello 5; # Default hello perid 10 is too long ! 119: # }; ! 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 ! 124: # }; ! 125: # interface "dummy0" { ! 126: # stub; # Stub interface, just propagate it ! 127: # }; ! 128: # }; ! 129: #} ! 130: ! 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: # } ! 140: ! 141: # BGP example, explicit name 'uplink1' is used instead of default 'bgp1' ! 142: # protocol bgp uplink1 { ! 143: # description "My BGP uplink"; ! 144: # local 198.51.100.1 as 65000; ! 145: # neighbor 198.51.100.10 as 64496; ! 146: # hold time 90; # Default is 240 ! 147: # password "secret"; # Password used for MD5 authentication ! 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: # }; ! 161: # }; ! 162: # ! 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; ! 180: # rr client; ! 181: # rr cluster id 1.0.0.1; ! 182: # ! 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: # }