Central Control Over Distributed Routing

Central Control Over Distributed Routing
2.Flexible Fibbing
3.Augmenting Topology
4.Implementation
5.Reaction to Failures
6.Frequently Asked Questions
7.Related Work
8.Conclusion

ABSTRACT
中心路由选择虽然提升了灵活性,但是牺牲了分布式协议的健壮性。这篇文章提出了Fibbing(谎言),一种架构,在分布式路由上实现中心控制。谎言以一个潜在的链路状态路由协议欺骗结点和链路,使得路由器可以基于增长的拓扑计算他们的转发表。谎言是有表达性的,并且支持灵活的分路平衡、转发工程、且支持路由。基于高级转发需求,谎言控制器计算出一个紧凑的增长的拓扑平且通过标准路由协议信息注入欺骗元素。谎言可以与任何不可修改的支持OSPF协议的路由器兼容。我们的实验也显示了它可以通过转发需求、引进最小限制、快速反应网络状况和控制器的错误来扩大网络规模。

Introduction
作为网络管理员,怀疑网络上发生了denial-of-service attack(Dos)l,要检查网路,需要做:
1.孤立目标为这些ip地址的流
2.将它们直接交给洗涤器,如果需要就清晰他们。
3.通过路径平衡的方法利用未被使用的链路来降低拥塞。

这些工作在传统网络中非常难做。
因为,中间件和目的地离得很远,许多设备的配置需要修改,修正一个错误会改变规则使得其他地方又发生错误。

软件定义网络可以很容易地解决这些问题,因为它可以中心化并直接控制转发行为。然而,移除分布式路由协议又会造成一些问题。

可扩展性和可靠性会下降,由于所有工作都要由控制器来做,而分布式路由协议可以将这些工作分摊开。为了可扩展性和可靠性,SDN控制器必须地理上分布式重复放置,但这样又会产生管理控制其状态的挑战。而且现有网络难以大量向SDN过渡,故SDN目前只是小范围部署。

Fibbing欺骗路由器,让路由器以为链路中有一些不存在的结点或者链路,基于像OSPF或IS-IS这样的链路状态协议,让路由器计算转发路径。

他们做了如下工作:
1.抽象方面:展示了如何通过操作分布式链路状态路由协议去表达和实现高级转发需求。
2.算法方面:提出了新的、高效的算法去计算紧密增长的拓扑
3.实现方面:描述了一个完整的实现,在未被修改的Cisco和Juniper路由器上。
4.评估:展示了欺骗控制器在路由器上快速生成小的拓扑和路径。

CONCLUSIONS
SDN的到来说明了网络需要更高的可编程性与中心化管理。
这篇论文中,展示了Fibbing如何中心化、自动化地控制转发,在没有舍弃分布式路由协议的益处的情况下。
Fibbing是表达性的,可扩展的,并且可以与已存在的路由器一同工作的。
未来工作:
着眼于扩展IGP协议通过Fibbing去实现更好的控制。
抽象地讲,Fibbing展示了如何把集中式和分布式方法结合起来。
我们相信新的研究可以进一步探索这个方向,举个例子,集中式或分布式组件研究中选一个进一步研究。

 

 

 

(1.没有这套方案前,SDN用在分布式路由上会遇到什么问题?
答:分布式路由计算分布式路由的路径,同时sdn控制器给分布式路由制定路径,然后分布式路由会再次更新最短路径,根据分布式路由协议将sdn下达的命令修改、覆盖掉。而且全部计算都交给SDN控制器,会增大sdn控制器的负担。

2.出现这个问题的原因?这种改进后是骗SDN还是骗分布式?如果骗另一方可不可以?
答:未修改的分布式路由协议会自己根据自己的规则计算最短路径,如果SDN控制器给出的命令与分布式路由协议自己的规则不符,则分布式路由协议会将控制器下发的规则修改为自己计算出的规则。

这种改进是骗分布式路由协议,SDN控制器制定骗局,让分布式路式协议分摊它的任务,并且不会干涉它所做的决定。

如果骗控制器,不可以。因为Fibbing的目的是在保持中心路由灵活性的同时,达到分布式路由协议的健壮性、可靠性、可扩展性,如果欺骗了控制器,则会丧失网络的灵活性。

3.他是如何实现骗的?
答:设置虚假节点与路线,让分布式路由根据虚假节点计算最短路径,以达到为SDN控制器服务的目的。

4.传统网络有多种路由协议,这篇文章的方法运用咋哪种路由协议上?若运用在另一种路由协议,会有什么问题?
答:这篇文章运用在OSPF路由协议上,如果运用在RIP路由协议上,
1.rip协议一条路由有15跳限制,无法达成提高网络可扩展性的目标。
2.rip协议以跳数作为网络度量值,没有网络延迟和链路开销的概念,而Fibbing想要精准的欺骗路由协议,精准地控制路由协议的行为,需要对各段路径之间的开销进行操作,在rip中无法实现。
3.rip周期性交换路由信息,ospf在链路发生变化的时候交换路由信息,正好符合Fibbing的需求。
4.这一点好像不影响,因为Fibbing加入假节点都是好消息,没有坏消息。
rip中路由器用自己的路由表与相邻路由器交换信息,有慢收敛的特性,好消息传得快,坏消息传得慢;ospf交换路由信息,收敛速度快,控制器下发的指令生效速度差别很大。

 

4.IMPLEMENTATION
我们构建了一个完整的协议用Python( 算法部分)和C(与OSPF交互),在Quagga上实现。
Quagga:软件,可将linux机器打造成一台功能完备的路由器。
在这一部分,
4.1 展示协议
4.2 描述Fibbing如何与现在的OSPF路由器一同工作
4.3 提议在链路状态协议的两个小的修改,它们会让Fibbing更有效率
4.4 最后,我们描述了如何确保路由器的可靠性)

