linux设置连接跟踪老化时间,Linux 连线跟踪流程整理(linux-2.6.31)

本文详细介绍了Linux内核2.6.31中的连线跟踪流程,包括主要的数据结构如net、nf_conntrack_tuple等,并展示了从初始化到ipv4_conntrack_in和ipv4_confirm的处理过程。通过这些流程,解释了如何创建、确认新的网络连接并进行追踪。
摘要由CSDN通过智能技术生成

author: jonathan

本文档的CopyRight归jonathan所有,可自由转载,转载时请保持文档的完整性。

Linux 连线跟踪流程整理(linux-2.6.31)

0 主要数据结构

0.1

/

*linux内核中抽象出一个net结构,代表了网络协议.其内部是协议族相关的数据结构.对于PF_INET来说,这里重点就是连线跟踪表

*/

struct net {

atomic_t

count;

...

#ifdef CONFIG_NETFILTER

struct netns_xt

xt; #if defined(CONFIG_NF_CONNTRACK) ||

defined(CONFIG_NF_CONNTRACK_MODULE)

struct netns_ct   ct;

#endif

#endif

#ifdef CONFIG_XFRM

struct netns_xfrm xfrm;

#endif

struct net_generic *gen;

};

struct netns_ct {

atomic_t   count;

unsigned int

expect_count;

struct hlist_nulls_head *hash;

struct hlist_head *expect_hash;

struct hlist_nulls_head unconfirmed;

struct hlist_nulls_head dying;

struct ip_conntrack_stat *stat;

....

int

hash_vmalloc;

int

expect_vmalloc;

};

struct hlist_nulls_node {

struct hlist_nulls_node *next, **pprev;

};

#define INIT_HLIST_NULLS_HEAD(ptr, nulls) \

((ptr)->first = (struct hlist_nulls_node *) (1UL |

(((long)nulls) << 1)))

static struct pernet_operations nf_conntrack_net_ops = {

.init = nf_conntrack_net_init,

.exit = nf_conntrack_net_exit,

};

static int __init nf_conntrack_standalone_init(void)

{

return

register_pernet_subsys(&nf_conntrack_net_ops);

}

0.2

struct nf_conntrack_tuple

{

struct nf_conntrack_man src;

struct {

union nf_inet_addr u3;

u_int8_t protonum;

u_int8_t dir;

} dst;

};

struct nf_conntrack_tuple {

struct nf_conntrack_man src;

struct {

union nf_inet_addr u3;

union {

__be16 all;

struct {

__be16 port;

} tcp;

struct {

__be16 port;

} udp;

struct {

u_int8_t type, code;

} icmp;

struct {

__be16 port;

} dccp;

struct {

__be16 port;

} sctp;

struct {

__be16 key;

} gre;

} u;

u_int8_t protonum;

u_i

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值