BUG syntax error on line 57, in bird.conf

Tyler Bennett tylerb at trix2voip.com
Wed Jan 17 20:28:44 CET 2018


I am testing our bird routing daemon version to 2.0.0, on archlinux per
the pkged version of bird by the archlinux devs.

There seems to be an issue with the default bird.conf file that is
provided by the bird source code, it errors out on line 57. Does the
config file have to be edited before it can be used? I know its an
example file, but should it be erroring out.

Please let me know if there is anything I can do to help out. I have
submitted a bug to archlinux as well:

https://bugs.archlinux.org/task/57096


-------------- next part --------------
/*
 *	This is an example configuration file
 *	(for version 1.x.x, obsolete)
 */

# 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;
#}


More information about the Bird-users mailing list