Load Balancer TCP opnieuw instellen en time-out voor inactief
U kunt deze Standard Load Balancer een voorspelbaarder toepassingsgedrag voor uw scenario's te maken door TCP opnieuw instellen bij inactief in te stellen voor een bepaalde regel. Load Balancer standaardgedrag is om stromen op de geruisloos te laten vallen wanneer de time-out voor inactiefheid van een stroom wordt bereikt. Als u deze functie inschakelen, Load Balancer tweerichtings-TCP-resets (TCP RST-pakket) verzenden bij time-out voor inactieve gegevens. Hierdoor worden de eindpunten van uw toepassing geïnformeerd dat er een time-out is voor de verbinding en dat deze niet meer kan worden gebruikt. Eindpunten kunnen indien nodig onmiddellijk een nieuwe verbinding tot stand brengen.

Opnieuw instellen van TCP
U wijzigt dit standaardgedrag en u kunt het verzenden van TCP-resets inschakelen bij time-outs voor inactieve nat-verkeer op inkomende NAT-regels, taakverdelingsregels en uitgaande regels. Wanneer deze functie per regel is ingeschakeld, Load Balancer verzenden ze bidirectionele TCP Reset (TCP RST-pakketten) naar zowel client- als server-eindpunten op het moment dat er een time-out voor inactief is voor alle overeenkomende stromen.
Eindpunten die TCP RST-pakketten ontvangen, sluiten de bijbehorende socket onmiddellijk. Dit biedt een onmiddellijke melding aan de eindpunten dat de release van de verbinding heeft plaatsgevonden en dat toekomstige communicatie op dezelfde TCP-verbinding mislukt. Toepassingen kunnen verbindingen opspaden wanneer de socket wordt gesloten en verbindingen naar behoefte opnieuw tot stand worden gebracht zonder te wachten tot er uiteindelijk een time-out is voor de TCP-verbinding.
In veel scenario's kan dit de noodzaak verminderen om TCP-keepalives (of toepassingslaag) te verzenden om de time-out voor inactief gebruik van een stroom te vernieuwen.
Als uw niet-actieve duur groter is dan is toegestaan door de configuratie of als uw toepassing ongewenst gedrag vertoont wanneer TCP-opnieuw instellen is ingeschakeld, moet u mogelijk nog steeds TCP-keepalives (of keepalives voor de toepassingslaag) gebruiken om de liveness van de TCP-verbindingen te bewaken. Bovendien kunnen keepalives ook nuttig blijven wanneer de verbinding ergens in het pad wordt geproxied, met name keepalives voor de toepassingslaag.
Bekijk het volledige end-to-end-scenario zorgvuldig om te bepalen of u profiteert van het inschakelen van TCP-resets, het aanpassen van de time-out voor inactief en of er mogelijk extra stappen nodig zijn om het gewenste gedrag van de toepassing te garanderen.
Configureerbare time-out voor TCP-inactiviteit
Azure Load Balancer heeft het volgende time-outbereik voor inactieve gegevens:
- 4 minuten tot 100 minuten voor regels voor uitgaand verkeer
- 4 minuten tot 30 minuten voor Load Balancer en inkomende NAT-regels
Deze is standaard ingesteld op 4 minuten. Als een periode van inactiviteit langer is dan de time-outwaarde, is er geen garantie dat de TCP- of HTTP-sessie wordt onderhouden tussen de client en uw cloudservice.
Wanneer de verbinding is gesloten, kan de clienttoepassing het volgende foutbericht ontvangen: 'De onderliggende verbinding is gesloten: Een verbinding die moest worden bewaard, is gesloten door de server.'
Een veelvoorkomende praktijk is het gebruik van een TCP-keep-alive. Met deze oefening blijft de verbinding langer actief. Zie deze .NET-voorbeelden voor meer informatie. Als keep-alive is ingeschakeld, worden pakketten verzonden tijdens perioden van inactiviteit op de verbinding. Keep-alive-pakketten zorgen ervoor dat de time-outwaarde voor inactief niet wordt bereikt en dat de verbinding gedurende een lange periode wordt onderhouden.
De instelling werkt alleen voor binnenkomende verbindingen. Om te voorkomen dat de verbinding verloren gaat, configureert u de TCP-keep-alive met een interval dat kleiner is dan de time-outinstelling voor inactief of verhoogt u de time-outwaarde voor inactief. Ter ondersteuning van deze scenario's is ondersteuning toegevoegd voor een configureerbare time-out voor inactieve apps.
TCP keep-alive werkt voor scenario's waarin de levensduur van de accu geen beperking is. Dit wordt niet aanbevolen voor mobiele toepassingen. Als u een TCP-keep-alive in een mobiele toepassing gebruikt, kan de accu van het apparaat sneller leeg zijn.
Beperkingen
- TCP opnieuw instellen wordt alleen verzonden tijdens de TCP-verbinding met de status ESTABLISHED.
- TCP-time-out voor inactieve gegevens heeft geen invloed op taakverdelingsregels in het UDP-protocol.
- TCP opnieuw instellen wordt niet ondersteund voor ILB HA-poorten wanneer een virtueel netwerkapparaat zich in het pad bevindt. Een tijdelijke oplossing kan zijn om een uitgaande regel te gebruiken met TCP opnieuw instellen vanuit NVA.
Volgende stappen
- Meer informatie over Standard Load Balancer.
- Meer informatie over uitgaande regels.
- TCP RST configureren bij time-out voor inactief