INPUTvà OUTPUTchuỗi được truyền qua cho các gói được gửi đến và gửi từ các ứng dụng chạy trên máy cục bộ.
Nếu một ứng dụng gửi một gói, nó đi qua
app -> OUTPUT -> POSTROUTING -> interface
Ngược lại, một gói được gửi đến một ứng dụng đi qua
interface -> PREROUTING -> INPUT -> app
Trong khi một gói chuyển tiếp đi qua
interface -> PREROUTING -> FORWARD -> POSTROUTING -> interface
Lưu ý rằng đó MASQUERADEchỉ là một trường hợp đặc biệt SNAT, trong đó địa chỉ nguồn được lấy từ giao diện.
Cũng xem hình ảnh này hoặc nhiều người tương tự bạn có thể tìm thấy trong iptableshướng dẫn.
Chỉnh sửa
Nếu bạn muốn làm DNATcho các gói được gửi từ một ứng dụng, bạn phải sử dụng OUTPUT, bởi vì DNATchỉ hoạt động trong PREROUTINGvà các gói đi từ một ứng dụng không bao giờ đi qua PREROUTING.
Tương tự như vậy cho SNAT, INPUTvà POSTROUTINGtrong trường hợp của các ứng dụng gửi đến một ứng dụng, mặc dù tôi không chắc chắn về tình trạng hiện tại của SNATtrong INPUT, nó có thể bị phá vỡ và không thực sự làm việc.
Vì hầu hết việc giả mạo xảy ra trong các gói chuyển tiếp bộ định tuyến, bạn không thấy các loại ứng dụng này thường xuyên.