admin管理员组

文章数量:1642148

1,ip_rcv收到包之后,调用NF_HOOK,NF_HOOK首先调用nf_hook遍历NFPROTO_IPV4,
NF_INET_PRE_ROUTING的钩子点上的hook,然后执行ip_rcv_finish

2,ip_rcv_finish调用首先调用查找路由获取rtable,得到input方法,对于RTN_LOCAL,input=ip_local_ip_local_deliver,非RTN_LOCAL,input=ip_forward;之后调用dst_input;

3,如果是RTN_LOCAL进入ip_local_ip_local_deliver,遍历NFPROTO_IPV4
NF_INET_LOCAL_IN的钩子点的hook,最后执行ip_local_deliver_finish

4,非RTN_LOCAL则进入ip_forward,之后遍历NFPROTO_IPV4
NF_INET_FORWARD的钩子点的hook,之后执行ip_forward_finish

5,ip_forward_finish调用ip_output,遍历NFPROTO_IPV4
NF_INET_POST_ROUTING钩子点的hook,之后执行ip_finish_output

本文标签: 流程包转发netfilteriprcv