Genopkoblingsstorm i filialen: strongSwan-adgangsgrænser
Et helt kontor bag én NAT kan overskride strongSwans grænser for halvåbne IKE. Tæl adgangstilstand adskilt fra etablerede sessioner, før du hæver en værdi.
Se en filial vende tilbage efter et linkfejl, og gatewayen ser noget, der aldrig optræder på en normal dag: snesevis af bærbare computere ankommer fra én offentlig adresse på én gang. Hver enkelt er en legitim enhed, og hver enkelt starter en IKE-udveksling, der endnu ikke er afsluttet. Om den byge lykkes, afhænger af grænser, der intet har at gøre med, hvor mange medarbejdere serveren kan bære. Bygen er kort, og det er netop den arbejdsbyrde, adgangsvejen blev bygget til at overleve.
Følg én bærbar computer tilbage på netværket
Klienten sender en indledende anmodning og venter, og indtil udvekslingen er fuldført, holder gatewayen adgangstilstand for det forsøg. Andre enheder bag samme adresse ankommer, mens den første stadig venter, og de stiller i kø bag en grænse, der tæller adresser frem for brugere. Udefra er symptomet en håndfuld brugere, der forbinder, og en større gruppe, der får timeout.
Intet i den sekvens er en fejl. Det er adgangsvejen, der gør, hvad den blev konfigureret til.
Tæl halvåbent arbejde som en egen ressource
strongSwan adskiller to populationer: associationer, der er fuldt etablerede, og forsøg, der stadig forbinder eller venter på at blive behandlet. Blokeringsgrænsen gælder for halvåbne associationer henført til én peer-adresse, og cookie-grænserne gælder globalt og pr. adresse. De tællere beskytter daemonen mod at blive brugt op af uautentificeret arbejde, hvilket netop er formen på en genopkoblingsstorm. Intet af den tilstand optræder i en liste over etablerede tunneler.
At læse dem som et loft over medarbejdersessioner er den fejl, der fører til at hæve alt på én gang. En server, der bærer fire hundrede etablerede tunneler, er ikke automatisk i stand til at absorbere fire hundrede samtidige første pakker, fordi de to omkostninger lander forskellige steder.
Autentificeringsforsinkelse afgør, hvor længe hvert forsøg bliver i antallet af halvåbne. Et backend, der svarer langsomt, gør en kort byge til en lang kø, selv når ankomsthastigheden er beskeden.
swanctl --stats
swanctl --list-sas | grep -c ESTABLISHED
Læs adgangsindstillingerne, før du ændrer dem
Find de værdier, den kørende daemon faktisk har indlæst, før du danner dig en mening om dem. Konfiguration er ofte delt mellem en hovedfil og en mappe med uddrag pr. plugin, så en værdi, du sætter ét sted, kan blive tilsidesat et andet. Søgningen nedenfor viser hver fil, der nævner indstillingerne.
Beslut derefter, hvilket tal der er for lille. Hvis én adresse legitimt repræsenterer et helt kontor, er blokeringsgrænsen pr. adresse den værdi, der skal rumme den koncentration. En global cookie-grænse beskytter daemonen mod en bredere flod og bør ikke lempes, fordi ét sted genopkobler. Sammenlign den værdi pr. adresse med det største sted, du faktisk har.
Hold cookie-mekanismen aktiveret. Cookies får en klient til at bevise, at den kan modtage på sin påståede adresse, før daemonen bruger rigtigt arbejde på udvekslingen, og at deaktivere dem er ikke en neutral kapacitetsopgradering. Hæv kun en grænse med en målt ankomsthastighed og et erklæret autentificeringsbudget bag den.
grep -rn -E 'block_threshold|cookie_threshold' /etc/strongswan.conf /etc/strongswan.d/
swanctl --stats | grep -i half
Planlæg for tilbagekomsten, ikke kun den stabile tilstand
Et tilgængelighedsmål, der kun tæller etablerede sessioner, beskriver en stille eftermiddag, ikke en genopretning. Spørg i stedet, hvordan den tilsigtede population vender tilbage efter en delt netværkshændelse, og om adgangsvejen kan absorbere den form.
At sprede genopkoblingen over en administreret flåde er ofte billigere end at forstørre grænser, fordi det fjerner den kunstige byge i stedet for at betale for den permanent. Overvåg halvåben tilstand og adgangshændelser ved siden af vellykkede etableringer, og behandl et stigende antal halvåbne med flade succeser som en tidlig advarsel snarere end en kuriositet.
Leverandørens reference for disse indstillinger er strongswan.conf-dokumentationen, som navngiver tællerne og den udgivelse, der indførte cookie-grænsen pr. adresse. Læs afsnittet for din installerede version frem for den nyeste side, fordi standardværdier flytter sig mellem udgivelser.