iptables 在内核的包处理路径中,定义了 5个 “hook points” :
- PREROUTING
- INPUT
- FORWARD
- POSTROUTING
- OUTPUT
filter 只能发生
- INPUT
- OUTPUT
- FORWARD
nat 只能发生在
- PREROUTING
- POSTROUTING
- OUTPUT
INPUT 和 FORWARD 的区别:
网络数据包来到设备以后,经过PREROUTING 之后,如果目的地址是本机的,经过INPUT给到 相关进程,如果目的地址不是本机的,会经过FORWARD 链条。
REF: Linux Network Administrator’s Guide, Third Edition