Bird Example Config



/*
 * This is an example configuration file.
 */

# Yes, even shell-like comments work...

# Configure logging
#log syslog { debug, trace, info, remote, warning, error, auth, fatal, bug };
#log stderr all;
#log "tmp" all;

# Override router ID
#router id 198.51.100.1;

# You can define your own symbols...
#define xyzzy = (120+10);
#define '1a-a1' = (30+40);

# Define a route filter...
#filter test_filter {
# if net ~ 10.0.0.0/16 then accept;
# else reject;
#}

#filter sink { reject; }
#filter okay { accept; } 

#include "filters.conf";

# Define another routing table
#table testable;

# Turn on global debugging of all protocols
#debug protocols all;

# Turn on internal watchdog
#watchdog warning 5 s;
#watchdog timeout 30 s;

# The direct protocol automatically generates device routes to
# all network interfaces. Can exist in as many instances as you wish
# if you want to populate multiple routing tables with device routes.
#protocol direct {
# interface "-eth*", "*"; # Restrict network interfaces it works with
#}

# This pseudo-protocol performs synchronization between BIRD's routing
# tables and the kernel. If your kernel supports multiple routing tables
# (as Linux 2.2.x does), you can run multiple instances of the kernel
# protocol and synchronize different kernel tables with different BIRD tables.
protocol kernel {
# learn;   # Learn all alien routes from the kernel
 persist;  # Don't remove routes on bird shutdown
 scan time 20;  # Scan kernel routing table every 20 seconds
# import none;  # Default is import all
 export all;  # Default is export none
# kernel table 5;  # Kernel table to synchronize with (default: main)
}

# This pseudo-protocol watches all interface up/down events.
protocol device {
 scan time 10;  # Scan interfaces every 10 seconds
}

# Static routes (again, there can be multiple instances, so that you
# can disable/enable various groups of static routes on the fly).
protocol static {
# disabled;  # Disable by default
# table testable;  # Connect to a non-default table
# preference 1000; # Default preference of routes
# debug { states, routes, filters, interfaces, events, packets };
# debug all;
# route 0.0.0.0/0 via 198.51.100.13;
# route 198.51.100.0/25 unreachable;
# route 10.0.0.0/8 unreachable;
# route 10.1.1.0:255.255.255.0 via 198.51.100.3;
# route 10.1.2.0:255.255.255.0 via 198.51.100.3;
# route 10.1.3.0:255.255.255.0 via 198.51.100.4;
# route 10.2.0.0/24 via "arc0";
}

# Pipe protocol connects two routing tables... Beware of loops.
#protocol pipe {
# peer table testable;
# Define what routes do we export to this protocol / import from it.
#  import all;  # default is all
# export all;  # default is none
# import none;  # If you wish to disable imports
# import filter test_filter;  # Use named filter
# import where source = RTS_DEVICE; # Use explicit filter
#}

# RIP aka Rest In Pieces...
#protocol rip MyRIP { # You can also use an explicit name
# preference xyzzy;
# debug all;
# port 1520;
# period 7;
#  infinity 16;
# garbage time 60;
# interface "*" { mode broadcast; };
# honor neighbor;  # To whom do we agree to send the routing table
# honor always;
# honor never;
# passwords {
#  password "nazdar";
# };
# authentication none;
# import filter { print "importing"; accept; };
# export filter { print "exporting"; accept; };
#}

#protocol ospf MyOSPF {
#       tick 2;
# rfc1583compat yes;
# area 0.0.0.0 {
#  stub no;
#  interface "eth*" {
#   hello 9;
#           retransmit 6;
#   cost 10;
#   transmit delay 5;
#   dead count 5;
#   wait 50;
#   type broadcast;
#   authentication simple;
#   password "pass";
#  };
#  interface "arc0" {
#   rx buffer large;
#   type nonbroadcast;
#   poll 14;
#   dead 75;
#   neighbors {
#    10.1.1.2 eligible;
#    10.1.1.4;
#   };
#    strict nonbroadcast yes;
#  };
#  interface "xxx0" {
#                       passwords {
#    password "abc" {
#      id 1;
#     generate to "22-04-2003 11:00:06";
#     accept to "17-01-2004 12:01:05";
#    };
#    password "def" {
#     id 2;
#     generate from "22-04-2003 11:00:07";
#     accept from "17-01-2003 12:01:05";
#    };
#   };
#                       authentication cryptographic;
#  };
# };
# area 20 {
#  stub 1;
#  interface "ppp1" {
#   hello 8;
#   authentication none;
#  };
#               interface "fr*";
#               virtual link 192.168.0.1 {
#                       password "sdsdffsdfg";
#                       authentication cryptographic;
#               };
# };
#}


#protocol bgp {
# disabled;
# description "My BGP uplink";
# local as 65000;
# neighbor 198.51.100.130 as 64496;
#  multihop;
# hold time 240;
# startup hold time 240;
# connect retry time 120;
# keepalive time 80; # defaults to hold time / 3
# start delay time 5; # How long do we wait before initial connect
# error wait time 60, 300;# Minimum and maximum time we wait after an error (when consecutive
#    # errors occur, we increase the delay exponentially ...
# error forget time 300; # ... until this timeout expires)
# disable after error; # Disable the protocol automatically when an error occurs
# next hop self;  # Disable next hop processing and always advertise our local address as nexthop
# path metric 1;  # Prefer routes with shorter paths (like Cisco does)
# default bgp_med 0; # MED value we use for comparison when none is defined
# default bgp_local_pref 0; # The same for local preference
# source address 198.51.100.14; # What local address we use for the TCP connection
# password "secret"; # Password used for MD5 authentication
# rr client;  # I am a route reflector and the neighor is my client
# rr cluster id 1.0.0.1; # Use this value for cluster id instead of my router id
# export where source=RTS_STATIC;
# export filter {
#  if source = RTS_STATIC then {
#   bgp_community = -empty-; bgp_community = add(bgp_community,(65000,5678));
#   bgp_origin = 0;
#   bgp_community = -empty-; bgp_community.add((65000,5678));
#   if (65000,64501) ~ bgp_community then
#    bgp_community.add((0, 1));
#   if bgp_path ~ [= 65000 =] then
#    bgp_path.prepend(65000);
#   accept;
#  }
#  reject;
# };
#}
#
# Template usage example
#template bgp rr_client {
# disabled;
# local as 65000;
# multihop;
# rr client;
# rr cluster id 1.0.0.1;
#}
#
#protocol bgp rr_abcd from rr_client {
# neighbor 10.1.4.7 as 65000;
#}

No comments:

Post a Comment