2017年3月21日星期二

笔记: 软件定义网络 by Thomas D. Nadeau & Ken Gray

虚拟机会因为电力、冷却、计算密度等原因迁移。难点就在这里,因为物理位置的迁移意味着物理地址的迁移。这也意味着可能需要对3层路由进行更改,以确保发往该机器原先位置的数据报文能发送到新位置。

虽然构成设备数据平面的硬件仍然想当专业化,因而价格昂贵,但是控制平面却日益倾向于使用越来越便宜的通用计算设备,例如intel的cpu。

openflow架构为一些只有数据平面的设备设计,这些设备被一个(逻辑上的)集中式控制器所控制,这个控制器是该网络中唯一一个控制平面。

互联网的发展历史可以大致反映为面对各种挑战而引发的控制模式的变革,这些控制模式包括对网络信息可达性管理,可达性信息分发协议和生成优化路径的算法。这些挑战包括不断增长的信息库(即路由表的增长),以及如何管理这个信息库。

此外包括对部分目的/目标数据的可达性进行宣告的责任分散问题

一般来说,由于大量终端主机的存在,二层网络终究是不能很好扩展的,这导致二层和三层把它们的控制平面设计最终合并或混合在一起。这些问题的核心在于如何处理终端主机在网络之间迁移的问题,这会导致转发表的大量振荡,并且必须快速更新转发表,以防止数据流量的转发被中断。

在三层网络中,分组转发着眼于网络地址的可达性。

EVPN 用MPLS/GRE连接两个相距较远的二层网桥

LISP 试图新增唯一的设备地址,以及变换的路由地址,解决二三层混合的问题

一般数据平面放置在显卡上,控制平面放在路由处理器上

当控制面要求数据面转发某分组时,数据面听得到么?当数据面很忙时,有空听么?

之前控制面和数据面是紧密集成的,软硬件组合进行搭建和管理,内部很多组件细节对外部隐藏,对于这些组件的隐藏包装导致了利益驱动的网元设备利润。

多平面的紧耦合导致的相互依赖产生了一系列的稳定性、规模问题,而规模问题最终可能导致性能问题。

使用多少控制平面,以及这些控制平面放置于何处,这个问题直接反映了网络规模、性能和可恢复性。

控制平面越多,系统就越会存在脆弱的隐患。如果调整系统,它也能增加抗脆弱性,但这样就最终会变成不能与外界条件变化保持一致的系统。简单的说,在分布式或最终一致性控制模型中,交互协议的数量过多,会引起管理和运营的复杂性。

每个独立的网元设备或其代理都参与分发网络可达性信息,用以创建一个一致的、无环路的本地网络视图。

收敛是指,某个网元由于网络事件而引起目的地可达性变化开始,到这个变化被所有其他网元设备都知道,并实际起作用为止,所花费的时间。

在特定的网络设计中,如何优化协议时钟的最佳实践知识。

为了实现一个大网中的端到端的改变,应用程序不需要知道、或直接接触各个网元设备,而是与几个处理这些细节的控制点交互。

如果控制器与所控制的网元设备在市、州、或国家级的网络上分离,那么传输延迟就会开始影响运行效率了。

采用逻辑上集中但物理上分布的模型对控制平面进行集中化,从规模、高可用性和地理位置的角度看是有道理的。

过滤的两种常见形式是基于主题和基于内容的过滤。

在发布-订阅模式下,任何特定网元设备的状态都与其他网元设备是松耦合的。大部分发布-订阅系统都能够暂时将订阅者与发布者解耦。

一种扩展方案是并行运行两个发布者。

发布-订阅模式,不能保证消息一定能投递到可能需要确保投递的应用程序。

protocol buffers , thrift

没有评论:

发表评论