Professional Documents
Culture Documents
拟态交换机工程技术要点2 裁决与调度技术
拟态交换机工程技术要点2 裁决与调度技术
拟态交换机工程技术要点 2
裁决与调度技术
宋帅康
拟态交换机项目团队
汇报提纲
一、交换机拟态裁决系统
二、交换机反馈调度系统
管理配置
拟态界的设置
CLI SNMP … Web
执
传统交换机的功能结构分为数据转发平面、 行
协议控制平面和管理配置平面。 协议控制 体
拟态交换机将传统交换机功能结构中的管理 VLAN OSPF …
配置平面和协议控制平面抽象为执行体。
拟态交换机的拟态界包含管理配置平面和协
数据转发
议控制平面。
查找 转发
接口卡 接口卡
FIB 表 处理
消息通道的分类
异 Get Kernel 交
拟态交换机的异构执行体与交换芯片间共建有 4 条消 构 换
息通道,分别用于不同事务。
执 芯
行 Set kernel 片
Get/Set Host 通道用于管理配置平面对配置文件的访
体
问。
Get/Set Kernel 通道用于管理配置平面、协议控制平面 Get Host 配
与交换芯片的交互。 置
裁决模块就建设在这些消息通道中,控制执行体与系 文
统底层的所有交互。
Set Host 件
Get Request
Get Get
Channel Channel
裁决
块
的模位置 [kernel/ [kernel/
host] host]
Get Reply
交换机的拟态裁决模块参与构建了执
裁
决
行体与输出代理模块通信的通道。
代输
出
理
执
体行
拟态裁决模块对执行体发出的 Set 请
模
块
求进行裁决,其他消息透传。 Set Request Set Request Set Request
Set Set
Channel Channel
[kernel/ [kernel/
host] host]
Set Reply
4 N
bytes bytes 裁决的内容
执行体产生的所有交互请求被归一化为统一的
iCmd Msg 消息格式。
消息被封装为一个定长命令字 + 不定长消息内
enum iCmd{ 容组成的结构体。
…… 结构体被封装入 UDP 报文进行发送。
DRV_CMD_SET_PORTSPEED,
DRV_CMD_GET_PORTSPEED, 不同的消息通道使用不同的 UDP 端口号进行
DRV_CMD_SET_VLAN_PVID, 区分。
DRV_CMD_GET_VLAN_MEMBER,
……
};
消
体息子流程:
行
接收执
消息队列 Y 超时裁决子
为空? 流程 接收执行体消息,维护会话,压入消息队列
消息分组与转储子流程:
N
消息分组,消息再封装,压入消息缓存区
消息分组与
转储 裁决子流程:
筛选消息缓存区中大小为 3 的分组
消息缓存 超时裁决子流程:
N 中有某一
分组大小 筛选消息缓存区中超时未满的分组,通过分
达到 3
组大小确定裁决结果
Y
裁决子流程
拟态裁决
简
块要的裁决流程如下:
模
消息队列
Step1 :网络收发包模块获取到某一执行体发出的
Set 消息;
消息分组与转储 Step2 :将该消息压入消息队列;
Step3 :需处理模块从消息队列中读出一个消息,
并将其置入相应的消息缓存区;
Step4 :裁决模块轮询消息缓存中各存储单元的大
消息缓存 小,产生裁决结果。
分组未超时,分组大小为
分组超时,但分组大小为 3
分组超时,但分组大小不足 22,裁决成功
,裁决失败
会话保持功能
struct sockaddr_in{
裁决
块 模
……
in_port_t sin_port;
struct in_addr sin_addr;
…… Set Rep
Req
};
…
数, map 中保存 iCmd 与 Socket 的对应关 iCmd:c Sock:sock_c iCmd:c Sock:sock_c
系。 iCmd:d Sock:sock_d
原始数据结
构 4 N
bytes Bytes
iCmd Msg
Msg
4 iCmd{ 16 4 4 4 N
封装后数据结
构 enum
bytes…… bytes bytes bytes bytes Bytes
DRV_CMD_SET_PORTSPEED,
uiNosId stRecvTime uiLen uiPort iCmd Msg
DRV_CMD_GET_PORTSPEED,
标注该消息的 标注收到该消
DRV_CMD_SET_VLAN_PVID, 标注该消息的
体行执 ID 息的时间
DRV_CMD_GET_VLAN_MEMBER, Set 类型
……
};
Thursday, November 9, 2023 12
消息分类与转储
开始
消息分类转储功能
消息队 Y 超时裁决
列为空? 子流程
KEY VALUE
N
MsgGroup 取
出
消息,
解析 iCmd
time_t CacheMap
iCmd
保存该 map KEY VALUE 该 iCmd 已
创建并插入
创建的时间 经创建 ?
保存该消息的 <string> set<int>
命令字
uiPort
的
出
发
体行保存执 保存该指令消息的 插入
指令消息,如 来源,如 NOS1 、
保存该消息的
create vlan 1 NOS2 、 NOS3
set 类型
最大存储单
元大小 >=3
消息缓存区数据结
:
构 GroupMap
裁决子流
程
结束
Thursday, November 9, 2023 13
裁决子流程
开始
裁决步骤 遍历
MsgGroup
Step5 :将裁决成功消息告知调度模块;
消息下发,给
Step6 :从 CacheMap 中删除已处理的消息。 NOS 回复
资源释放
结束
超时裁决步骤 遍历 MsgGroup
结束
按消息类型独立设置超时时间
iCmd = A 3s
iCmd = B 5s
iCmd = C 30s
… …
JUDGE_ALL_SUCCESS
多样化裁决结果 SUCC_WITH_TIMEOUT
SUCC_WITH_TIMEOUT_TWO_STAGE
交换机裁决模块可根据是否存在超时、 CacheMap
下的元素个数、集合中的元素个数等信息,综合 SUCC_WITH_TIMEOUT_MANY_STAGE
推断出当前系统的裁决错误类型。 FAIL_WITH_TIMEOUT
裁决模块可输出 7 种裁决结果类型。
FAIL_WITH_TIMEOUT_TWO_STAGE
FAIL_WITH_TIMEOUT_MANY_STAGE
协议进程状态
体
状行态裁决
执 关键进程运
行
状态
本地配置管理器状态
防火墙状态
交换机裁决模块中集成了执行体运行状态
CPU 利用率
的裁决功能。 内存利用率
涵盖系统配置、资源利用、访问痕迹等方 TCP Socket 连接数
关键系统资源
面。 运行进程数
采用纵向裁决或横向比对方法进行裁决。 用户及用户组信息
计划任务个数
PATH 下二进制文件数目
关键可执行文件的校验值
关键路径
件文
用户目录下文件数目
开机启动文件校验值
用户登录日志信息
敏感日志信息
历史命令信息
Thursday, November 9, 2023 18
2 交换机反馈调度系统
体停止
行执 删除停止的容器
对于执行体停止,调度模块将发送指令直接停止该容器。
从镜像中拉起容器
体激活
行执
Step1 :删除所有被停止的容器;
初始化虚拟网络拓扑
Step2 :从最新的镜像中拉起新容器;
Step3 :创建执行体运行所需的网卡、配置网桥与流表;
Step4 :拉起执行体中的初始化脚本,拉起执行体程序。
初始化程序
体 拉起
行 执
随机调度与可信值调度
调度策略 应用场景
调度模块集成了两种执行体调度策略,分
别为随机调度和基于可信值的调度策略。 随机调度 整机启动时
随机调度策略在系统整机启动时应用,基
可信值静态配置 执行体清洗时
于执行体可信值的调度策略在进行执行体 基于执行体可信值
清洗时使用。 的调度策略
可信值动态调整 执行体清洗时
执行体的可信值可根据裁决结果动态修
正,也可手动配置。
与裁决
块
、
输
入
代
理模的通信
调度模块将在发生执行体调度事件时通告拟态裁决模块和
输入代理模块当前的线上执行体组合。
调度模块与裁决模块采用加密的 TCP 通信。
调度模块与输入代理模块采用加密的以太网帧进行通信。
加密帧中包含有线上执行体 ID ,输入代理通过协议号识别
该报文。
裁决
块
的模信息通告
序号 项目 说明
调度模块为每种错误产生原因保存最新的一次记 拟态裁决
录。
调度模块每接收到一次裁决失败信息,便将此次
1 2 3
4
裁决失败信息与内存中保存的同种“错误产生原
Code :
因”的最新的记录相比较,若两次记录中的“错 0x2
误执行体”信息中,所表示的裁决正确的执行体
裁决结果缓存区
一致,即认为发生了 N-1 模故障。
1 2
Code:0x1 Code:0x2 Code:0x3 … Code:0x6 Code:0x7
结合定时调度的识别方法
拟态裁决
N 模注入攻击的识别需结合定时调度机制。
定时调度触发后,某一受控执行体被清洗,系统 1 2 3
4
退化为 N-1 模注入场景。 Code :
0x0
裁决结果缓存区
1 2
Code:0x1 Code:0x2 Code:0x3 … Code:0x6 Code:0x7
谢 谢 大 家!