网络功能虚拟化:建模与VNF放置详解
1. 网络功能虚拟化基础
在网络功能虚拟化领域,状态数据平面的匹配/动作表是核心概念之一。表中的每个条目代表特定的处理逻辑,由匹配字段和动作字段组成。匹配字段对流量和状态变量进行操作,而动作字段不仅可以转发数据包(可能进行转换),还能触发状态转换。
例如,在图3.7的表c1中,如果传入数据包与流量模式f1匹配,内部状态为s1,并且谓词P(f1, s1)满足,那么数据包将以可能的转换Fwd(f1, s1)发送出去,同时内部状态转换为Upd(f1, s1)。在示例代码中,前端传入的每个数据包会检查该流量是否之前出现过(在地址/端口转换映射中),这是匹配字段中流量和状态的谓词;每个新流量的第一个数据包触发地址和端口转换(存储在字典中),这是状态转换;而sendp()是对数据包的动作。
2. 白盒建模方法
2.1 建模框架
白盒建模方法基于已知的NF程序源代码,提出了名为Lancet的建模框架。假设NF程序有处理循环和数据包输入/输出函数,NF模型预定义为有状态的匹配动作表。该工作以NFactor的形式发表。
2.2 建模步骤
此方法包括以下三个步骤:
1. 切片程序 :从数据包输出函数进行反向切片以获取数据包切片,从状态变量赋值语句进行反向切片以获取状态切片。
2. 执行路径分析 :对两个切片的并集进行符号执行,得到多个执行路径。为了可扩展性,需要约束一些变量的值。
3. 填充模型 :将每个路径作为一行填充到有状态的
超级会员免费看
订阅专栏 解锁全文
562

被折叠的 条评论
为什么被折叠?