4.1 Fibbing 控制器
协议包括3个组成部分:
假拓扑生成器
(i) 将转发需求转变为转发DAGs的编辑算法
(ii)将转发DAGs转换为虚结点和链路的增加算法。
链路状态翻译器
与路由器交互:建立路由邻接关系将谎言和拓扑的改变注入路由器。
flooding:从任何节点通过一个路由器发送的信息会被发送给与该路由器相连的所有其他节点(除了发送信息包出来的那个节点)。flooding是快速散布路由更新信息到整个大型网络的每个节点的一种方法。它有时也被用于多点传输信息包(在真实或虚拟网络中从一个来源节点传输到许多特定节点)。互联网的OSPF协议(它在网络中更新路由信息)使用的就是flooding。

运用flooding从每个邻接边散播出去信息,每个路由器有一个特定的识别器,只能看到控制器希望自己看到的谎言。

事件管理器
维持一个实时更新的网络拓扑视图,通过
1.分析翻译器收集的路由信息
2.为拓扑生成器构造一个网络图

事件管理器网络中发生了事件影响转发需求(如节点故障或增加)。如果有,它第一时间检查数据库去寻求一个之前计算好的谎言,如果找不到,就通知拓扑生成器去请求一个新的增加拓扑。

4.2 Fibbing与未作修改的OSPF一同工作
我们的Fibbing模型可以与未作使用修改的OSPF协议的路由器一同工作(在Cisco和Juniper上测试的)。为了创造谎言,我们的模型控制控制OSPF信息中的Forwarding Address(FA) field(转发地址域)。假如控制器想让路由器认为目标d以目标地址y直接依附于路由器。控制器便给路由器注入信息:d有一个转发地址y,并且让路由器认为到达d的开销与到达y的开销相同。路由器y忽视了这条信息,所有其他路由器计算他们到达y的开销与信息中的开销的和作为路由开销。

OSPF中的本地谎言。 为支持本地谎言,我们储备了很多IP地址,用于FAs中。所有这些地址在OSPF中网络范围传播。然而,每个路由器都没有路由所有这些地址。所以,只有直接相连的路由器可以到达这些地址,并且接收这些路由地址作为FA。FA关联的IP地址的配置和分配都只能在网络生命周期中做一次。

OSPF中的全局谎言以及其限制。
OSPF支持全局谎言,通过FA,然而未修改的OSPF网络中有一些微妙的限制,由于FAs在路由器上被处理的方法而产生的,显著的:
1.OSPF虚节点事实上欺骗路由器去识别FA,因此它们的位置和到达的方法都被限制
2.OSPF路由器丢弃了FA是它自己的IP地址的信息,并且根据没有虚假节点的拓扑计算最短路径。
这两点结合起来,限制了全局谎言在OSPF中的力量让它想要实现所有转发可能DAG会变得比较没有效率。

克服OSPF的限制。
为了最大化Fibbing的表达性,我们的模型控制器使用了一种顺从OSPF的合并型算法的实现,这种算法结合了本地谎言和全局谎言。在可以的时候运用全局谎言,在全局谎言不能满足需求的时候运用本地谎言。

4.3提议的协议增强
其他链路状态协议,如IS-IS,不支持转发地址,甚至OSPF对谎言的实现也是被限制的。然而较小的协议扩展可以使更灵活的Fibbing运用在未来的路由器上。完全成熟的Fibbing需要路由协议支持两个功能:
1.在接收到的信息的基础上创造邻接(与虚拟节点)
2.一个第三方的下一跳机制,允许被选中的路由器识别转发中要被用到的下一跳。

这两个功能,可以让协议更加有识别性(不影响现有功能的情况下),而且可以通过路由软件的升级来进行升级。

通过与路由器供应商讨论,这个方案可行。

4.4控制器Replication(复制,回答,反应)
与其他网络组建一样,Fibbing控制器任何时候都有可能坏掉。可靠性可以这样被确保:运行多个Fibbing控制器副本,它们平等的,并将他们连接起来,他们在不同的地理位置。

各个副本之间只需要交换输入的转发需求。所有副本总可以算出精确的同样的增加的拓扑。Fibbing副本唯一保持的动态状态是网络图。这个状态被通过IGP同步。

我们算法的确定性允许所有的副本同时注入相同的谎言。然而,这会增加信息洪流的量。

为了限制控制层支出,只有一个副本是活跃的,这个副本注入谎言,其他副本只计算不注入。当这个副本出现问题的时候,其他副本通过接收到的IGP信息,通过判断router ID是否是最小,来决定谁是下一个活跃的副本。


posted @ 2015-11-11 09:00  KeepTheBeats  阅读(444)  评论(0)    收藏  举报