Aller au contenu
Avanet

Configurer et vérifier OSPF sur Sophos Firewall

OSPF échange automatiquement des routes IPv4 entre les routeurs. Cela s’avère utile lorsque plusieurs sites, des chemins redondants ou des réseaux fréquemment modifiés deviennent trop difficiles à maintenir avec des routes statiques.

Dans l’exemple suivant, deux Sophos Firewall établissent une adjacence OSPF via un réseau de transit dédié. À la fin, le voisin est à l’état Full, Firewall A connaît le LAN derrière Firewall B et inversement. OSPFv3 est configuré séparément pour IPv6.

⚠️ OSPF ne doit fonctionner que sur les interfaces de transit ou VPN prévues à cet effet et considérées comme fiables. Ne pas autoriser Dynamic Routing de manière générale pour les zones LAN et WAN, et ne pas activer Redistribute connected avant de savoir quels réseaux directement connectés seront ainsi annoncés.

OSPF en sept étapes

Les étapes suivantes sont nécessaires pour établir une connexion OSPFv2 simple :

  1. Adresser les interfaces de transit et vérifier l’accessibilité IP directe.
  2. Sous Administration > Device access, autoriser Dynamic Routing pour une zone de transit dédiée ou avec une Local Service ACL Exception strictement limitée.
  3. Sous Routing > OSPF, saisir un Router ID unique sur chaque firewall.
  4. Créer Area 0.0.0.0 avec le type Normal.
  5. Sous Networks, affecter le réseau de transit local à Area 0.0.0.0.
  6. Annoncer uniquement les routes LAN réellement nécessaires.
  7. Sous Routing > Information > OSPF, vérifier l’état Full du voisin et la route apprise.

Un Network OSPF n’est pas le réseau de destination distant. Cette entrée active OSPF sur les interfaces locales dont l’adresse IP appartient à ce réseau. Le LAN distant n’apparaît que lorsque le pair l’annonce via OSPF.

Ce que décide OSPF sur le firewall

OSPF est un protocole de routage interne à état de liens. Les routeurs voisins échangent des informations sur les réseaux et chemins qu’ils peuvent atteindre, construisent une Link-State Database à partir de ces informations et calculent le chemin le moins coûteux. Un Cost inférieur est préféré à un coût supérieur.

OSPF remplit donc une autre fonction que les règles de firewall et le SD-WAN :

  • OSPF apprend et distribue les réseaux de destination au sein du domaine de routage.
  • Une règle de firewall détermine toujours si le trafic utile peut passer entre les zones et les réseaux concernés.
  • NAT modifie les adresses si nécessaire, mais ne fait pas partie d’OSPF.
  • Une SD-WAN Route peut en outre prendre une décision selon la source, le service, l’application ou la qualité de la liaison.

Sophos Firewall classe les routes apprises dynamiquement dans la catégorie static de la Route Precedence globale. Si une route OSPF entre en concurrence avec une route SD-WAN ou VPN, la Route Precedence doit donc également correspondre au flux de paquets souhaité. Au sein d’OSPF, en revanche, le Cost est déterminant.

OSPFv2 traite IPv4. OSPFv3 remplit la même fonction pour IPv6, mais se configure séparément sur Sophos Firewall.

Planifier la topologie d’exemple

Les valeurs de l’exemple représentent deux sites :

  • Firewall A : Router ID 192.0.2.10, IP de transit 198.51.100.1/30, LAN local 10.10.10.0/24
  • Firewall B : Router ID 192.0.2.20, IP de transit 198.51.100.2/30, LAN local 10.20.20.0/24
  • Réseau de transit : 198.51.100.0/30
  • OSPF Area : 0.0.0.0

Les adresses 192.0.2.0/24 et 198.51.100.0/24 sont des réseaux de documentation. Elles doivent être remplacées par les valeurs réelles de l’environnement.

Le Router ID ressemble à une adresse IPv4, mais ne doit pas nécessairement être affecté à une interface. L’essentiel est qu’il reste unique et durablement stable dans le domaine OSPF. 0.0.0.0 n’est pas autorisé. Si aucune valeur n’est définie, SFOS utilise l’adresse d’interface la plus élevée ; un Router ID choisi délibérément évite que l’identité change de manière inattendue après une modification d’interface.

