首页 存档 技术 查看内容

Linux网络子系统安全性模块详细分析之核心文件分析-核心代码注释

2018-3-30 13:00 |来自: 互联网 296 0

摘要: 2.4.2.6 核心代码注释 nf_nat_fn( )是nat hook的主处理函数,其它几个钩子函数最终都调用这个函数。nf_nat_fn( )函数会根据连接信息结构体ip_conntrack_info,也就是连接的方向,判断是发送的包还是回应的包。如果是 ...

2.4.2.6 核心代码注释

nf_nat_fn( )是nat hook的主处理函数,其它几个钩子函数最终都调用这个函数。nf_nat_fn( )函数会根据连接信息结构体ip_conntrack_info,也就是连接的方向,判断是发送的包还是回应的包。如果是发送的包,会首先调用nf_nat_rule_find( )函数查找规则,并调用ipt_do_table( ),进行规则的遍历,并执行目标为SNAT的操作。

static unsigned int nf_nat_fn(unsigned int hooknum,struct sk_buff *skb,

const struct net_device *in,const struct net_device *out,

int (*okfn)(struct sk_buff *))

{

struct nf_conn *ct;

enum ip_conntrack_info ctinfo;

struct nf_conn_nat *nat;

/*标志snat还是dnat转换*/

enum nf_nat_manip_type maniptype = HOOK2MANIP(hooknum)

NF_CT_ASSERT(!(ip_hdr(skb)-

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部