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 :
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