莉凡网

linux调用uart(linux调用命令)

放牛AI工具

  2.3 函数实现机制

  2.3.1 NAT实现机制

linux调用uart(linux调用命令)

  在nat机制的源码实现中,nf_nat_fn( )是nat hook的主处理函数,其它几个钩子函数最终都调用这个函数。nf_nat_fn( )函数会根据连接信息结构体ip_conntrack_info中表示连接方向的成员(主要就分两个方向),来判断是发送的包还是回应的包。如果是发送的包,会首先调用nf_nat_rule_find( )函数查找规则,并调用ipt_do_table( ),进行规则的遍历,并执行目标为SNAT的操作,这里以SNAT为例进行分析。nat模块处理流程如图2-3所示。

图2-3NAT处理流程图

linux调用uart(linux调用命令)

  2.3.2 IPsec机制的函数实现

  当内核开启XFRM支持时,数据包在进入、外出或转发时都要进行IPsec处理。数据包进入本地时,首先调用ip_rcv_finish( )完成网络层的处理,接下来才调用xfrm4_rcv( )进行IPsec处理,根据IPsec所采用的协议分别调用不同的进入处理函数dst_entry->input( );如果进入内核的并非本地数据包则首先调用xfrm4_policy_check( )进行策略检查,接着调用xfrm4_route_forward( )设置转发路由项,调用xfrm_lookup( )查找其SA,如果SA不存在则需要进行SA的协商,协商完跳转到输出链dst_output( )进行处理;输出链的数据包在进入路由项处理dst_entry->output( )函数时会优先处理安全路由项,即完成IPsec处理,调用不同协议对应的输出处理函数,IPsec处理完才会处理ip_output( )路由项,完成发送包的预处理。IPsec机制实现的详细流程如图2-4所示。

  

图2-4IPsec机制实现流程图

放牛AI工具

本文链接:https://www.hello-linux.com/linux/48725.html

版权声明:本网站内容均来源于网络,如涉及侵权,请联系作者!

发表评论

还没有评论,快来说点什么吧~

联系客服
公众号
公众号
公众号
返回顶部