当年使用dpdk做的业务

arp 协议:

  • 接口link down---->当然删除arp表项的时候需要注意静态路由不能删除,已经被标示为invalid 不可用状态也不要删除, 其实不可用状态由不可用状态逻辑来维护 
  • 接口ip变化---->首先要发送免费arp ;更新arp 缓存,比如以前在这个接口上学习的arp 是否还能为valid状态,还是需要需要删除,毕竟修改接口ip可能是ip 包含关系变大
  • 接口ip mac 变化---->此时需要发送免费arp报文, 此时要区分 是由于IP 改变还是由于MAC改变 而发送的免费arp报文, mac 地址改变可能一个接口配置多个IP, 需要对这个接口上所有的IP 发送免费arp
  • 对接口发包判断时也要考虑接口的二三层属性
  • 发包的时如果不是自己local-cpu报文,则放入remote-cpu ringbuf 处理报文, 如果enqueue ring buf 失败则直接丢弃!
  • 对于接口中二层口 收到本地三层口arp请求报文也要处理!
  • 对于本地二层口收到arp 报文判断为转发,此时要注意接口的trunk access tag untag的属性
  • 对于arp 应答报文,记得处理arp 生成neighbour
  • arp代理逻辑地处理

 DHCP 协议:

  • dhcp snoop 放在dpdk里面
  • dhcp server 以及中继放在dhcp 应用层
  • dpch server 要注意dhcp 监听的udp port68时 使用的raw socket 等情况,比如只有raw socket 会导致内核协议栈回复 icmp 没有68号端口等问题

VRRP 协议栈:

  • 目前将vrrp 协议栈放在dpdk 里面, 主要有track 上行链路, FSM 状态机

NAT:

  • 目前使用portal 认证的时候用到full-nat

L2转发:

  • 目前可能设置多个二层口, 实现了bridge 的mac 地址表; 实现二层转发

L3转发:

  • 为了实现链路备份,添加了PBR,都是一些简单的PBR+链路检测 以及三层路由表转发

DNS:

  • DNS解析以及劫持 实现某些认证功能

IP重组:

  • 参考内核设计实现IP分片重组

QOS:

  • 参考内核的TC 流控模块

DDOS:

  • 基本通用的tcp udp http 各个字段限速-拉黑、阻塞等功能,涉及到具体业务秘密,就不说了

dpdk 架构:

  •  涉及到业务秘密,不写了

 

posted @   codestacklinuxer  阅读(199)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示