Management Network

人们提到SDN,逻辑每每是这样的:控制和转发平面分离,因为有了SDN控制器的中心控制,咱们能够作各类天花乱坠的事情。那么SDN控制器和交换机之间是经过怎样的网络进行通讯的呢?一个与之相关的更大的问题是:做为一个完整的SDN解决方案,咱们应该如何规划Management Network呢?这个问题也是全部客户最关心的前三个问题之一。博主想经过这篇文章抛砖引玉,聊聊在设计数据中心Management Network时要考虑的问题。node

在没有SDN和orchestration系统以前,数据中内心每每只须要两张网:management network和data network。前者用于让管理员登录到各个设备上进行配置,后者用于转发业务流量。本文不会涉及任何关于power network和console port network的讨论,由于那已是太成熟的技术了。在orchestration系统大行其道的今天,网络的规划变得复杂了不少。服务器

咱们不妨脑补一下这样一个场景:一个数据中心的租户链接到Openstack的GUI**[1],在GUI上配置了一个network和一台VM,这台VM被nova安排在了一个compute node上[2],对network的配置则经过neutron plugin转换成为了对SDN控制器的一系列配置并发送给SDN控制器[3]。SDN控制器将收到的配置转化为OpenFlow message或者对交换机的配置下发到各个物理交换机与OVS上[4]。这样,那台vm就能够与外界进行通讯了[5]**。网络

以上这个例子是一个很是典型的由orchestration系统所驱动的数据中心(Openstack只是一个例子)。**在这个例子里,博主标出了五个数字,每个数字都表示有信息从数据中心的一个部分流向另一个部分,也就意味着每一个数字背后都必定要有一张网来传递信息。**这五张网可能彼此独立,也可能几张网合并成一张网。不一样厂家会有不一样的解决方案。并发

对于[1],博主更愿意仅仅把它叫作Management Network,由于这张网承担的任务就是:让管理员与用户登陆orchestration系统,对整个数据中心进行管理。这张网必定得存在而且每每会是客户已有的Management Network的一部分。几乎全部orchestration系统的服务节点(service node)和SDN控制器都要有管理端口接入这张网。因为这张网上流动的几乎所有是控制信息,数据量不大,[3]和[1]能够是一张网。设计

对于[2],不一样的厂家有不一样的解决方案。有些厂家把每个compute node的管理端口都接入到了上一张management network当中,这样作最大的好处是能够充分共享management network当中已有的各类基础服务,好比PXE和DHCP。但博主我的不太喜欢这样的方案,主要是由于这样的方案不独立,绝大多数状况下它甚至依赖于客户去扩容已有的management network。好比有客户要部署一个数据中心,而且已经采购了服务器和SDN交换机,开始兴冲冲的连线了,突然发现若是要把每一台新服务器的管理端口都接入到现有的management network当中,端口会不够用,怎么办?只能再去采购几台传统的交换机接入到management network当中,配置STP...当这一切发生的时候,全部的客户都会质疑:咱们不是在部署SDN吗,为何还要配置STP?咱们不是从你家采购了那么多SDN交换机吗,为何还要采购额外的而且是传统的交换机来扩容management network呢?当客户抛出这些问题的时候,生意基本就黄了一半。博主更倾向的方案是把[2]直接安排在SDN网络的数据平面,好比在SDN网络中直接配置一张网(好比一个vlan)来处理全部的orchestration系统和compute node之间的控制信息。这样作就最大程度的避免了繁杂的布线以及对management network的扩容。递归

终于讲到了[4],这张才是属于OpenFlow message(或者其余南向API)的网。其实咱们也能够将这张网和[1][3]一块儿放到management network上,可是这张网上的控制信息每每会比较繁重,包括全部的FlowMod, packet-in, 甚至是stats collection。因而这张网每每采用传统交换机,2/3层协议以及必要的path redundancy来确保南向API准确快速的传递和执行。看到这里,也许有兄弟会质疑:博主不是在[2]中刚刚反驳了采用传统交换机扩容management network的方案吗?怎么在这里就大张旗鼓的用起来了呢?事实是这是一个鸡和鸡蛋的问题:在[2]中博主建议采用SDN控制器在SDN交换机上部署一张专门用于orchestration的网络,问题是SDN控制器如何将OpenFlow message发给SDN交换机呢?在这里,咱们必定得借助传统网络,否则就是一个无止境的递归。因而必定又会有兄弟质疑:那岂不是说SDN控制器也要经过传统网络给每一个OVS发送openflow message了?那样的话,每一台compute node就又要有一个端口接入到传统网络上,在[2]中的努力不就白费了?这个问题引入了SDN数据中心设计中的一个难题:inband management,也就是说:如何在数据平面上配置一张属于控制平面的网,让SDN控制器经过这张网控制OVS甚至是物理交换机。关于这个问题,博主会在之后专门讨论。部署

对于[5],其实没有太多可讲的,由于它就是数据平面,咱们以前所作的全部努力都是为了让这张网容易管理,畅通无阻。io

关于由orchestration系统驱动的数据中心网络规划,这篇文章仅仅开了一个头。还有两个特别重要也特别有趣的话题博主还没来得及展开:数据中心的first boot以及inband management。在之后的文章中,博主会陆续涉及。console