Generating Consistent Updates for Software-Defined Network Configurations

abstract

文章集中于解决SDN网络状态更新一致性问题。通过生成一个add-before rule dependency graph, 计算更新序列。图中节点代表要安装的规则, 边表示规则之间的依赖关系。

I. Introduction

per-packet Update Consistency- 定义包一致性:

一致性是指,一个数据包从进入一个网络到出去,要么使用旧配置,要么使用新配置。
这个规则适用于所有网络更新开始的数据包以及更新过程。

  • two-phase commit protocol(2PC):利用时间戳区分新旧版本,解决包一致性。

本文提出的方案:

通过单个交换机上,交换机之间的规则依赖关系建立依赖图。
图中的节点表示即将安装的规则
源r1到目的节点r2的边表示r1规则应该先于r2安装。
图中的拓扑排列顺序代表有效的更新序列。
如果图中有环,可能存在潜在的不一致性,找不到更新序列。
我们通过移除一些节点的出边破除循环。
首先我们安装临时规则,转发相关的流量到控制器
然后根据无环的拓扑顺序安装规则
当被删除节点的所有入度规则都安装完,可以安装原始的规则,停止转发相应流量到控制器。

2. Generating consistent update

定义规则r = (μ,α,ρ)

  • μ 匹配到规则r的一组包

  • α 匹配的包应该执行的动作例如转发到某端口,丢弃等

  • ρ 表示规则优先级

  • μ(r)表示r的流空间。

  • α(r)表示他的动作

  • ρ(r)表示他的优先级

网络N包含一组交换机**{s1, s2, s3, s4……sn},**
对于每个交换机的流表有配置C = {Ti: i = 1, 2,……n} ,Ti表示一个流表

C§表示包P一组交换机-规则对 [(si1, ri1),…,(sik,rik)] ,其中si1,sik 表示包P在C配置下通过的交换机序列,rik 表示P经过交换机 sik 匹配的规则。

对于一个网络旧配置CO = {TOi: i = 1, 2, 3,…n}
新配置CN = {TNi: i = 1, 2, 3,…n}

  1. 我们首先提出add-before rule dependency graph表示新规则之间的依赖图
  2. 提出通用框架破除循环
  3. 假定每个交换机,新的规则比旧规则有更高的有优先级。

2.1 Add-Before Rule Dependency Graph

本文不针对单个包进行讨论,而是流空间
流空间是指配置C下,一组包f 用相同路径,交换机所处理动作也相同
使用C(p)到C(f)表示
Ec表示配置C下的所有流
Eco∩ cn表示Co∩ Cn 配置下的流.

建立依赖图伪代码

在这里插入图片描述
伪代码:找到新旧流表中动作不同的规则,添加三类依赖
我们使用三类边表示规则之间的依赖

1. intra-switch dependency
同一个交换机上两个规则之间的依赖

在这里插入图片描述
流f作为输入,1–j是算法1提出的新旧规则共享的j个交换机。

在j号交换机上,对于流表TikN中的规则r’’, 如果他和f有交集,而且新旧规则rikN, rikO的处理动作不同,所有优先级比r’‘搞得规则,添加一条表到r’’

这类依赖解决:如果交换机j中,对于流f,新旧配置相同,f中任意包f通过临时的配置r’’。
2. forward dependency
在这里插入图片描述
添加第二类边:旧路径上游交换机的规则到下游交换机的规则。
给一个流f, 交换机sij,交换机是新旧路径上最后一个,.
枚举旧路径上所有的新规则r’(转发f到旧路径)
添加边rikN(转发f到新的路径)到r’如果两者的动作不同。

这个依赖保证了,如果f开始使用旧路径遍历网络那么一直使用旧配置。

3. Bcakward Dependency:和算法二对称,保证了如果包开始使用新路径遍历,那么他应该一直使用新配置。

综上,得到理论:
在这里插入图片描述

2.2 Handing Cyclic Dependencies

解决依赖图有环的情况。也可以使用其他的方法解决,例如使用时间戳等。
算法4描述了整个流程。

  1. 首先选取依赖图中子节点集合S, 通过移除边Es, 依赖图变为有向无环图。
  2. 为S中的节点增加临时规则,例如匹配包转发到控制器。
  3. 更新网络拓扑,拓扑安装好之后,临时规则被对应的新规则代替,因此得到最后的配置CN.
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值