Tùy chọn Connection Guard
Trên trang này
Không gian tên: Nalix.Network.Options
Assembly: Nalix.Network
ConnectionGuardOptions (public sealed partial class ConnectionGuardOptions : ConfigurationLoader, IValidatableConfiguration) cấu hình sức chứa kết nối toàn cục, thời gian cấm cơ bản, cơ chế leo thang cấm lũy tiến, ẩn log khi bị tấn công DDoS, ngắt kết nối khi một kết nối vượt ngưỡng lỗi (SEC-54), và giới hạn tốc độ gói UDP theo từng endpoint (SEC-55).
Ánh xạ mã nguồn
src/Nalix.Network/Options/ConnectionGuardOptions.cssrc/Nalix.Network/RateLimiting/Connection.Guard.cssrc/Nalix.Network/RateLimiting/Connection.Guard.Slot.cssrc/Nalix.Network/RateLimiting/Datagram.Guard.cssrc/Nalix.Network/Connections/Connection.cssrc/Nalix.Network/Internal/Initialization/NetworkPoolInitializer.cs
Giá trị mặc định và kiểm tra hợp lệ
Được nạp từ mục [ConnectionGuard] của default.ini:
| Thuộc tính | Kiểu | Mặc định | Kiểm tra hợp lệ | Thành phần lúc chạy sử dụng |
|---|---|---|---|---|
MaxConnections | int | 2_000 (2000) | [ValueRange(1, int.MaxValue)] | Trần số kết nối đồng thời toàn cục trong ConnectionGuard, và dung lượng pool cơ sở trong NetworkPoolInitializer. |
BanDuration | TimeSpan | 00:05:00 (5m) | [DurationRange("00:00:01", "1.00:00:00")] | Thời gian cấm tĩnh, dùng khi EnableProgressiveBanning là false. |
DDoSLogSuppressWindow | TimeSpan | 00:00:20 (20s) | [DurationRange("00:00:01", "01:00:00")] | Cửa sổ ẩn log theo từng endpoint đối với log chẩn đoán từ chối/DDoS đã được giới hạn tần suất (ThrottledEventGate). |
MaxErrorThreshold | int | 50 | [ValueRange(1, int.MaxValue)] | Giới hạn lỗi tích lũy trên mỗi kết nối (Connection.IncrementErrorCount()); khi đạt ngưỡng này, client bị ngắt ngay lập tức (SEC-54). |
MaxPacketPerSecond | int | 128 | [ValueRange(1, 10_000_000)] | Ngân sách số gói mỗi giây theo từng IP do DatagramGuard áp dụng trên listener UDP (SEC-55). |
EnableProgressiveBanning | bool | true | — | Bật leo thang cấm lũy tiến (1m $\rightarrow$ 5m $\rightarrow$ 15m $\rightarrow$ 1h $\rightarrow$ 6h $\rightarrow$ 24h) khi vi phạm cửa sổ tốc độ lặp lại. |
Validate() thực thi this.ValidateDataAnnotations() và ném ValidationException khi vi phạm ràng buộc.
Lịch leo thang cấm lũy tiến
Khi một IP vượt quá ConnectionQuotaOptions.MaxConnectionsPerWindow trong ConnectionRateWindow:
- Nếu
EnableProgressiveBanninglàtrue,ConnectionGuardtăng số lần cấm của endpoint (sau khi áp dụng mọi suy giảm từConnectionBanStoreOptions.BanCountDecayWindow) và chọn thời gian cấm:- Vi phạm lần 1:
1phút - Vi phạm lần 2:
5phút - Vi phạm lần 3:
15phút - Vi phạm lần 4:
1giờ - Vi phạm lần 5:
6giờ - Vi phạm lần 6 trở lên:
24giờ
- Vi phạm lần 1:
- Nếu
EnableProgressiveBanninglàfalse,BanDuration(mặc định5phút) được dùng cho mọi lần vi phạm.