Sự khác biệt giữa SNAT và Superman


38

Tôi bối rối không biết sự khác biệt thực sự giữa SNAT và Superman là gì?

Nếu tôi muốn chia sẻ kết nối internet của mình trên mạng cục bộ thì tôi nên chọn SNAT hay masage?

Câu trả lời:


41

Các SNATmục tiêu đòi hỏi bạn phải cung cấp cho nó một địa chỉ IP để áp dụng cho tất cả các gói tin gửi đi. Các MASQUERADEmục tiêu cho phép bạn cung cấp cho nó một giao diện, và bất cứ địa chỉ trên giao diện đó là địa chỉ được áp dụng cho tất cả các gói tin gửi đi. Ngoài ra, với SNAT, theo dõi kết nối của kernel theo dõi tất cả các kết nối khi giao diện được gỡ xuống và đưa lên; điều tương tự không đúng với MASQUERADEmục tiêu

Các tài liệu tốt bao gồm các HOWTO trên trang Netfilteriptablestrang man .


2
Tôi đang gặp khó khăn trong việc hiểu lợi ích của SNAT. Tại sao nó không quan trọng nếu kernel theo dõi các kết nối hay không khi giao diện bị hỏng? Về MASQUERADE, các tài liệu của bộ lọc mạng cho biết "Nhưng quan trọng hơn, nếu liên kết bị hỏng, các kết nối (hiện đã bị mất) sẽ bị lãng quên, nghĩa là ít bị trục trặc hơn khi kết nối trở lại với địa chỉ IP mới." Nghe có vẻ hợp lý (mặc dù những trục trặc là gì?) Bây giờ nhìn vào SNAT, lợi ích của việc theo dõi các kết nối bị mất là gì? Tại sao không sử dụng MASQUERADE mỗi lần?
Carl G

1
@CarlG, tôi đoán các trục trặc sẽ xảy ra với theo dõi vĩnh viễn -j SNAT(trái ngược với theo dõi tái chế với -j MASQUERADE) khi một kết nối gửi đi mới từ một nút LAN sử dụng cùng một số cổng nguồn như kết nối đi bị cắt đứt từ cùng một nút LAN. Trong trường hợp đó, tôi có thể tưởng tượng các gói đến từ kết nối gửi đi cũ được gửi đến nút, gây nhầm lẫn ngăn xếp TCP của nó. Về lợi ích của -j SNAT, điều gì sẽ xảy ra nếu hộp NAT được cấu hình với cùng một địa chỉ IP bên ngoài và hạt nhân tiếp tục chuyển tiếp các gói từ các kết nối cũ thay vì trả lời RST?
lươn ghEEz 18/03/18

SNAT rất hữu ích, ví dụ, nếu bạn có nhiều địa chỉ IP được gán cho giao diện gửi đi và muốn nguồn NAT là một trong những địa chỉ cụ thể.
pgoetz

19

Về cơ bản SNATMASQUERADEthực hiện cùng một điều NAT nguồn trong bảng nat trong chuỗi POSTROUTING.

Sự khác biệt

  • MASQUERADEkhông yêu cầu --to-sourcevì nó được tạo ra để hoạt động với các IP được gán động

  • SNAT chỉ hoạt động với IP tĩnh, đó là lý do tại sao nó có --to-source

  • MASQUERADEcó thêm chi phí và chậm hơn SNATvì mỗi lần MASQUERADEmục tiêu bị tấn công bởi một gói, nó phải kiểm tra địa chỉ IP để sử dụng.

LƯU Ý : Trường hợp sử dụng điển hình cho MASQUERADE: Ví dụ AWS EC2 trong VPC, nó có IP riêng trong VPC CIDR (ví dụ: 10.10.1.0/24) - 10.10.1.100, ví dụ, nó cũng có IP công cộng để giao tiếp với Internet (giả sử nó nằm trong mạng con công cộng) thông qua IP riêng 1: 1 NAT. IP công cộng có thể thay đổi sau khi khởi động lại cá thể (nếu đó không phải là EIP), MASQUERADElà một lựa chọn tốt hơn trong trường hợp sử dụng này.

Quan trọng: Vẫn có thể sử dụng MASQUERADEmục tiêu với IP tĩnh, chỉ cần lưu ý thêm chi phí.

Tài liệu tham khảo

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.