当年使用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 架构:
- 涉及到业务秘密,不写了
    http代理服务器(3-4-7层代理)-网络事件库公共组件、内核kernel驱动 摄像头驱动 tcpip网络协议栈、netfilter、bridge 好像看过!!!!
但行好事 莫问前程
--身高体重180的胖子
 
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号