iptable指南之(3)表和链

发表于:2007-07-04来源:作者:点击数: 标签:
3. 表和链 3.1. 概述 3.2. mangle 表 3.3. nat 表 3.4. Filter 表 Chapter 3. 表和链 这一章我们来讨论数据包是以什么顺序、如何穿越不同的链和表的。稍后,在你自己写规则时,就会知道这个顺序是多么的重要。一些组件是iptables与内核共用的,比如,数据包

3. 表和链
3.1. 概述
3.2. mangle 表
3.3. nat 表
3.4. Filter 表


Chapter 3. 表和链

这一章我们来讨论数据包是以什么顺序、如何穿越不同的链和表的。稍后,在你自己写规则时,就会知道这个顺序是多么的重要。一些组件是iptables与内核共用的,比如,数据包路由的判断。了解到这一点是很重要的,尤其在你用iptables改变数据包的路由时。这会帮助你弄明白数据包是如何以及为什么被那样路由,一个好的例子是DNATSNAT,不要忘了TOS的作用。


3.1. 概述

当数据包到达防火墙时,如果MAC地址符合,就会由内核里相应的驱动程序接收,然后会经过一系列操作,从而决定是发送给本地的程序,还是转发给其他机子,还是其他的什么。

我们先来看一个以本地为目的的数据包,它要经过以下步骤才能到达要接收它的程序:

下文中有个词mangle,我实在没想到什么合适的词来表达这个意思,只因为我的英语太差!我只能把我理解的写出来。这个词表达的意思是,会对数据包的一些传输特性进行修改,在mangle表中允许的操作是 TOS、TTL、MARK。也就是说,今后只要我们见到这个词能理解它的作用就行了。

Table 3-1. 以本地为目标(就是我们自己的机子了)的包

Step(步骤)Table(表)Chain(链)Comment(注释)
1在线路上传输(比如,Inte.net)
2进入接口 (比如, eth0)
3manglePREROUTING这个链用来mangle数据包,比如改变TOS等
4natPREROUTING这个链主要用来做DNAT。不要在这个链做过虑操作,因为某些情况下包会溜过去。
5路由判断,比如,包是发往本地的,还是要转发的。
6mangleINPUT在路由之后,被送往本地程序之前,mangle数据包。
7filterINPUT所有以本地为目的的包都要经过这个链,不管它们从哪儿来,对这些包的过滤条件就设在这里。
8到达本地程序了(比如,服务程序或客户程序)

原文转自:http://www.ltesting.net