Pour cette architecture simple, Backbone Area 0.0.0.0 suffit. Plusieurs Areas ne deviennent utiles que lorsqu’un domaine de routage plus vaste doit être délibérément structuré et agrégé. Chaque Area supplémentaire doit être reliée à Backbone Area.

Préparer OSPF en toute sécurité

Les conditions suivantes doivent être remplies avant la configuration d’OSPF :

  • Le firewall fonctionne en Gateway Mode. OSPF n’est pas disponible en Transparent Mode.
  • Les deux IP de transit se trouvent dans le même réseau et peuvent communiquer directement, par exemple avec Ping.
  • L’interface, le masque de sous-réseau, la MTU et la zone sont documentés.
  • Router ID, Area, l’authentification, Hello interval et Dead interval sont coordonnés des deux côtés.
  • Une sauvegarde de la configuration et un accès d’administration indépendant sont disponibles.
  • Des règles de firewall et des chemins de retour adaptés sont prévus pour les deux LAN.

Un VLAN de transit et une zone de transit dédiés facilitent la sécurisation. Configurer les zones et les interfaces de Sophos Firewall en explique les bases.

Autoriser Dynamic Routing de manière ciblée

Sous Administration > Device access, Dynamic Routing est désactivé par défaut pour toutes les zones. Pour cet exemple, le service est activé uniquement dans la zone de transit dédiée à laquelle le réseau 198.51.100.0/30 est lié.

La case à cocher dans la matrice Device Access s’applique à l’ensemble de la zone, et pas seulement à une interface. Si l’interface de transit partage sa zone avec d’autres réseaux, une Local Service ACL Exception doit limiter le service au réseau de transit et aux pairs prévus.

Cette autorisation concerne les paquets OSPF destinés au firewall lui-même. Aucune règle de firewall normale n’est nécessaire à cet effet. Le trafic réel entre 10.10.10.0/24 et 10.20.20.0/24 nécessite malgré tout des règles de firewall IPv4 appropriées. Sécuriser Device Access sur Sophos Firewall explique la séparation entre les services locaux et le trafic transféré.

Configurer OSPFv2 dans WebAdmin

Les étapes suivantes sont effectuées sur les deux firewalls. Seuls Router ID, l’IP de transit et le LAN local diffèrent.

1. Définir les paramètres globaux

Sous Routing > OSPF, définir les valeurs globales :

  • Router ID : 192.0.2.10 sur Firewall A, 192.0.2.20 sur Firewall B
  • Default metric : conserver 20, sauf si une valeur spécifique est prévue pour les routes redistribuées
  • ABR type : Standard pour une nouvelle architecture standard
  • Auto-cost reference-bandwidth : conserver la valeur par défaut 100000 Mbps tant que la planification des coûts n’exige pas une autre valeur de référence commune
  • Default-information originate : Never, tant que le firewall ne doit pas distribuer expressément une Default Route à tous les voisins OSPF
  • Redistribute connected, static, RIP et BGP : laisser désactivés dans un premier temps

Appliquer ensuite la configuration globale avec Apply.

Default Metric concerne les routes importées dans OSPF depuis d’autres sources. Interface Cost détermine en revanche la sélection du chemin au sein de la topologie OSPF. Le Cost le plus bas l’emporte.

Default-information originate: Always ne doit pas servir de commutateur rapide pour le basculement Internet. Le firewall annoncerait alors une Default Route même s’il n’en possède aucune. Regular ne l’annonce que lorsqu’une Default Route est présente dans la table de routage.

2. Créer Backbone Area

Dans la section Areas, cliquer sur Add et définir les valeurs suivantes :

  • Area : 0.0.0.0
  • Type : Normal

Pour Area, sélectionner Authentication Type Text ou MD5. Si le pair prend en charge MD5, cette option est préférable au texte en clair. La Key ID correspondante et la clé seront renseignées ultérieurement sur l’interface de transit. MD5 authentifie les paquets OSPF, mais ne chiffre pas les informations de routage échangées.

Enregistrer ensuite Area avec Save.

3. Ajouter le réseau de transit

Dans la section Networks, cliquer sur Add :

  • IPv4/Netmask : 198.51.100.0/30
  • Area : 0.0.0.0

