Chinaunix首页 | 论坛 | 博客
  • 博客访问: 6882381
  • 博文数量: 3857
  • 博客积分: 6409
  • 博客等级: 准将
  • 技术积分: 15948
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-02 16:48
个人简介

迷彩 潜伏 隐蔽 伪装

文章分类

全部博文(3857)

文章存档

2017年(5)

2016年(63)

2015年(927)

2014年(677)

2013年(807)

2012年(1241)

2011年(67)

2010年(7)

2009年(36)

2008年(28)

分类: LINUX

2014-06-09 14:22:47

1、Netfilter入口对conntrack的处理

根据上文分析,在Netfilter的入口,出来conntrack的函数是nf_conntrack_in()
nf_conntrack_in()处理流程如下:




另一个核心的函数是resolve_normal_ct(),该函数主要负责conntrack的建立和conntrack连接状态的更新,处理流程如下


conntrack的创建和初始化函数init_conntrack(),处理流程如下


以上三个函数是Netfilter入口对conntrack的处理流程。
文件路径net/netfilter/nf_conntrack_core.c

注:

Acct扩展功能是对conntrack的一个统计技术功能。

Ecache扩展功能是对conntrack的一个事件通知功能,类似于内核的通知链机制。

 

2、Netfilter出口对conntack的处理

现在我们来看一下Netfilter的出口对conntrack的处理流程,出口调用的是ipv4_confirm(),该函数是IPv4 Netfilter的出口处理函数,在入口时conntrack已经被创建并初始化好了,出口时先执行以下conntrack下的helper扩展处理。然后调用conntrack的通
用的确认函数nf_conntrack_confirm()。




conntrack通用的确认函数nf_conntrack_confirm(),如果conntrack在入口时是新建立的,这里需要对conntrack进行确认操作,如果conntrack已经是确认过的状态,这里就不需要再进行确认操作了,直接返回。





阅读(276) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~