nf_register_hooks解读

nf_register_hooks是什么

net->netns_nf->nf_hook_entry[NFPROTO_NUMPROTO][NF_MAX_HOOKS=8]

          (nf)                (hooks)

NFPROTO_IPV4=2; NFPROTO_ARP=3; NFPROTO_IPV6=10;

也就是说在一个协议上,最多能注册10个钩子函数: nf_hook_entry_head

net->nf.hooks[reg->pf]+reg->hooknum

pf倒是清楚,hooknum是啥咧?是:

 46 enum nf_inet_hooks {
 47     NF_INET_PRE_ROUTING,
 48     NF_INET_LOCAL_IN,
 49     NF_INET_FORWARD,
 50     NF_INET_LOCAL_OUT,
 51     NF_INET_POST_ROUTING,
 52     NF_INET_NUMHOOKS
 53 };
 

所以net->nf.hooks[reg->pf]+reg->hooknum 其实就是告诉我一个协议在检测点要进行的过滤的行为;

看下nf.hooks到底是啥时候开始发挥作用

NF_HOOK-->NF_THRE---->一串下去,貌似和bpf没有多大的关系

至于ipt_register_table也算是殊途同归,最后其实也都是到nf_reigister_hooks中去了

原文地址:https://www.cnblogs.com/honpey/p/8467997.html