Sur Firewall A, l’adresse 198.51.100.1 correspond à ce Network ; sur Firewall B, il s’agit de 198.51.100.2. OSPF s’exécute ainsi sur les interfaces de transit respectives et les deux firewalls peuvent établir une adjacence.

Enregistrer l’entrée Network avec Save.

Le LAN local ne doit pas être simplement saisi comme une prétendue destination distante. Une entrée Network supplémentaire peut certes l’annoncer même sans voisin, mais elle active également OSPF sur l’interface LAN correspondante. Si aucun routeur OSPF n’est prévu sur cette interface, une Redistribution sélective permet de mieux délimiter l’annonce.

4. Remplacer les valeurs d’interface uniquement de manière délibérée

L’interface de transit peut être sélectionnée sous Override interface configuration. Les valeurs par défaut conviennent à de nombreuses connexions Ethernet :

  • Hello interval : 10 secondes
  • Dead interval : 40 secondes
  • Retransmit interval : 5 secondes
  • Transmit delay : 1 seconde
  • Interface cost : Auto
  • Router priority : 1

Hello et Dead doivent être identiques sur tous les routeurs du segment. Retransmit Interval et Transmit Delay sont définis localement. Cost et Router Priority peuvent volontairement différer : Cost détermine le chemin de données privilégié, tandis que Priority influence l’élection du DR et du BDR sur les réseaux de diffusion. Une Priority de 0 exclut l’interface de cette élection.

À Priority égale, Router ID est déterminant, mais une élection DR en cours n’est pas préemptive. Un Cost défini manuellement est utile lorsqu’un chemin doit être privilégié parmi plusieurs. Avec Auto, SFOS calcule le Cost à partir de la Reference Bandwidth globale et de la vitesse d’interface configurée. Si la vitesse de la liaison est modifiée sous Network > Interfaces, OSPF n’applique le nouvel Auto Cost qu’après un redémarrage du firewall.

Pour l’authentification MD5, sélectionner Authentication Type MD5 dans Area. Saisir ensuite la même Key ID, comprise entre 0 et 255, et la même clé sur l’interface de transit des deux côtés.

Appliquer les valeurs d’interface modifiées avec Save.

5. Annoncer uniquement les LAN nécessaires

Dans cet exemple, Firewall A doit annoncer 10.10.10.0/24 et Firewall B, 10.20.20.0/24. Il existe deux méthodes fondamentalement différentes :

  • Un OSPF Network active OSPF sur l’interface locale correspondante. Cette méthode convient lorsque d’autres routeurs OSPF doivent y établir une adjacence.
  • Redistribution importe dans OSPF une route provenant d’une autre source de routage. Un LAN directement connecté peut ainsi être annoncé sans nécessiter d’adjacence OSPF sur cette interface.

Dans l’exemple, les deux LAN sont redistribués de manière sélective, car aucun autre routeur OSPF ne doit établir d’adjacence sur leurs interfaces.

L’option Redistribute connected de WebAdmin importe tous les réseaux directement connectés. Sur un firewall de production, cela peut également inclure des réseaux WAN, d’administration, DMZ, VPN et d’autres VLAN. La case ne doit donc pas être activée sans en examiner les conséquences.

Pour une annonce sélective, une ACL associée à une Route Map peut être utilisée dans la CLI OSPF. Après la connexion SSH, suivre 3. Route Configuration > 1. Configure Unicast Routing > 2. Configure OSPF. L’exemple suivant sur Firewall A autorise uniquement le LAN local 10.10.10.0/24 :

enable
configure terminal
access-list ospf-connected-out permit 10.10.10.0/24
route-map ospf-connected-filter permit 10
match ip address ospf-connected-out
exit
router ospf
redistribute connected route-map ospf-connected-filter
exit
write
show running-config

Sur Firewall B, utiliser à la place 10.20.20.0/24 dans access-list. L’ACL comporte une règle Deny finale implicite ; les Connected Routes qui ne sont pas expressément autorisées ne sont donc pas redistribuées par cette Route Map.

Avec cette méthode, l’option globale Redistribute connected reste désactivée dans WebAdmin. Après toute modification ultérieure de la configuration OSPF globale, vérifier à nouveau show running-config, car WebAdmin peut supprimer les paramètres CLI avancés contradictoires.

