Jag fick till slut behandla brandväggen som en egen produktdel.
När antalet interna tjänster ökade blev det farligt att bara öppna portar tills något fungerade. Jag ville ha en enda publik ingång, tydliga värdnamn och så få direkt exponerade backendtjänster som möjligt.
Relay 7 Firewall blev därför ett eget driftlager. Relay 7 Gateway terminerar publika anslutningar och skickar dem vidare. Kontrollcenter, rösttjänst och interna analyskomponenter kan ligga privat.
Jag testade DNS-ändringar, underdomäner och certifikatflöden flera gånger. Ett konkret problem var en ny spelaradress som först gav olika svar beroende på resolver och därefter ett internt TLS-fel genom gatewayn. Jag kunde då prova kedjan lokalt med rätt host-header och lösa problemet utan att röra själva radion.
Det var ännu en gång samma princip: isolera lagret som är fel. Om HTTPS för spelaren är trasigt betyder det inte att streamen är trasig.
DNS och TLS gav en ny sorts väntetid
En kodändring syns direkt när processen startas om. DNS gör inte alltid det. Jag kunde få olika svar från olika resolvers under samma minut. Det gjorde att jag ibland trodde att en gatewayfix inte fungerat när jag egentligen tittade på gammal resolution.
Jag började därför skilja på konfigurationsfel och propagationsfördröjning och testa explicit mot den server jag faktiskt ville nå. Det sparar mycket frustration vid nya underdomäner.
Brandväggsreglerna blev en del av deployrutinen
När en ny tjänst skapas frågar jag numera direkt om den verkligen behöver vara nåbar utifrån. Ofta är svaret nej. Analyzer, Memory och Westin-AI behöver inte ligga publikt bara för att Web och Gateway använder dem.
Det minskar attackytan och gör arkitekturen renare. Om jag ser en extern anslutning direkt mot en intern tjänst vet jag att något kringgår tänkt väg.
Jag började även skilja tydligare på namnupplösning, certifikat och backendrouting. Alla tre kan ge symptom som ser ut som “sidan fungerar inte”, men de är helt olika felsökningsdomäner.