Herverbindingsstorm in de vestiging: strongSwan-toelatingslimieten
Een heel kantoor achter één NAT kan de grenzen voor halfopen IKE in strongSwan overschrijden. Tel de toelatingsstatus apart van gevestigde sessies voordat u een waarde verhoogt.
Kijk hoe een vestiging terugkomt na een verbindingsstoring en de gateway ziet iets dat op een normale dag nooit verschijnt: tientallen laptops komen tegelijk van één openbaar adres. Elk is een legitiem apparaat en elk begint een IKE-uitwisseling die nog niet is voltooid. Of die uitbarsting slaagt, hangt af van limieten die niets te maken hebben met hoeveel werknemers de server kan dragen. De uitbarsting is kort, en het is precies de werkbelasting waarvoor het toelatingspad is gebouwd.
Volg één laptop terug het netwerk in
De client stuurt een eerste verzoek en wacht, en tot de uitwisseling is voltooid houdt de gateway de toelatingsstatus voor die poging vast. Andere apparaten achter hetzelfde adres komen aan terwijl de eerste nog wacht, en ze staan in de rij achter een limiet die adressen telt in plaats van gebruikers. Van buiten is het symptoom een handvol gebruikers die verbinden en een grotere groep die een time-out krijgt.
Niets in die reeks is een fout. Het toelatingspad doet wat het is geconfigureerd om te doen.
Tel halfopen werk als een eigen resource
strongSwan scheidt twee populaties: associaties die volledig zijn gevestigd, en pogingen die nog verbinden of op verwerking wachten. De blokkeringsdrempel geldt voor halfopen associaties die aan één peeradres worden toegewezen, en de cookiedrempels gelden wereldwijd en per adres. Die tellers beschermen de daemon tegen verbruik door niet-geauthenticeerd werk, wat precies de vorm van een herverbindingsstorm is. Niets van die toestand verschijnt in een lijst met gevestigde tunnels.
Ze lezen als een plafond voor werknemerssessies is de fout die leidt tot alles tegelijk verhogen. Een server die vierhonderd gevestigde tunnels draagt, kan niet automatisch vierhonderd gelijktijdige eerste pakketten absorberen, omdat de twee kosten op verschillende plaatsen neerslaan.
De authenticatielatentie bepaalt hoe lang elke poging in de telling van halfopen blijft. Een backend die langzaam antwoordt, verandert een korte uitbarsting in een lange wachtrij, zelfs wanneer de aankomstsnelheid bescheiden is.
swanctl --stats
swanctl --list-sas | grep -c ESTABLISHED
Lees de toelatingsinstellingen voordat u ze wijzigt
Zoek de waarden die de draaiende daemon werkelijk heeft geladen voordat u er een mening over vormt. Configuratie is vaak verdeeld over een hoofdmap en een map met fragmenten per plugin, dus een waarde die u op één plek instelt, kan elders worden overschreven. De zoekopdracht hieronder toont elk bestand dat deze instellingen noemt.
Bepaal dan welk getal te klein is. Als één adres legitiem een heel kantoor vertegenwoordigt, is de blokkeringsdrempel per adres de waarde die die concentratie moet opvangen. Een wereldwijde cookiedrempel beschermt de daemon tegen een bredere vloed en mag niet worden versoepeld omdat één locatie opnieuw verbindt. Vergelijk die waarde per adres met de grootste locatie die u werkelijk hebt.
Laat het cookiemechanisme ingeschakeld. Cookies dwingen een client te bewijzen dat hij kan ontvangen op het adres dat hij beweert, voordat de daemon echt werk aan de uitwisseling besteedt, en ze uitschakelen is geen neutrale capaciteitsupgrade. Verhoog een drempel alleen met een gemeten aankomstsnelheid en een verklaard authenticatiebudget erachter.
grep -rn -E 'block_threshold|cookie_threshold' /etc/strongswan.conf /etc/strongswan.d/
swanctl --stats | grep -i half
Plan voor de terugkeer, niet alleen voor de stabiele toestand
Een beschikbaarheidsdoel dat alleen gevestigde sessies telt, beschrijft een rustige middag, geen herstel. Vraag in plaats daarvan hoe de beoogde populatie terugkeert na een gedeelde netwerkgebeurtenis, en of het toelatingspad die vorm kan absorberen.
Herverbinding spreiden over een beheerde vloot is vaak goedkoper dan limieten vergroten, omdat het de kunstmatige uitbarsting wegneemt in plaats van er permanent voor te betalen. Monitor de halfopen toestand en toelatingsgebeurtenissen naast geslaagde vestigingen, en behandel een stijgende halfopen telling met vlakke successen als een vroege waarschuwing in plaats van een curiositeit.
De leveranciersreferentie voor deze instellingen is de documentatie van strongswan.conf, die de tellers noemt en de release die de cookiedrempel per adres heeft geïntroduceerd. Lees de sectie voor uw geïnstalleerde versie in plaats van de nieuwste pagina, omdat standaardwaarden tussen releases verschuiven.