OSPF

Les versions supportées sont OSPF v2 pour IPv4 et OSPF v3 pour IPv6.
Voici ci-dessous la configuration « OSPF_simple » :

Elle consiste à déployer une aire 0 sur un LAN où l’on désigne explicitement un voisin éventuel. Toutes les routes sont importées d’OSPF. On redistribue dans OSPF la route du sous-réseau directement relié à l'interface em3 (172.16.0.0/24), ainsi que la route par défaut.

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 {
	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
	ipv4 {
		export all;     # THIS CONFIGURATION MUST BE ADJUSTED
		preference 254; # Protect existing routes
	};
}

# 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
	interface "em2";
}

filter ospfexport {
	if (source = RTS_DEVICE) || (net = 0.0.0.0/0)
	then accept;
	else reject;
}

protocol ospf MyOSPF {
area 0.0.0.0 {
	stub no;
	interface "em2" {
	type broadcast;
	neighbors {
		192.168.97.103 eligible;
	};
	};
	};
	ipv4 {
		export filter ospfexport;
		import all;
	};
}

NOTE
Il est conseillé de positionner le paramètre "priority 0" dans la section interface de la configuration du noeud OSPF afin de désactiver la participation du firewall aux élections pour les rôles de Designated Router / Backup Designated Router.

Autoriser le protocole OSPF dans la politique de filtrage

Des règles de filtrage sont nécessaires pour autoriser les flux de routage OSPF vers et depuis le firewall.

Dans l'exemple de politique de filtrage suivant, l'objet router_103 représente l'adresse IP (192.168.97.103) du voisin OSPF déclaré explicitement dans la configuration du firewall.

IMPORTANT
Pour le bon fonctionnement d'OSPF, vous devez autoriser le trafic unicast d'OSPF en plus du trafic multicast comme illustré dans cet exemple de politique de filtrage.

Vérifier le bon fonctionnement du routage dynamique OSPF

La commande suivante indique que le voisinage est bien établi (indiqué par l’état « full »).
Le voisin est déclaré comme « Designated Router » (indiqué par l’état « dr ») :

bird> show ospf neighbors
MyOSPF:
Router ID		Pri	State 	DTime	Interface    Router IP
192.168.97.103		1	full/dr	00:34	em4	     192.168.97.103

Routes reçues:

bird> show route protocol MyOSPF
3.3.3.3/32 via 192.168.97.103 on em4 [MyOSPF 16:17:38] * E2 (150/10/10000) [192.168.97.103]
192.168.97.0/24 dev em4 [MyOSPF 16:15:43] * I (150/10) [192.168.97.219]

On peut afficher la topologie OSPF :

bird> show ospf topology
area 0.0.0.0
	router 192.168.97.103
		distance 10
		network	192.168.97.0/24	metric 10
	router 192.168.97.219
		distance 0
		network  192.168.97.0/24 metric 10
	network 192.168.97.0/24
		dr 192.168.97.103
		distance 10
		router 192.168.97.103
		router 192.168.97.219

Ainsi que la base de données LSA :

bird> show ospf lsadb
Global
Type	LS ID		Router 		Age	Sequence	Checksum
0005	3.3.3.3		192.168.97.103	501	8000000a	ec8a
0005	172.16.0.255	192.168.97.219	1150	80000001	81b6
0005	0.0.0.0		192.168.97.219	1150	80000001	37f1
Area	0.0.0.0
Type	LS ID		Router		Age	Sequence	Checksum
0001	192.168.97.103	192.168.97.103	455	8000000a	2254
0002	192.168.97.103	192.168.97.103	456	80000006	9384
0001	192.168.97.219	192.168.97.219	1144	8000041b	0bf8

NOTE
Notez que le type de LSA est présenté à gauche alors qu’il sert généralement de délimiteur horizontal dans les conventions d’affichage traditionnelles.