linux 内核网络钩子类型

本文详细介绍了Linux内核在网络层处理数据包时涉及的钩子类型,包括网桥、ARP、IPv4和IPv6的钩子。这些钩子在netfilet_bridge.h、netfilet_arp.h、netfilet_ipv4.h和netfilet_ip6.h中定义,如NF_BR_PRE_ROUTING、NF_ARP_IN、NF_IP_PRE_ROUTING和NF_IP6_PRE_ROUTING等。钩子协议类型有NFPROTO_BRIDGE、NFPROTO_ARP、NFPROTO_IPV4和NFPROTO_IPV6。Linux使用二维数组管理钩子,并通过nf_register_hook函数按优先级注册钩子函数。
摘要由CSDN通过智能技术生成
内核收到包后(netif_receive_skb),
|
|——  检测嗅探器,把包的副本给每个嗅探器
|
判断该包是否属于网桥-->handle_bridge --> br_handle_frame  钩子: 
netfilet_bridge.h 中定义
/* Bridge Hooks */

/* After promisc drops, checksum checks. */
#define NF_BR_PRE_ROUTING 0
/* If the packet is destined for this box. */
#define NF_BR_LOCAL_IN 1
/* If the packet is destined for another interface. */
#define NF_BR_FORWARD 2
/* Packets coming from a local process. */
#define NF_BR_LOCAL_OUT 3
/* Packets about to hit the wire. */
#define NF_BR_POST_ROUTING 4
/* Not really a hook, but used for the ebtables broute table */
#define NF_BR_BROUTING 5
#define NF_BR_NUMHOOKS 6

钩子协议类型(pf) : NFPROTO_BRIDGE    netfilet.h中定义
或者 AF_BRIDGE  socket.h(include/linux) 中定义 两者值相等

|
判断该包类型(根据以太网头判断包协议类型)
|
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值