netfilter
文章平均质量分 63
n1wer
这个作者很懒,什么都没留下…
展开
-
linux网络收包流程
本文主要关注转发相关流程。并以igb驱动举例。⾸先当数据帧从⽹线到达⽹卡上的时候,第⼀站是⽹卡的接收队列。⽹卡在分配给⾃⼰的RingBuffer 中寻找可⽤的内存位置,找到后 DMA 引擎会把数据 DMA 到⽹卡之前关联的内存⾥,这个时候 CPU 都是⽆感的。当 DMA 操作完成以后,⽹卡会向 CPU 发起⼀个硬中断,通知 CPU 有数据到达。网卡驱动会注册一个终端服务函数,以igb驱动为例,通过request_irq,注册了一个终端服务程序igb_msix_ring。原创 2022-12-20 17:16:10 · 128 阅读 · 0 评论 -
iptable 内核流程
记录一下iptables指令在内核的流程,分为配置和匹配原创 2022-12-01 11:34:27 · 224 阅读 · 0 评论 -
[netfilter]--arp的主要流程
本文主要简单介绍arp的收包流程,以及钩子点的使用. arp的收包主要有两个流程, 1,arp_rcv,主要收包到本地,涉及到的钩子点NF_ARP_IN,NF_ARP_OUT, 2,通过桥接转发,__br_forward最后遍历hook函数,如果是arp包,找到br_nf_forward_arp, 2.1,br_nf_forward_arp,遍历NFPROTO_ARP,NF_ARP_FORWARD找到对应hook 注册 NFPROTO_ARP,NF_ARP_IN钩子arp_hook的堆栈情..原创 2022-03-16 16:40:30 · 519 阅读 · 0 评论 -
[netfilter]-ip_rcv包转发流程
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_LOCA...原创 2022-03-16 14:36:58 · 341 阅读 · 0 评论 -
arptables 流程
arptables 流程 配置 1,do_command (filter) //只能添加在filter表 1.1 handle = arptc_init -->TC_INIT 从通过getsockopt 从内核获取filter表hook相关信息 1.2 append_entry --> arptc_append_entry --> TC_APPEND_ENTRY //添加规则 handle->entries.entrytable 2,arptc_commit -...原创 2022-03-08 17:30:46 · 166 阅读 · 0 评论