有次序的规则形成链 chain, 链的集合形成表 table.

默认的iptables表名叫"filter(过滤器)",包含3个默认链。

对于每个包来说,内核都会选择三个链中适合的一个进行处理: . FORWARD链规则, 用于从一个网络接口输入,再转发到另一个网络接口输出的包; . INPUT链规则, 用于以本机为目的地的包; . OUTPUT链规则, 用于从本地主机发出的包;

除了filter表之外,iptables还包含"NAT"和"mangle"表。 . mangle表包含了链可以修改或者改变在NAT和包过滤之外的网络包的内容。 虽然mangle表对于做包的特殊处理很方便,比如重新设定IP包的ttl值,但是在大多数工作环境中一般不会用到它。

** 三个规则表的功能如下:** nat:此规则表拥有PREROUTING 和POSTROUTING 两个规则链, 主要功能为进行一对一、一对多、多对多等网址转换工作(SNAT、DNAT), 这个规则表除了作网址转换外,请不要做其它用途。 mangle:此规则表拥有PREROUTING、FORWARD 和POSTROUTING 三个规则链。 除了进行网址转换工作会改写封包外,在某些特殊应用可能也必须去改写封包(TTL、TOS) 或者是设定MARK(将封包作记号,以进行后续的过滤),这时就必须将这些工作定义在mangle 规则表中; 由于使用率不高,我们不打算在这里讨论mangle 的用法。 filter: 这个规则表是默认规则表,拥有INPUT、FORWARD 和OUTPUT 三个规则链, 这个规则表顾名思义是用来进行封包过滤的处理动作(例如:DROP、LOG、ACCEPT 或REJECT), 我们会将基本规则都建立在此规则表中。

参考: http://blog.chinaunix.net/uid-26000296-id-4111127.html