En bugg i BIND 9.16 som bryter TCP-anslutningsbearbetningen

I en tråd postad för två veckor sedan BIND 9.16.0 allvarlig fel, vilket leder till att gränsen för antalet TCP-anslutningar är uttömd. BIND 9.16 introducerade ett nytt nätverksundersystem, bytte till en asynkron förfrågningsbehandlingsmekanism baserad på biblioteket libuv. På grund av ett fel i detta delsystem minskar inte räknaren för aktiva TCP-anslutningar under vissa förhållanden, vilket leder till en ökande diskrepans mellan dess värde och det faktiska antalet anslutningar. Efter en tid kan räknarvärdet nå den inställda gränsen för antalet klientanslutningar och nya förfrågningar via TCP kommer inte längre att accepteras (förfrågningar via UDP kommer att fortsätta att behandlas).

Problemet visar sig främst på servrar som accepterar TCP-anslutningar från klienter på flera nätverksgränssnitt samtidigt.
BIND 9.16-uppdateringen har ännu inte släppts, men har publicerats för att fixa felet plåster. Som en tillfällig lösning kan du sätta gränsen för antalet anslutningar (tcp-clients option) till ett mycket stort värde. Förutom BIND 9.16 påverkar problemet den experimentella 9.15-grenen, från och med release 9.15.6, men denna gren används initialt endast för utveckling och är inte avsedd för distribution på produktionsservrar.

Källa: opennet.ru

Lägg en kommentar