软件定义安全边界 (SDP) 深度系列

1. 深度透视:skb 在内核中的数据演变 (ASCII 版)

理解身份证明的物理实现,需要观察内核核心数据结构 sk_buff (skb) 在关键环节的字段变化。

1.1 eBPF 路径 (Lightweight)

阶段 1: 租户发出 (Untagged)
[ Ethernet | IP | Payload ] 
   | 
   +--> skb->mark = 0
   +--> skb->data = Ethernet Header
 
阶段 2: 宿主机 TC Ingress (身份注入)
   +-- [ BPF 逻辑: TID = MapLookup(ifindex) ]
   +--> skb->mark = 0x64 (TID: 100)  <-- 【身份戳已盖】
 
阶段 3: 隧道准备 (Metadata Binding)
   +-- [ BPF 逻辑: bpf_skb_set_tunnel_key(VNI=skb->mark) ]
   +--> skb->_skb_refdst -> [ ip_tunnel_info ] <-- 【挂载隧道说明书】
 
阶段 4: 物理驱动 (延迟封装)
[ Outer_IP | UDP | VXLAN(VNI:100) | Ethernet | IP | Payload ]
   +--> skb->len += 50 Bytes

1.2 OVS 路径 (Heavyweight)

阶段 1: OVS Datapath (流表匹配)
   +-- [ 逻辑: HashLookup(Match: tap0_Port) ]
   +--> skb->cb[OVS_CB] -> [ tun_id: 100 ] <-- 【存储在 OVS 私有块】
 
阶段 2: OVS Vport Encap (即时封装)
[ UDP | VXLAN(VNI:100) | Ethernet | IP | Payload ]
   +-- [ 动作: 内存重新分配并完成头部的即时拷贝 ]

2. 拦截图谱与执行效率

3. 延迟封装的技术精髓

将“安全决策”与“字节拼凑”解耦。配合 DPDK MBUF 操作,可实现 100G 级别的无损安全过滤。


外部参考