Ros处理规则的顺序 , MANGLE的一些解释记录

先执行prerouting链里的规则,然后是input链,接着forward,之后就是output,最后的是postrouting;

并且这个5个链并非是在同一个时间里处理,而是在不同的时机里处理这些链

prerouting:数据包进入ROS时处理,从Lan口或Wan口进入ROS都会执行prerouting链

input:数据包的目标地址为ROS本身时执行(发往ROS本身的数据包)

forward:数据包的目标地址不是ROS(通过ROS转发)时执行

output:数据包的源地址为ROS本身时执行(ROS本身发出的数据包)

postrouing:数据包离开ROS时执行(从Lan口或Wan口离开时都会执行)

1、通过ROS转发的包会在之前所描棕的时机里经过prerouting、forward、postrouting链

2、目标为ROS本身的包会经过prerouting、input链

3、ROS本身发起的包会经过output、postrouting链

每条链里的规则是按顺序执行,但很多action会打断规则的执行,比如碰到
action=accept 执行到这个动作就接受这个包,并且中断处理
action=return 执行到这个规则就跳回到之前的jump规则的下一个规则继续执行
action=passthrough 最好理解,继续执行下一个规则
passthrough=yes 除了执行action的动作之外,继续执行下一个规则
passthrough=no 只执行到这个规则