自己也写一个,目的是为了以后查看方便,看不明白不要丢砖头 ,
ip_conntrack_in ->resolve_nomal_ct ->nf_conntrack_find_get (没有找到) ->init_conntrack ------>find_expection (没有找到) -->contrace->helper = ip_conntrack_helper_find (查找helper) -->help_cmp
help_cmp中调用ip_ct_tuple_mask_cmp将该连接tuple 和helper中的tuple和mask 进行比较 .找到了则填写help函数 .那么下次有包来的时候才有可能nf_conntrack_find_get 中找到记录从而执行helper函数
很重要的是 ,helper中的mask是在初始化help模块的时候在init中填写好的 .比如 ,如果是h323则应该在mask 中填写好目的端口的mask和协议号从而实际连接来了比较的时候就进行端口的比较
ip_conntrack_in是 ip_conntrack模块加载的时候的钩子函数
------草本植物 20080601
阅读(1758) | 评论(0) | 转发(0) |