近十年来,有两个重要技术对信息技术产生了重大影响:虚拟化和云计算。这些技术使网络工程师和应用架构师可以非常灵活地处理数据中心空间,从而帮助他们最大程度利用硬件的价值和实现较高的可用性。
然而,应用程序所依赖的底层数据网络则几乎没有发展。事实上,虽然虚拟化和云计算已经改变了大多数IT从业人员对于计算领域的看法,但是网络领域至今也没有发生太多变化。网络技术的大多数变化都表现在带宽升级上,而不涉及网络的基础实现方法上。许多网络专业人员现在仍然可以参考5年甚至10年前编写的网络设计书籍,网络在一般意义上并没有发生太多的变化。亚马逊Web Services杰出工程师James Hamilton在2010年指出:“数据中心网络在我的掌控之中。”
事实上,网络领域缺少创新已经束缚了应用交付设计师。虽然响应有一些晚,但是在最近一段时间里,网络供应商一直在致力于提高网络的灵活性和降低网络使用难度,以满足服务提供商和企业的需求。在过去几年里,网络领域的创新包括中央控制、可编程性、网络编排和虚拟化。这些创新在大范畴里属于软件定义网络(SDN),它们的目标是解决企业面对的一些特殊问题,因为他们的虚拟基础架构和云服务已经将边界扩展到他们现有网络所能支持的范围之外。
SDN基础:中央控制
SDN旨在通过运行在中央控制器上的软件来定制和控制网络。现代网络交换机和路由器可以在本地编程控制他们的路由转发表,这意味着网络设备可以在内部自行决定如何转发流量。由分布式控制面板协议发出的流量转发决策包括生成树、OSPF和BGP。但是,这些传统网络协议的灵活性非常有限。为了让它们能够正常工作,所有参与转发域的网络设备都必须遵循协议标准所定义的相同规则。这样既束缚了创新的空间,也不利于一些特殊业务需求的实现。
SDN将控制面板(网络设备转发流量的方式)从数据或转发面板(基于控制面板策略转发流量的网络设备)分离。通过SDN,分离的控制面板就转移到一个中央控制器上,它负责监控整个网络,其中包括主机在什么位置连接网络,以及网络将采用什么拓扑将所有主机连接在一起。有了这个无所不知的中央控制器,网络工程师只需要修改运行在控制器的软件,就可以实现独特和灵活的转发策略。
这个中央控制器是SDN的核心概念。控制器的2个重要术语是:北向和南向。而我们可以将控制器视为中间件。应用程序将告诉控制器如何编程实现北向通信,而南向通信则负责编程控制网络设备。控制器充当一个仲裁者角色,它将底层物理网络与准备编程控制底层网络的应用程序分离。
中央控制器编程控制网络转发表的常见例子有:
创建一个实验网络,它使用生产网络所在的物理基础架构,但是逻辑上又与它完全隔离。
应用一些流量策略,它们能够动态地学习应用策略的流量流,从而保持一个既定的服务质量(QoS)。
“为钱转发”,即所有转发路径都可以根据对公司财务的影响而调整变化。
智能网络安全性,例如,将一些特定的流分流到入侵检测系统进行深度数据包检测,而其他流则基于运营策略自由传输。
整个网络层面的流量镜像(例如,生成树),使网络中任意点的流量都可以复制到另一个网络位置,以便执行日志记录、报表或分析操作。这类似于“工具网络”或“可见性结构”的概念。