rel="File-List" href="file:///C:%5CDOCUME%7E1%5Cbill%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml">
NAT表
NAT表:(network address translation 网络地址翻译)负责数据包的地址转换。对数据包的源ip地址、目的ip地址、源端口、目的端口进行改写的操作。
NAT表包含PREROUTING ,OUTPUT,POSTROUTING链,各自负责的工作如下:
1、PREROUTING:可以在这里定义进行目的NAT的规则,因为路由器进行路由时只检查数据包的目的ip地址,所以为了使数据包得以正确路由,我们必须在路由之前就进行目的NAT;
2、POSTROUTING:可以在这里定义进行源NAT的规则,系统在决定了数据包的路由以后在执行该链中的规则。
3、OUTPUT:定义对本地产生的数据包的目的NAT规则。
Filter表
Filter表:主要用于包过滤。对数据包基于ip、mac、port进行过滤,有accept 、drop、 reject三个动作。
Filter表包含INPUT,FORWARD,OUTPUT链,各自负责的工作如下:
根据规则所处理的信息包的类型,可以将规则分组在链中。
1、处理入站信息包的规则被添加到 INPUT 链中。
2、处理正在转发的信息包的规则被添加到 FORWARD 链中。
3、处理出站信息包的规则被添加到 OUTPUT 链中。
Mangle表
Mangle表:主要用于对指定包的内容进行修改,因为某些特殊应用可能需要去改写数据包的一些传输特性,比如 TTL,TOS或MARK。 注意MARK(特征比对)并没有真正地改动数据包,它只是在内核空间为包设了一个标记。防火墙内的其他的规则或程序(如tc)可以使用这种标记对包进行过滤或高级路 由。
Filter表有五个内建的链:PREROUTING,POSTROUTING, OUTPUT,INPUT和 FORWARD各自负责的工作如下:
PREROUTING在包进入防火墙之后、路由判断之前改变包,POSTROUTING是在所有路由判断之后。 OUTPUT在确定包的目的之前更改数据包。INPUT在包被路由到本地之后,但在用户空间的程序看到它之前改变包。注意,mangle表不能做任何 NAT,它只是改变数据包的TTL,TOS或MARK,而不是其源目的地址。NAT是在nat表中操作的,以下是mangle表中仅有的几种操作:
1、TOS
2、TTL
3、MARK
TOS操作用来设置或改变数据包的服务类型域。这常用来设置网络上的数据包如何被路由等策略。注意这个操作并不完善,有时得不所愿。它在Internet上还不能使用,而且很多路由器不会注意到这个域值。换句话说,不要设置发往Internet的包,除非你打算依靠TOS来路由,比如用iproute2。
TTL操作用来改变数据包的生存时间域,我们可以让所有数据包只有一个特殊的TTL。它的存在有一个很好的理由,那就是我们可以欺骗一些ISP。为什么要欺骗他们呢?因为他们不愿意让我们共享 一个连接。
那些ISP会查找一台单独的计算机是否使用不同的TTL,并且以此作为判断连接是否被共享的标志。
MARK用来给包设置特殊的标记。iproute2能识别这些标记,并根据不同的标记(或没有标记) 决定不同的路由。用这些标记我们可以做带宽限制和基于请求的分类。