RIP

The version supported is RIP v2.
The following is the "RIP_simple" configuration.

Configure a default route and a static route to 100.100.100.100/32:

Example of a configuration with a static route:

Configure RIP v2 by specifying "multicast" as the RIP mode associated with the interface "em0".

sns_log off;   # default is "no extra log"
router id  192.168.97.219;

# This pseudo-protocol performs synchronization
# between BIRD's routing tables and the kernel.
protocol kernel {
	persist;                # Don't remove routes on bird shutdown
	scan time 20;           # Scan kernel routing table every 20 seconds
	learn;                  # Learn all alien routes from the kernel
	ipv4 {
		export all;     # Default is export none
		preference 254; # Protect kernel routes with high preference
	};
}

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

# The direct protocol automatically
# generates device routes to all network interfaces.
protocol direct {
	ipv4;               # Minimal IPv4 default channel config
}

filter  ripexport {
	if (net = 0.0.0.0/0) || (net = 100.100.100.100/32)
	then accept;
	else reject;
}

protocol rip MyRIP {
	debug all;
	interface "em0" {
	mode multicast;
	authentication none;
	};
	ipv4 {
		import all;
		export filter ripexport;
	};
}

# This pseudo-protocol is used to configure static routes.
protocol static MyStaticRoutes {
	ipv4;
}

Allowing the RIP protocol in filter policies

Filter rules are required in order to allow RIP routing traffic to and from the firewall:

Checking the proper operation of RIP dynamic routing

Show the status of the protocol instance:

bird> show protocols all MyRIP
Name	Proto	Net Type	Table	State	Since		Info
MyRIP	RIP	ipv4		master4	up	10:08:56
  Channel ipv4
    State:		UP
    Table:		master4
    Preference:	120
    Input filter:	ACCEPT
    Output filter:	ripexport
    Routes:	0 imported, 1 exported, 0 preferred
    Route change stats:  received rejected filtered ignored accepted
      Import updates:	  0	   0	    0	     0	     0
      Import withdraws:  7	   0	    ---	     7	     0
      Export updates:	  15	   0	    13	     ---     2
      Export withdraws:  3	   ---	    ---	     ---     1

Show learned routes:

bird> show route primary protocol MyRIP
192.168.97.0/24 via 10.200.45.250 on eth0 [MyRIP 10:29:19] ! (120/2)
1.1.9.0/24 via 10.200.45.250 on eth0 [MyRIP 10:29:19] * (120/2)
1.1.8.0/24 via 10.200.45.250 on eth0 [MyRIP 10:29:19] * (120/2)

The following are the routes that were received by the neighbor. You will notice that the default route has been received. Mainstream routers will ordinarily not allow this route to be exported. In this case, it has to be explicitly filtered.

bird> show route primary protocol MyRIP
0.0.0.0/0 via 192.168.97.219 on eth0 [MyRIP 10:36] * (120/2)
100.100.100.100/32 via 192.168.97.101 on eth0 [MyRIP 10:36 from 192.168.97.219] * (120/2)