Redistribute static nécessite également un filtrage délibéré. Cette option inclut notamment les routes Blackhole statiques, qui pourraient sinon être transmises involontairement aux routeurs voisins.

Vérifier et valider OSPF

Une adjacence seule ne prouve pas que le LAN souhaité est accessible. La validation s’effectue donc depuis la couche OSPF jusqu’au flux de paquets réel.

  1. Sous Routing > Information > OSPF > Neighbors, le pair doit apparaître avec son Router ID. Full indique que les informations d’état de liens pertinentes ont été intégralement échangées.
  2. Sous Routes, Firewall A doit voir 10.20.20.0/24 via 198.51.100.2. Firewall B doit voir 10.10.10.0/24 via 198.51.100.1.
  3. Sous Interface, vérifier Area, Router ID, Cost, les temporisateurs, Network Type et la MTU.
  4. Sous Diagnostics > Tools > Route lookup, vérifier une destination concrète, par exemple 10.20.20.10 sur Firewall A.
  5. Tester ensuite une connexion réelle entre un hôte de chaque LAN. Log Viewer et Packet Capture doivent afficher la règle de firewall attendue, l’interface de transit et le trafic de retour.

Pour les deux dernières étapes, consulter Tester une règle Sophos Firewall avec Log Viewer et Packet Capture.

Pour un contrôle supplémentaire via SSH, le chemin CLI est 3. Route Configuration > 1. Configure Unicast Routing > 2. Configure OSPF :

enable
show ip ospf interface
show ip ospf database
show ip ospf neighbor
show ip ospf route

Ces commandes permettent de documenter ensemble les interfaces concernées, la Link-State Database, l’état des voisins et les routes calculées par OSPF.

Dans Advanced Shell, les journaux OSPF et du noyau fournissent un contexte supplémentaire. L’accès s’effectue via 5. Device Management > 3. Advanced Shell :

cd /log
tail -f ospfd.log

Arrêter la sortie en continu avec Ctrl+C. Le second journal peut ensuite être vérifié :

tail -f zebra.log

ospfd.log affiche les événements OSPF. zebra.log aide à vérifier si une route apprise dynamiquement a été ajoutée au noyau. Pour ne pas suivre le journal en direct, utiliser par exemple less /log/ospfd.log. Fichiers de service et journaux de Sophos Firewall associe les autres fichiers aux services correspondants.

Délimiter systématiquement les erreurs

Aucun voisin n’apparaît

Vérifier d’abord l’accessibilité directe des IP de transit. L’interface de transit doit ensuite être active, OSPF Network doit correspondre à l’IP de l’interface locale et Dynamic Routing doit être activé dans la zone appropriée. Area, le masque de sous-réseau, Authentication Type, Key ID, la clé, Hello et Dead doivent correspondre des deux côtés. Des Router ID en double empêchent également l’établissement correct d’une adjacence.

Le voisin reste à l’état Init ou 2-Way

Init signifie que des paquets Hello arrivent, mais que la communication n’est pas encore confirmée dans les deux directions. Device Access, les filtres asymétriques, l’affectation d’interface et le chemin de retour sont alors les premiers points à vérifier.

2-Way est normal entre deux routeurs d’un réseau de diffusion lorsque ni l’un ni l’autre n’est DR ou BDR. Dans l’exemple, avec exactement deux routeurs OSPF et Priority 1, les deux participants deviennent DR et BDR ; leur adjacence doit donc atteindre l’état Full. Si elle reste à l’état 2-Way, vérifier Router Priority, Network Type et le pair.

Le voisin reste à l’état ExStart, Exchange ou Loading

Dans ces états, la synchronisation de la Link-State Database a commencé, mais ne se termine pas. Des valeurs MTU différentes, des Network Types incompatibles, des Router ID en double ou des connexions instables en sont des causes fréquentes. Sous Routing > Information > OSPF > Interface, les valeurs MTU, MTU Mismatch Detection, Network Type et les temporisateurs sont disponibles à des fins de comparaison.

Le voisin est Full, mais le LAN distant est absent

L’adjacence fonctionne alors, mais le LAN n’est pas annoncé ou n’est pas autorisé par le filtre. Sur le firewall émetteur, Connected Route, ACL, Route Map et redistribute connected route-map doivent correspondre au préfixe souhaité. show running-config affiche la configuration OSPF enregistrée.

