udp 17 175 src=192.168.1.5 dst=195.22.79.2 sport=1025 dport=53 src=195.22.79.2 dst=192.168.1.5 sport=53 dport=1025 [ASSURED] use=1
能够看出来,[ASSURED]状态的记录和前面的没有多大差别,除了标记由[UNREPLIED]变成[ASSURED]。假如这个连接持续不了180秒,那就要被中断。180秒是短了点儿,但对大部分应用足够了。只要碰到这个连接的包穿过防火墙,超时值就会被重置为默认值,任何的状态都是这样的。
4.6. ICMP 连接
ICMP也是一种无状态协议,他只是用来控制而不是建立连接。ICMP包有很多类型,但只有四种类型有应答包,他们是回显请求和应答(Echo request and reply),时间戳请求和应答(Timestamp request and reply),信息请求和应答(Information request and reply),更有地址掩码请求和应答(Address mask request and reply),这些包有两种状态,NEW和ESTABLISHED 。时间戳请求和信息请求已废除不用了,回显请求还是常用的,比如ping命令就用的到,地址掩码请求不太常用,但是可能有时很有用并且值得使用。看看下面的图,就能够大致了解ICMP连接的NEW和ESTABLISHED状态了。
如图所示,主机向目标发送一个回显请求,防火墙就认为这个包处于NEW状态。目标回应一个回显应答,防火墙就认为包处于ESTABLISHED了。当回显请求被发送时,ip_conntrack里就有这样的记录了:
icmp 1 25 src=192.168.1.6 dst=192.168.1.10 type=8 code=0 id=33029 [UNREPLIED] src=192.168.1.10 dst=192.168.1.6 type=0 code=0 id=33029 use=1
能够看到,ICMP的记录和TCP、UDP的有点区别,协议名称、超时时间和源、目地址都相同,不同之处在于没有了端口,而新增了三个新的字段:type,code和id。字段type说明ICMP的类型。code说明ICMP的代码,这些代码在附录ICMP类型里有说明。id是ICMP包的ID。每个ICMP包被发送时都被分配一个ID,接受方把同样的ID 分配给应答包,这样发送方能认出是哪个请求的应答。
[UNREPLIED]的含义和前面相同,说明数的传输只发生在一个方向上,也就是说未收到应答。再往后,是应答包的源、目地址,更有相应的三个新字段,要注意的是type和code是随着应答包的不同而变化的,id和请求包的相同。
和前面相同,应答包被认为是ESTABLISHED的。然而,在应答包之后,这个ICMP 连接就不再有数据传输了。所以,一旦应答包穿过防火墙,ICMP的连接跟踪记录就被销毁了。
以上各种情况,请求被认为NEW,应答是ESTABLISHED。换句话说,就是当防火墙看到一个请求包时,就认为连接处于NEW状态,当有应答时,就是ESTABLISHED状态。
 | 注意,应答包必须符合一定的标准,连接才能被认作established的,每个传输类型都是这样。 |
ICMP的缺省超时是30秒,能够在/proc/sys/net/ipv4/netfilter/ip_ct_icmp_timeout中修改。这个值是比较合适的,适合于大多数情况。
ICMP的另一个很重要的作用是,告诉UDP、TCP连接或正在努力建立的连接发生了什么,这时ICMP应答被认为是RELATED的。主机不可达和网络不可达就是这样的例子。当试图连接某台机子不成功时(可能那台机子被关上了),数据包所到达的最后一台路由器就会返回以上的ICMP信息,他们就是RELATED的,如下图:
我们发送了一个SYN包到某一地址,防火墙认为他的状态是NEW。但是,目标网络有问题不可达,路由器就会返回网络不可达的信息,这是RELATED的。连接跟踪会认出这个错误信息是哪个连接的,连接会中断,同时相应的记录删除会被删除。
当UDP连接碰到问题时,同样会有相应的ICMP信息返回,当然他们的状态也是RELATED ,如下图:
我们发送一个UDP包,当然他是NEW的。但是,目标网络被一些防火墙或路由器所禁止。我们的防火墙就会收到网络被禁止的信息。防火墙知道他是和哪个已打开的UDP连接相关的,并且把这个信息(状态是RELATED)发给他,同时,把相应的记录删除。客户机收到网络被禁止的信息,连接将被中断。
4.7. 缺省的连接操作
有时,conntrack机制并不知道如何处理某个特别的协议,尤其是在他不了解这个协议或不知道协议如何工作时,比如,NETBLT,MUX更有EGP。这种情况下,conntrack使用缺省的操作。这种操作很象对UDP连接的操作,就是第一个包被认作
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!