Điểm:1

Tôi có cần chuyển từ iptables sang nftables không?

lá cờ ru

Tôi có các quy tắc iptables sau.

Chuyển tiếp các gói từ 1.2.3.4 và 5.6.7.8 (nguồn) đến cổng 10000 tới máy chủ socks5 bên ngoài vào ngày 10.10.10.10:1080. IP máy chủ là 50.50.50.50

Lược đồ này hoạt động tốt nếu lượng nguồn không cao và đồng thời lượng socks5 bên ngoài cũng không cao. Khi tôi có 50 nguồn và 30 nghìn vớ bên ngoài - iptables bị kẹt và không có gói nào chuyển tiếp nên tôi nghi ngờ có giới hạn về hiệu suất của iptables. Ai đó có thể cho tôi biết liệu nftables có mạnh hơn không và nếu có - làm cách nào để dịch các quy tắc của tôi sang nftables?

* tự nhiên
: CHẤP NHẬN TRƯỚC [1:40]
:CHẤP NHẬN ĐẦU VÀO [1:40]
:CHẤP NHẬN ĐẦU RA [0:0]
:POSTROUTING CHẤP NHẬN [0:0]

-A PREROUTING -s 1.2.3.4,5.6.7.8 -p tcp -m tcp --dport 10000 -j DNAT --to-destination 10.10.10.10:1080
-A POSTROUTING -d 10.10.10.10/32 -p tcp -m tcp --dport 1080 -j SNAT --to-source 50.50.50.50

LÀM

*lọc
:INPUT CHẤP NHẬN [15:1012]
:CHẤP NHẬN TRƯỚC [26:1348]
:CHẤP NHẬN ĐẦU RA [9:932]
LÀM
Điểm:1
lá cờ cl
A.B

Đây là một lời giải thích sơ bộ về những gì có thể đi sai.

  • Trước iptables quy tắc:

    Địa chỉ IP nguồn X (X=2 trong ví dụ bắt đầu của OP) với 2^16 cổng nguồn có thể và 1 địa chỉ đích và cổng:

    X * 2^16 kết nối có thể.

  • Sau iptables quy tắc: X nguồn bị nén thành một nguồn

    1 * 2^16 kết nối có thể.

Không thể tạo các kết nối X * 2^16 để chỉ khớp với 2^16 kết nối. Xung đột cổng nguồn sẽ bắt đầu xảy ra ngày càng thường xuyên hơn và được giải quyết bằng cách thay đổi cổng nguồn, nhưng việc tìm một cổng nguồn miễn phí không xung đột với luồng khác sẽ ngày càng khó hơn: suy giảm hiệu suất bắt đầu tăng lên, thậm chí có thể bắt đầu xảy ra tình trạng rớt gói.

Điều này sẽ xảy ra khác đi nếu iptables đã được thay thế bằng nftables? Không. Trong cả hai trường hợp, chúng không phải là bộ phận giải quyết va chạm. Độ phân giải này được thực hiện trong cùng một chương trình phụ trợ Netfilter phổ biến: các nf_nat mô-đun hạt nhân, có thể lặp lại nhiều lần nếu cần và thậm chí bỏ cuộc (ví dụ: bỏ cái mới theo dõi mục nhập và gói đã kích hoạt quá trình tạo dự kiến ​​của nó).

Nguyên nhân là NAT nguồn được thực hiện khi có một đích duy nhất có thể (máy chủ): nên tránh.

Cách giải quyết có thể:

  • không sử dụng nguồn NAT. Thay vào đó, nên thực hiện một định tuyến đầy đủ (ngay cả khi điều này yêu cầu nhiều đường dẫn hoặc đường hầm) để 10.10.10.10 không phải nhìn thấy một nguồn 50.50.50.50 duy nhất. Câu hỏi không giải thích lý do tại sao SNAT này là bắt buộc, vì vậy không thể nêu chi tiết hơn.

  • có nhiều địa chỉ nguồn để cân bằng tải và phân bổ áp suất cổng nguồn. Điều này có thể đạt được với iptables sử dụng thống kê mô-đun để cân bằng tải cho nhiều SNAT chỉ tiêu.

chuyển sang nftables thường là một cải tiến, nhưng trong trường hợp này, đây dường như không phải là giải pháp.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.