Si Redistribute connected a été activé dans WebAdmin, contrôler non seulement le LAN manquant, mais aussi la liste complète de tous les réseaux ainsi annoncés.

La route existe, mais le trafic ne fonctionne pas

OSPF a rempli sa fonction lorsque la route avec le bon Next Hop est présente. Les erreurs se situent ensuite généralement au niveau de la règle de firewall, de NAT, de Route Precedence, du chemin de retour ou du système de destination. Pour des réseaux de sites normalement routés, SNAT n’est généralement pas nécessaire, car les deux firewalls doivent connaître les LAN via OSPF.

OSPF via IPsec route-based

OSPF peut également fonctionner sur une interface XFRM d’un tunnel IPsec Site-to-Site route-based. Avec un tunnel Any-to-Any ou Dual-Stack, attribuer aux interfaces XFRM des deux côtés des adresses IP uniques issues du même réseau de transit. Cet adressage n’est pas possible avec des Traffic Selectors spécifiques.

Les exigences supplémentaires suivantes s’appliquent à cette variante :

  • Dynamic Routing est autorisé pour la zone VPN sous Administration > Device access.
  • Le réseau de transit XFRM est saisi comme OSPF Network.
  • Le trafic utile nécessite des règles de firewall IPv4 ou IPv6 adaptées à la zone VPN.
  • Hello, Dead, l’authentification et la MTU doivent correspondre au pair.
  • Comparer le OSPF Network Type affiché des deux côtés. Une différence peut empêcher l’établissement de l’adjacence ; si elle ne peut pas être corrigée dans WebAdmin, le pair doit être adapté ou Sophos Support doit être impliqué.

Un tunnel IPsec vert et un voisin OSPF à l’état Full sont deux points de contrôle distincts. Seuls la route apprise et un flux de paquets réel confirment l’ensemble de la configuration.

Dans un cluster HA, OSPF peut converger de nouveau après un basculement. Il convient donc de tester un basculement planifié, puis de vérifier sur le Node actif que le voisin, les routes, ospfd.log et zebra.log ont retrouvé l’état attendu.

OSPFv3 pour IPv6

Sous Routing > OSPFv3, le routage IPv6 se configure indépendamment d’OSPFv2. Router ID reste une valeur unique au format IPv4.

Contrairement à OSPFv2, aucun Network n’est saisi en premier. Sous Interfaces, sélectionner l’interface compatible IPv6 et l’affecter à une Area. Area 0.0.0.0 est également utilisée pour une architecture simple. Hello et Dead doivent correspondre sur le segment ; définir Cost, Retransmit, Transmit Delay et Router Priority en fonction de la topologie. SFOS ne prend actuellement en charge qu’une seule instance OSPFv3 par interface avec la valeur par défaut 0 pour Instance ID.

Sophos Firewall ne prend actuellement pas en charge l’authentification pour OSPFv3. Les échanges doivent donc avoir lieu uniquement sur des liaisons fiables ou déjà protégées. Une configuration OSPFv2 existante n’annonce aucun réseau IPv6, et des règles de firewall IPv6 distinctes sont nécessaires pour le trafic utile IPv6.

Dans WebAdmin, les réseaux IPv6 directement connectés et les routes BGP IPv6 peuvent être redistribués dans OSPFv3. Là encore, Redistribute connected couvre tous les réseaux IPv6 directement connectés et ne doit donc pas être activé de manière générale.

La validation s’effectue sous Routing > Information > OSPFv3 ; en cas d’erreur, ospf6d.log fournit le contexte propre au protocole.

Annuler la modification en toute sécurité

Avant de supprimer OSPF, un autre chemin ou une fenêtre de maintenance planifiée doit être disponible pour chaque réseau de destination appris. Supprimer d’abord la Redistribution du LAN local, puis le Network de transit et, enfin, désactiver Dynamic Routing pour la zone. Vérifier ensuite à nouveau Route Lookup, la table de routage et l’accès d’administration.

Pour annuler uniquement un Cost, un temporisateur ou un filtre incorrect, modifier toujours un seul paramètre à la fois. Il reste ainsi possible de déterminer si l’adjacence OSPF, l’annonce de routes ou seulement le trafic utile a été affecté.