Netfilter 之 连接跟踪钩子函数分析

ipv4_conntrack_defrag

ipv4_conntrack_defrag对输入包进行检查,如果是分片包,则调用nf_ct_ipv4_gather_frags函数进行重组;

 

nf_ct_ipv4_gather_frags内部调用了ip_defrag进行重组,ip_defrag相关分析,请移步IP分片重组

 

ipv4_conntrack_in

ipv4_conntrack_in是对nf_conntrack_in的封装,是连接跟踪的输入本机或者由本机转发的入口函数,该函数获取l3proto ,l4proto,调用resolve_normal_ct检查是否有tuple节点,没有则创建,并且与skb关联,并调用l4proto->packet函数对连接状态进行处理;

 

resolve_normal_ct函数将数据包中的相关字段设置到tuple中,并且检查hash中是否有该tuple,如果没有则新建tuple,而后设置连接状态,并且与skb进行关联;

ipv4_conntrack_local

ipv4_conntrack_local是由本机发出的数据包连接跟踪的入口,是对nf_conntrack_in函数的封装;

 

ipv4_helper

ipv4_helper函数查找已经注册的help扩展,如果存在则调用扩展的helper函数;

 

ipv4_confirm

ipv4_confirm相关函数完成对连接的确认,并且将连接按照方向加入到对应的hash表中;

 

 

 

本文链接:Netfilter 之 连接跟踪钩子函数分析

转载声明:转载请注明来源:Linux TCP/IP Stack,谢谢!


发表评论

电子邮件地址不会被公开。 必填项已用*标注