Konfigurera och verifiera OSPF i Sophos Firewall
OSPF utbyter automatiskt IPv4-routes mellan routrar. Det är användbart när flera platser, redundanta vägar eller nät som ändras ofta blir besvärliga att underhålla med statiska routes.
I följande exempel bildar två Sophos Firewalls en OSPF-grannrelation via ett eget transitnät. I slutet har Neighbor statusen Full, Firewall A känner till LAN-nätet bakom Firewall B och vice versa. För IPv6 konfigureras OSPFv3 separat.
⚠️ OSPF bör endast köras på avsedda och betrodda transit- eller VPN-interface. Tillåt inte
Dynamic Routinggenerellt för LAN- och WAN-zoner och aktivera inteRedistribute connectedinnan det är tydligt vilka direktanslutna nät som därmed annonseras.
OSPF i sju steg
Följande steg krävs för en enkel OSPFv2-anslutning:
- Adressera transitinterfacen och kontrollera den direkta IP-nåbarheten.
- Tillåt Dynamic Routing under
Administration > Device accessför en separat transitzon eller med ett strikt begränsat Local Service ACL Exception. - Ange ett unikt Router ID på varje brandvägg under
Routing > OSPF. - Skapa Area
0.0.0.0som Normal. - Tilldela det lokala transitnätet till Area
0.0.0.0under Networks. - Annonsera endast de LAN-routes som faktiskt behövs.
- Kontrollera Neighbor-statusen Full och den inlärda routen under
Routing > Information > OSPF.
Ett OSPF-Network är inte det fjärranslutna målnätet. Posten aktiverar OSPF på de lokala interface vars IP-adress ligger inom nätet. Fjärr-LAN-nätet visas först när motparten annonserar det via OSPF.
Vad OSPF avgör på brandväggen
OSPF är ett internt link-state-routingprotokoll. Angränsande routrar utbyter information om nåbara nät och vägar, bygger en Link-State Database och beräknar den bästa vägen. Ett lägre Cost föredras framför ett högre.
OSPF löser därmed en annan uppgift än brandväggsregler och SD-WAN:
- OSPF lär sig och distribuerar målnät inom den egna routingdomänen.
- En brandväggsregel avgör fortfarande om nyttotrafik får passera mellan de berörda zonerna och näten.
- NAT ändrar adresser vid behov, men ingår inte i OSPF.
- En SD-WAN Route kan dessutom fatta beslut utifrån källa, tjänst, applikation eller länkkvalitet.
Sophos Firewall placerar dynamiskt inlärda routes i kategorin static i den globala Route Precedence. Om en OSPF-route konkurrerar med en SD-WAN- eller VPN-route måste därför även Route Precedence stämma överens med det avsedda paketflödet. Inom OSPF är det däremot Cost som avgör.
OSPFv2 hanterar IPv4. OSPFv3 fyller samma funktion för IPv6, men konfigureras separat i Sophos Firewall.
Planera exempeltopologin
Exempelvärdena representerar två platser:
- Firewall A: Router ID
192.0.2.10, transit-IP198.51.100.1/30, lokalt LAN10.10.10.0/24 - Firewall B: Router ID
192.0.2.20, transit-IP198.51.100.2/30, lokalt LAN10.20.20.0/24 - Transitnät:
198.51.100.0/30 - OSPF Area:
0.0.0.0
Adresserna 192.0.2.0/24 och 198.51.100.0/24 är dokumentationsnät. Ersätt dem med de faktiska värdena i miljön.
Router ID ser ut som en IPv4-adress, men behöver inte vara tilldelat ett interface. Det viktiga är att det är unikt inom OSPF-domänen och förblir stabilt över tid. 0.0.0.0 är inte tillåtet. Utan ett eget värde använder SFOS den högsta interfaceadressen. Ett medvetet valt Router ID förhindrar att identiteten oväntat ändras efter en interfaceändring.
För denna enkla konfiguration räcker Backbone Area 0.0.0.0. Flera Areas är motiverade först när en större routingdomän medvetet ska struktureras och summeras. Varje ytterligare Area behöver en anslutning till Backbone Area.
Förbered OSPF säkert
Följande förutsättningar bör vara uppfyllda innan OSPF konfigureras:
- Brandväggen körs i Gateway Mode. OSPF är inte tillgängligt i Transparent Mode.
- Båda transit-IP-adresserna ligger i samma nät och kan nå varandra direkt, exempelvis med Ping.
- Interface, subnätmask, MTU och zon är dokumenterade.
- Router ID, Area, Authentication, Hello interval och Dead interval är avstämda på båda sidor.
- Det finns en konfigurationsbackup och oberoende managementåtkomst.
- Lämpliga brandväggsregler och returvägar är planerade för de två LAN-näten.
Ett eget transit-VLAN och en separat transitzon förenklar skyddet. Grunderna beskrivs i Konfigurera zoner och interface i Sophos Firewall.
Tillåt Dynamic Routing selektivt
Under Administration > Device access är Dynamic Routing som standard avaktiverat för alla zoner. I exemplet aktiveras tjänsten endast i den egna transitzon som nätet 198.51.100.0/30 är kopplat till.
Kryssrutan i Device Access-matrisen gäller hela zonen och inte bara ett enskilt interface. Om transitinterfacet delar zon med andra nät bör ett Local Service ACL Exception i stället begränsa tjänsten till transitnätet och de avsedda motparterna.
Denna tillåtelse gäller OSPF-paket till själva brandväggen. Ingen vanlig brandväggsregel krävs för detta. Den faktiska datatrafiken mellan 10.10.10.0/24 och 10.20.20.0/24 behöver ändå lämpliga IPv4-brandväggsregler. Skillnaden mellan lokala tjänster och vidarebefordrad trafik beskrivs i Skydda Device Access i Sophos Firewall.
Konfigurera OSPFv2 i WebAdmin
Följande steg utförs på båda brandväggarna. Endast Router ID, transit-IP och lokalt LAN skiljer sig åt.
1. Ange globala inställningar
Under Routing > OSPF anges de globala värdena:
- Router ID: på Firewall A
192.0.2.10, på Firewall B192.0.2.20 - Default metric: behåll
20om inget annat värde medvetet har fastställts för redistribuerade routes - ABR type:
Standardför en ny standardkonfiguration - Auto-cost reference-bandwidth: behåll standardvärdet
100000 Mbpsså länge kostnadsplaneringen inte kräver ett annat gemensamt referensvärde - Default-information originate:
Neverså länge brandväggen inte uttryckligen ska distribuera en Default Route till alla OSPF-grannar - Redistribute connected, static, RIP och BGP: låt dem vara avaktiverade till en början
Tillämpa därefter den globala konfigurationen med Apply.
Default Metric gäller routes som importeras till OSPF från andra källor. Interface Cost avgör däremot vägvalet inom OSPF-topologin. Ett lägre Cost vinner.
Default-information originate: Always får inte användas som en snabb omkopplare för internetfailover. Brandväggen skulle då annonsera en Default Route även om den inte själv har någon. Regular annonserar den endast när det finns en Default Route i routingtabellen.
2. Skapa Backbone Area
Klicka på Add i området Areas och ange följande värden:
- Area:
0.0.0.0 - Type:
Normal
Välj Authentication Type Text eller MD5 för Area. Om motparten stöder MD5 bör det föredras framför klartextalternativet. Tillhörande Key ID och nyckel anges senare på transitinterfacet. MD5 autentiserar OSPF-paketen, men krypterar inte den routinginformation som utbyts.
Spara därefter Area med Save.
3. Lägg till transitnätet
Klicka på Add i området Networks:
- IPv4/Netmask:
198.51.100.0/30 - Area:
0.0.0.0
På Firewall A matchar adressen 198.51.100.1 detta Network, och på Firewall B matchar 198.51.100.2. Därmed körs OSPF på respektive transitinterface och de två brandväggarna kan bilda en grannrelation.
Spara Network-posten med Save.
Det lokala LAN-nätet anges inte bara som ett förmodat fjärrmål. En ytterligare Network-post kan visserligen annonsera det utan en granne, men aktiverar samtidigt OSPF på motsvarande LAN-interface. Om inga OSPF-routrar ska finnas där avgränsar selektiv Redistribution annonseringen bättre.
4. Åsidosätt endast interfacevärden medvetet
Under Override interface configuration kan transitinterfacet väljas. Standardvärdena är lämpliga för många Ethernet-anslutningar:
- Hello interval: 10 sekunder
- Dead interval: 40 sekunder
- Retransmit interval: 5 sekunder
- Transmit delay: 1 sekund
- Interface cost:
Auto - Router priority: 1
Hello och Dead måste vara identiska på alla routrar i segmentet. Retransmit Interval och Transmit Delay anges lokalt. Cost och Router Priority får avsiktligt skilja sig åt: Cost avgör den föredragna datavägen, medan Priority påverkar valet av DR och BDR i broadcastnät. Priority 0 utesluter interfacet från detta val.
Vid samma Priority avgör Router ID, men ett pågående DR-val är inte preemptive. Ett manuellt angivet Cost är användbart om en väg ska föredras bland flera. Med Auto beräknar SFOS Cost utifrån global Reference Bandwidth och den konfigurerade interfacehastigheten. Om länkhastigheten ändras under Network > Interfaces använder OSPF inte det nya Auto-Cost-värdet förrän brandväggen har startats om.
Vid MD5-autentisering väljs Authentication Type MD5 i Area. Därefter anges samma Key ID mellan 0 och 255 och samma nyckel på transitinterfacet på båda sidor.
Spara ändrade interfacevärden med Save.
5. Annonsera endast nödvändiga LAN-nät
I exemplet måste Firewall A annonsera 10.10.10.0/24 och Firewall B 10.20.20.0/24. Det finns två fundamentalt olika sätt att göra detta:
- Ett OSPF Network aktiverar OSPF på motsvarande lokala interface. Det passar när andra OSPF-routrar ska bilda en grannrelation där.
- Redistribution importerar en route från en annan routingkälla till OSPF. Därmed kan ett direktanslutet LAN annonseras utan att det behövs en OSPF-grannrelation där.
I exemplet redistribueras de två LAN-näten selektivt, eftersom inga andra OSPF-routrar ska bilda en grannrelation på deras interface.
Alternativet Redistribute connected i WebAdmin importerar alla direktanslutna nät. På en produktionsbrandvägg kan detta även omfatta WAN-, management-, DMZ-, VPN- och andra VLAN-nät. Därför får kryssrutan inte aktiveras utan kontroll.
För selektiv annonsering kan en ACL med en Route Map användas i OSPF-CLI. Efter SSH-inloggningen går sökvägen via 3. Route Configuration > 1. Configure Unicast Routing > 2. Configure OSPF. Följande exempel på Firewall A tillåter endast det lokala LAN-nätet 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
På Firewall B används i stället 10.20.20.0/24 i access-list. ACL:n har implicit en avslutande Deny-regel. Connected Routes som inte uttryckligen tillåts redistribueras därför inte via denna Route Map.
Det globala WebAdmin-alternativet Redistribute connected förblir avaktiverat med detta tillvägagångssätt. Efter senare ändringar av den globala OSPF-konfigurationen måste show running-config kontrolleras igen, eftersom WebAdmin kan ta bort motstridiga avancerade CLI-inställningar.
Även Redistribute static kräver medveten filtrering. Det omfattar bland annat statiska Blackhole-routes som annars oavsiktligt kan vidarebefordras till angränsande routrar.
Kontrollera och verifiera OSPF
En grannrelation i sig bevisar ännu inte att önskat LAN går att nå. Verifieringen utförs därför från OSPF-lagret till det faktiska paketflödet.
- Under
Routing > Information > OSPF > Neighborsmåste motparten visas med sitt Router ID. Full visar att relevant Link-State-information har utbytts fullständigt. - Under Routes måste Firewall A se
10.20.20.0/24via198.51.100.2. Firewall B ska se10.10.10.0/24via198.51.100.1. - Under Interface kontrolleras Area, Router ID, Cost, Timer, Network Type och MTU.
- Under
Diagnostics > Tools > Route lookupkontrolleras ett konkret mål, exempelvis10.20.20.10på Firewall A. - Testa därefter en verklig anslutning mellan en värd i vardera LAN. Log Viewer och Packet Capture måste visa den förväntade brandväggsregeln, transitinterfacet och returtrafiken.
För de två sista stegen hjälper Testa en Sophos Firewall-regel med Log Viewer och Packet Capture.
För en ytterligare kontroll via SSH används CLI-sökvägen 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
Med dessa kommandon kan berörda interface, Link-State Database, Neighbor-status och de routes som OSPF har beräknat dokumenteras tillsammans.
I Advanced Shell ger OSPF- och kernelloggarna ytterligare sammanhang. Åtkomsten går via 5. Device Management > 3. Advanced Shell:
cd /log
tail -f ospfd.log
Den löpande utmatningen avslutas med Ctrl+C. Därefter kan den andra loggen kontrolleras:
tail -f zebra.log
ospfd.log visar OSPF-händelser. zebra.log hjälper till att kontrollera om en dynamiskt inlärd route har installerats i kärnan. Den som inte vill följa loggen i realtid kan exempelvis använda less /log/ospfd.log. Sophos Firewall-tjänster och loggfiler kopplar fler filer till ansvariga tjänster.
Avgränsa fel systematiskt
Ingen Neighbor visas
Kontrollera först den direkta nåbarheten mellan transit-IP-adresserna. Därefter måste transitinterfacet vara up, OSPF Network passa det lokala interface-IP-numret och Dynamic Routing vara aktiverat i rätt zon. Area, subnätmask, Authentication Type, Key ID, nyckel, Hello och Dead måste stämma överens på båda sidor. Duplicerade Router ID förhindrar också en korrekt anslutning.
Neighbor stannar i Init eller 2-Way
Init betyder att Hello-paket tas emot, men att kommunikationen ännu inte har bekräftats i båda riktningarna. Device Access, asymmetriska filter, interfacetilldelning och returväg är då de första kontrollpunkterna.
2-Way är normalt i ett broadcastnät mellan två routrar när ingen av dem är DR eller BDR. I exemplet med exakt två OSPF-routrar och Priority 1 blir deltagarna DR och BDR. Deras grannrelation bör därför nå Full. Om den stannar i 2-Way ska Router Priority, Network Type och motparten kontrolleras.
Neighbor stannar i ExStart, Exchange eller Loading
I dessa tillstånd har synkroniseringen av Link-State Database påbörjats, men slutförs inte. Vanliga orsaker är olika MTU-värden, Network Types som inte stämmer överens, duplicerade Router ID eller instabila anslutningar. Under Routing > Information > OSPF > Interface finns MTU, MTU Mismatch Detection, Network Type och Timer för jämförelse.
Neighbor är Full, men fjärr-LAN-nätet saknas
Grannrelationen fungerar då, men LAN-nätet annonseras inte eller tillåts inte av filtreringen. På den sändande brandväggen måste Connected Route, ACL, Route Map och redistribute connected route-map stämma överens med önskat prefix. show running-config visar den sparade OSPF-konfigurationen.
Om Redistribute connected i stället har aktiverats i WebAdmin ska inte bara det saknade LAN-nätet kontrolleras, utan hela listan över alla nät som därmed annonseras.
Rutten finns, men trafiken fungerar inte
OSPF har utfört sin uppgift när routen med rätt Next Hop finns. Därefter ligger felen oftast i brandväggsregeln, NAT, Route Precedence, returvägen eller målsystemet. I normalt routade platsnät behövs vanligtvis ingen SNAT, eftersom båda brandväggarna ska känna till LAN-näten via OSPF.
OSPF via route-based IPsec
OSPF kan också köras via ett XFRM-interface i en route-based Site-to-Site IPsec-tunnel. I en Any-to-Any- eller Dual-Stack-tunnel tilldelas XFRM-interfacen på båda sidor unika IP-adresser från samma transitnät. Med specifika Traffic Selectors är denna adressering inte möjlig.
För denna variant gäller dessutom:
Dynamic Routingtillåts underAdministration > Device accessför VPN-zonen.- XFRM-transitnätet anges som OSPF Network.
- Nyttotrafiken behöver lämpliga IPv4- respektive IPv6-brandväggsregler för VPN-zonen.
- Hello, Dead, Authentication och MTU måste stämma överens med motparten.
- Jämför visat OSPF Network Type på båda sidor. En avvikelse kan förhindra att grannrelationen bildas. Om den inte kan korrigeras i WebAdmin måste motparten anpassas eller Sophos Support kontaktas.
En grön IPsec-tunnel och en OSPF Neighbor i Full är separata kontrollpunkter. Först den inlärda routen och ett verkligt paketflöde bekräftar hela konfigurationen.
I ett HA-kluster kan OSPF konvergera på nytt efter en failover. Därför bör en planerad failover testas och det bör därefter kontrolleras på aktiv Node att Neighbor, routes samt ospfd.log och zebra.log åter visar förväntat tillstånd.
OSPFv3 för IPv6
Under Routing > OSPFv3 konfigureras IPv6-routing oberoende av OSPFv2. Router ID är fortfarande ett unikt värde i IPv4-notation.
Till skillnad från OSPFv2 anges inte först ett Network. Under Interfaces väljs ett IPv6-kompatibelt interface och tilldelas en Area. För en enkel konfiguration används även här Area 0.0.0.0. Hello och Dead måste stämma överens i segmentet. Cost, Retransmit, Transmit Delay och Router Priority anges efter den egna topologin. SFOS stöder för närvarande endast en OSPFv3-instans per interface med standard-Instance-ID 0.
Sophos Firewall stöder för närvarande inte Authentication för OSPFv3. Utbytet bör därför endast ske över betrodda eller redan skyddade länkar. En befintlig OSPFv2-konfiguration annonserar inga IPv6-nät, och IPv6-nyttotrafik behöver egna IPv6-brandväggsregler.
I WebAdmin kan direktanslutna IPv6-nät och BGP-IPv6-routes redistribueras för OSPFv3. Även här omfattar Redistribute connected alla direktanslutna IPv6-nät och bör därför inte aktiveras generellt.
Verifieringen sker under Routing > Information > OSPFv3. Vid fel ger ospf6d.log protokollspecifikt sammanhang.
Återställ ändringen säkert
Innan OSPF tas bort måste det finnas en alternativ väg eller ett planerat underhållsfönster för varje inlärt målnät. Ta först bort Redistribution av det lokala LAN-nätet, därefter transit-Network och avaktivera slutligen Dynamic Routing för zonen. Kontrollera sedan Route Lookup, routingtabellen och managementåtkomsten igen.
Om endast ett felaktigt Cost, Timer eller filter återställs bör bara denna enda inställning ändras. Då förblir det tydligt om OSPF-grannrelationen, routeannonseringen eller först nyttotrafiken påverkades.