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 Interaction avec le routage Stormshield Network.

Dans l’interface d’administration, des règles de filtrage sont nécessaires pour autoriser les flux de routage BIRD :

Exemple de configuration avancée filtrage et NAT

Depuis la version de firmware 1.0 et le support d’IPv6, la configuration du routage dynamique s’effectue au sein de deux fichiers, selon la version IP des réseaux concernés:

  • /usr/Firewall/ConfigFiles/Bird/bird.conf pour les réseaux et routes IPv4.
  • /usr/Firewall/ConfigFiles/Bird/bird6.conf pour les réseaux et routes IPv6.

Le démarrage de BIRD requiert deux opérations distinctes.

Le module BIRD doit tout d’abord être défini comme actif dans le fichier suivant : /usr/Firewall/ConfigFiles/Bird/global. Cela se réalise par le passage à « 1 » de la variable « state » dans la section [bird], pour le routage IPv4, et/ou dans la section [bird6], pour le routage IPv6.


[bird]
state=1

[bird6]
state=1

Cette opération assure la persistance de l’activation du routage dynamique lors du redémarrage du firewall.

Ensuite, pour démarrer BIRD ou pour recharger sa configuration suite à une modification, utilisez la commande « enbird ». Si la configuration contient des erreurs de syntaxe, la commande les signale et n’active pas la configuration.


V50XXA0D0000073>enbird
V50XXA0D0000073>

Birdc/birdc6: contrôle distant

BIRD et BIRD6 disposent d’un mode interactif : birdc pour BIRD Client, et birdc6 pour BIRD6 Client. Lancez ce mode en appelant birdc ou birdc6, selon la version IP du routage dynamique que vous souhaitez contrôler.


V50XXA0D0000073>birdc
BIRD 1.6.8 ready.
bird>


V50XXA0D0000073>birdc6
BIRD 1.6.8 ready.
bird>

NOTE
Dans la suite de ce document, tous les exemples sont présentés pour le mode interactif birdc. Ils sont entièrement transposables pour le mode interactif birdc6.

Le mode interactif de BIRD ne permet pas de modifier le fichier de configuration, mais 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.

Commandes « Show »

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


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

 

Exemple :

Affichage de toutes les routes.


bird> show route
0.0.0.0/0 via 192.168.97.1 on em0 [static1 21:11] * (200)
100.100.100.100/32 via 192.168.97.101 on em0 [static1 21:11] * (200)
  via 192.168.97.101 on em0 [router1 20:50 from 100.100.100.100] (100/?) [AS65001?]
1.1.1.0/24 via 192.168.97.1 on em0 [router2 21:08 from 192.168.97.102] * (100/?) [?]
1.1.3.0/24 via 192.168.97.1 on em0 [router2 21:08 from 192.168.97.102] * (100/?) [?]
2.2.2.0/24 via 192.168.97.101 on em0 [router1 20:50 from 100.100.100.100] * (100/?) [AS65001?]
2.2.4.0/24 via 192.168.97.101 on em0 [router1 20:50 from 100.100.100.100] * (100/?) [AS65001?]
bird>

Exemple :

Affichage des routes par Instance de protocole. Dans ce cas, l’instance est router2.


bird> show route protocol router2

1.1.1.0/24 via 192.168.97.1 on em0 [router2 14:14 from 192.168.97.102] * (100/?) [?]
1.1.3.0/24 via 192.168.97.1 on em0 [router2 14:14 from 192.168.97.102] * (100/?) [?]
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.


bird> show route export router1
172.16.0.0/24 blackhole [static1 13:20] * (200)
bird>

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 protocols all router1
[……]
BGP state: Active
  Neighbor address: 100.100.100.100
  Neighbor AS: 65001
  Start delay: 2/5
  Last error: Socket: Connection closed
bird>

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> >>> KRT: Error sending route 0.0.0.0/0 to kernel: No such process
>>> KRT: Error sending route 100.100.100.100/32 to kernel: No such process
>>> Next hop address 100.100.100.100 resolvable through recursive route for 100.100.100.100/32
>>> KRT: Error sending route 1.1.1.0/24 to kernel: No such process

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 router2 all
bird> echo all
>>> router2 < added 0.0.0.0/0 via 192.168.97.1 on em0
>>> router2 < replaced 100.100.100.100/32 via 192.168.97.101 on em0
>>> router2 > updated 1.1.1.0/24 via 192.168.97.1 on em0
>>> router2 < rejected by protocol 1.1.1.0/24 via 192.168.97.1 on em0
>>> router2 > updated [best] 1.1.1.0/24 via 192.168.97.1 on em0
>>> router2 < replaced 2.2.2.0/24 via 192.168.97.101 on em0
>>> router2 < 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_a_tester.conf. Pour cela, lancez BIRD en utilisant une configuration bird.conf dont le fonctionnement est validé, puis lancez birdc.

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


bird> configure check "bird_a_tester.conf"

Ensuite, appliquez temporairement cette configuration pendant 60 secondes par la commande :


bird> configure "bird_a_tester.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