IPTABLES传输数据包的过程
大概过程如图所示:
1. 数据包进入网卡时,首先进入PREROUTING链,linux内核会判断数据包的目的IP是否为本地主机
2. 如果数据包的目的IP是本地主机,那么数据包会沿图向下移动,进入INPUT链中,数据包进入INPUT链中,本地主机的所有线程都会收到它,本地主机的进程也会产生数据包, 这些数据包会经过OUTPUT链,然后到达POSTROUTING链从网卡中出去。
3. 如果数据包的目的IP不是本地主机,则数据包是要转发出去,且linux内核允许转发,数据包就会如图所示向右移动,进入FORWARD链中,然后到达POSTROUTING链从网卡中 出去
从上可以得到,当LINUX充当路由器时,数据包走的路线是PREROUTING——FORWARD——POSTROUTING线路。