mirror of
https://github.com/coredns/coredns.git
synced 2025-12-20 09:05:14 -05:00
Merge commit from fork
Add configurable resource limits to prevent potential DoS vectors via connection/stream exhaustion on gRPC, HTTPS, and HTTPS/3 servers. New configuration plugins: - grpc_server: configure max_streams, max_connections - https: configure max_connections - https3: configure max_streams Changes: - Use netutil.LimitListener for connection limiting - Use gRPC MaxConcurrentStreams and message size limits - Add QUIC MaxIncomingStreams for HTTPS/3 stream limiting - Set secure defaults: 256 max streams, 200 max connections - Setting any limit to 0 means unbounded/fallback to previous impl Defaults are applied automatically when plugins are omitted from config. Includes tests and integration tests. Signed-off-by: Ville Vesilehto <ville@vesilehto.fi>
This commit is contained in:
@@ -66,6 +66,22 @@ type Config struct {
|
||||
// This is nil if not specified, allowing for a default to be used.
|
||||
MaxQUICWorkerPoolSize *int
|
||||
|
||||
// MaxGRPCStreams defines the maximum number of concurrent streams per gRPC connection.
|
||||
// This is nil if not specified, allowing for a default to be used.
|
||||
MaxGRPCStreams *int
|
||||
|
||||
// MaxGRPCConnections defines the maximum number of concurrent gRPC connections.
|
||||
// This is nil if not specified, allowing for a default to be used.
|
||||
MaxGRPCConnections *int
|
||||
|
||||
// MaxHTTPSConnections defines the maximum number of concurrent HTTPS connections.
|
||||
// This is nil if not specified, allowing for a default to be used.
|
||||
MaxHTTPSConnections *int
|
||||
|
||||
// MaxHTTPS3Streams defines the maximum number of concurrent QUIC streams for HTTPS3.
|
||||
// This is nil if not specified, allowing for a default to be used.
|
||||
MaxHTTPS3Streams *int
|
||||
|
||||
// Timeouts for TCP, TLS and HTTPS servers.
|
||||
ReadTimeout time.Duration
|
||||
WriteTimeout time.Duration
|
||||
|
||||
Reference in New Issue
Block a user