Connaître l'environnement BIRD / Stormshield Network

Dans une configuration sortie d’usine, le module de routage BIRD n’est pas activé.

Il est possible de faire coexister le routage du firewall Stormshield Network et le routage dynamique BIRD. Par exemple, la zone interne peut être gérée avec un protocole de routage dynamique et la zone externe avec les fonctionnalités de routage du firewall (routage statique, passerelles, routage par règles (PBR), objets routeur).

Pour cela, consultez la section Interagir avec le routage Stormshield Network.

Contrairement à la version BIRD v1 qui utilisait deux fichiers de configuration distincts, la configuration du routage dynamique BIRD v2 pour IPv4 et IPv6 s’effectue au sein d'un unique fichier : /usr/Firewall/ConfigFiles/Bird/bird.conf.

Démarrer le routage BIRD v2 depuis l'interface Web d'administration

Pour activer et démarrer le routage BIRD v2 :

  1. Placez-vous dans le module Configuration > Réseau > Routage dynamique > onglet Général,
  2. Placez le curseur Activer le routage dynamique sur ON,
  3. Dans le cadre Configuration générale : sélectionnez le bouton radio BIRD v2.

Contrôler le routage dynamique BIRD v2 en mode interactif

BIRD dispose d’un mode interactif : birdc pour BIRD Client.

Ce mode interactif permet de visualiser les états de BIRD, de tester le bon fonctionnement d'une nouvelle configuration en permettant de revenir en arrière, et de créer une configuration temporaire.

En revanche, ce mode interactif ne permet pas de modifier de manière définitive le fichier de configuration de BIRD.

Depuis la console du firewall, lancez ce mode en appelant birdc pour contrôler le routage dynamique.

La première information affichée est la version de BIRD :

BIRDv2-VMSNSX09I0390A9>birdc
BIRD 2.15.1 ready.
bird>

Commandes « Show »

Le caractère “?” vous permet d’afficher la liste des options disponibles :

bird> show ?
show status                               Show router status
show memory                               Show memory usage
show protocols [<protocol> | "<pattern>"] Show routing protocols
show interfaces                           Show network interfaces
show route ...                            Show routing table
show symbols ...                          Show all known symbolic names
show babel ...                            Show information about Babel protocol
show bfd ...                              Show information about BFD protocol
show ospf ...                             Show information about OSPF protocol
show rip ...                              Show information about RIP protocol
show static [<name>]                      Show details of static protocol

Exemple :

Afficher toutes les routes.

bird> show route
Table master4:
0.0.0.0/0            unicast [kernel1 09:02:35.632] * (254)
	 via 172.20.151.254 on em0(out)
172.16.1.125/32      unicast [kernel1 09:02:35.632] * (254)
	 dev lo0(loopback)
192.168.220.0/24     unicast [direct1 09:02:35.632] ! (240)
	 dev em2(dmz1)
                     unicast [MyOSPF 09:02:35.732] I (150/10) [192.168.97.219]
	 dev em2(dmz1)
172.20.151.3/32      unicast [kernel1 09:02:35.632] * (254)
	 dev lo0(loopback)
192.168.220.21/32    unicast [kernel1 09:02:35.632] * (254)
	 dev lo0(loopback)

Exemple :

Afficher les routes par instance de protocole. Dans ce cas, l’instance est MyOSPF.

bird> show route protocol MyOSPF
Table master4:
192.168.220.0/24    unicast [MyOSPF 09:02:35.732] I (150/10) [192.168.97.219]
	dev em2(dmz1)
bird>

Dans birdc, la plupart des commandes sont communes à l'ensemble des protocoles. Ainsi par exemple, les routes annoncées à un voisin BGP sont visualisées par une commande qui fait appel au filtre d’export (filtre nommé ospfexport dans cet exemple) :

bird> show route filter ospfexport
Table master4:
0.0.0.0/0            unicast [kernel1 09:02:35.632] * (254)
	via 172.20.151.254 on em0(out)
192.168.220.0/24     unicast [direct1 09:02:35.632] ! (240)
	dev em2(dmz1)

Debug

Les commandes Show donnent de nombreux renseignements sur les instances. Elles permettent de diagnostiquer les problèmes, qu'ils soient dus à une mauvaise configuration, un problème de réseau, ou autre.

bird> show protocol all router1
Name       Proto      Net Type   Table      State  Since         Info
router1    BGP        Undefined  ---        start  14:11:41.925  Active        Socket: Connection closed
	Description:    My 1st BGP uplink
	BGP state:          Active
		Neighbor address: 100.100.100.100
		Neighbor AS:      65001
		Local AS:         65065
		Connect delay:    1.041/5
		Last error:       Socket: Connection closed
	Channel ipv4
		State:          DOWN
		Table:          master4
		Preference:     100
		Input filter:   ACCEPT
		Output filter:  (unnamed)
		IGP IPv4 table: master4

Pour activer la réception des messages systèmes sur la console, entrez la commande echo all puis echo off pour stopper ces logs.

bird> echo all
bird> >>> router1: Connecting to 100.100.100.100 from local address 200.200.200.200
>>> router1: Socket error: bind: Can't assign requested address
>>> router1: Connection closed
>>> router1: Connect delayed by 5 seconds

Les événements de debug sont visualisés globalement ou par exemple par instance de protocole. L’exploitation des commandes de debug est un outil intéressant qui complète efficacement les commandes de visualisation d’états.

bird> debug ospf_router2_v4 all
bird> echo all
>>> ospf_router2_v4 < added 0.0.0.0/0 via 192.168.97.1 on em0
>>> ospf_router2_v4 < replaced 100.100.100.100/32 via 192.168.97.101 on em0
>>> ospf_router2_v4 > updated 1.1.1.0/24 via 192.168.97.1 on em0
>>> ospf_router2_v4 < rejected by protocol 1.1.1.0/24 via 192.168.97.1 on em0
>>> ospf_router2_v4 > updated [best] 1.1.1.0/24 via 192.168.97.1 on em0
>>> ospf_router2_v4 < replaced 2.2.2.0/24 via 192.168.97.101 on em0
>>> ospf_router2_v4 < replaced 2.2.4.0/24 via 192.168.97.101 on em0

Test temporaire d’une nouvelle configuration

On souhaite tester une nouvelle configuration bird_conf_to_test.conf. Pour cela, activez BIRD en utilisant une configuration bird.conf dont le fonctionnement est validé, puis lancez le mode interactif birdc depuis la console du firewall..

Pour vérifier la syntaxe du fichier sans l'appliquer :

bird> configure check "bird_conf_to_test.conf"

Appliquez ensuite temporairement cette configuration pendant 60 secondes par la commande :

bird> configure "bird_conf_to_test.conf" timeout 60

La nouvelle configuration s'applique. Si le firewall n'est plus joignable ou sans confirmation de la part de l’administrateur, la configuration précédente sera ré-appliquée automatiquement au bout de 60 secondes.

Si la nouvelle configuration est considérée comme valide, on peut la confirmer grâce à :

bird> configure confirm

Si la nouvelle configuration n'est pas validée et que le firewall est encore joignable, on peut revenir en arrière immédiatement grâce à :

bird> configure undo