从旧时代一路走来的传统园区网络架构背负了过多的历史包袱,这些包袱在当时的技术发展背景、网络客观状况以及工程师对网络的理解的环境中,都是不得不支付的代价。今天,随着开放网络架构在云网络中的概念验证、规模部署和蓬勃发展,支撑技术与产品已经完全具备了帮助园区网络甩掉这些历史包袱的条件。因此,基于开放网络架构建设云化园区网络时所坚持的唯一原则就是:极简。接下来,我们从若干个方面看看这些极简的建设思路,以及给园区网络带来的好处。
以太网工作在网络参考模型的二层(Layer 2,简写为L2),其大部分交互逻辑建立在广播这种机制之上,因此是一种高效的通信协议。为这种高效所支付的代价是,当在一定范围内(例如,跨越两台以上的交换机)部署以太网时,需要将广播报文在不同的交换机之间传播,由此则带来了潜在的广播风暴风险;为了规避这种风险,又出现了类似于STP(Spanning Tree Protocol,生成树协议)及其各种相关的协议和保护机制。由此,大规模部署的二层以太网结构变得越来越复杂、健壮性变得越来越差,建设和维护成本都高居不下。究其根本原因,基本可以认为是(大范围的二层)广播导致了这一切的发生。更为严峻的是,很多网络安全漏洞,都是利用以太网的广播机制工作的。那么,在不破坏以太网基础工作原理的基础之上,如何解决这个问题?
云化园区网络架构解决这个问题的方法非常简单,也非常优雅:将L2的工作范围限制在接入终端和其所连接接入Leaf的端口之间,在确保以太网能正常工作的前提下,最大限度地压缩L2区域,彻底消除以太网广播在网络中的传播,从而将广播带来的各种复杂度、脆弱性和安全风险从根源上消除掉。
抛弃L2的L3 IP Fabric
如上图所示,一旦以太网报文进入到接入Leaf的物理端口,L2就会被彻底终结,取而代之的是一个基于IP的网络。IP工作在网络参考模型的三层(Layer 3,简写为L3),这个协议在设计之初就充分地考虑了环路规避、多路径转发、高可靠、故障自愈等因素,因此在L2广播中面临的各种挑战,在L3的世界里天然不存在。而且,L2转L3的处理只发生网络侧,对于每一个接入终端来说是完全透明的,接入终端无需为此做出任何调整。借用云网络中的概念,我们也可以用IP Fabric来指代这样的园区网络的主体。
可以看到,在云化园区网络中,管理员只需要根据不同的业务需求设置不同的L3子网以隔离不同的业务,而无需配置和维护复杂的各种STP、全局VLAN、广播抑制等L2功能。尤为重要的是,经过如此的简化,网络的可靠性和健壮性是不降反升的。
IP协议在诞生的初期,互联网的各个部分非常复杂,各种规模、各种结构、各种速率、各种网络协议、各种运营主体不一而足。因此,早期的网络工程师不得不开发了各种路由协议来应对如上的局面。这些路由协议包括RIP、OSPF、IS-IS等IGP(Internal Gateway Protocol,内部网关协议)和BGP这种EGP(External Gateway Protocol,外部网关协议),不同的网络内部运行着不同的IGP,不同的网络之间需要互联时则采用EGP(即BGP)。长期以来,复杂的路由结构一直是令网络建设者和管理员战战兢兢的雷区,稍有不慎就会因路由的错误配置导致网络的路由震荡、路由丢失甚至整网瘫痪;而这样的路由结构也一直沿袭到传统的园区网络架构内部。
统一的BGP路由
本着极简的原则,云化园区网络架构抛弃了“IGP+EGP”的复杂路由结构,而是采用BGP这种高效简捷、控制能力超强的路由协议统一了整网的路由机制。在云化园区网络架构中:
网关是一个子网中所有终端的出口设备,即,当一个终端(A)要与处于另一个子网的终端(B)进行通信时,A只需要将通信信息交给自己的网关即可,由网关完成信息的进一步向外传递(到B)、从B返回信息的接收、再将返回信息发送到的终端(A)上。从这个逻辑可以看出,对于一个子网来说,网关一定是一个集中的点;事实上,在传统园区网络架构中,也的确如此。
支持无缝漫游的高性能分布式网关
在云化园区网络架构中则不同:
在有环路的L2网络中,如前文所述,为了规避广播风暴风险,往往会部署STP协议(以及由STP进化而来的RSTP、MSTP等协议),而部署STP的另外一个代价就是:必须人为地阻塞掉一半的物理线路使其处于不工作状态(即浪费一半的物理带宽),从而确保没有环路出现、L2网络能够正常工作;并且,STP的算法决定了这样的L2网络的规模无法做大,当交换机数量增长到100台左右时,网络则仅仅只在理论上具备可行性了。
天然无环的网络结构
云化园区网络架构很好地解决了上述问题:
传统园区网络架构中,为了向一些终端提供高可靠的接入服务,往往会采用堆叠技术。堆叠技术将两台(甚至有可能是多台)同规格的接入交换机在逻辑上虚拟成一台交换机,让终端通过不同的线路分别连接到不同的接入交换机上;当堆叠组中的一台交换机故障后,由另一台交换机将自动接管网络流量,从而达到高可靠接入网络的目的。在某一些方案中,这样的堆叠甚至会出现在更高层级的交换机、或者不同层级的交换机之间。
通过上面的描述,已经能够感觉到堆叠是一种非常复杂的组网模型,其流量处理逻辑、故障恢复逻辑都及其复杂。从软件设计、开发的角度来说,要将两个完全独立运行的系统,从初始配置、到运行状态、到流量转发、再到出现故障时的行为完全同步、协调起来,是一件非常困难的事情。很多网络出现全网级的故障甚至瘫痪,都是因为交换机内部的堆叠软件故障所引发的。
去堆叠,并且更可靠的网络
在云化园区网络架构中,则彻底的抛弃了堆叠方案,而是采用基于L3能力实现的一种可靠度更高、复杂度约等于零的方案:
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)的重要功能之一是为接入网络的终端分配规划好的IP地址,同时为终端动态配置网关地址、DNS地址等信息。
基于自学习的主动安全、内生安全
云化园区网络将主动跟踪任何接入终端与DHCP服务器之间的交互过程,对于所有通过DHCP服务获取自己IP地址的终端,其IP/MAC地址信息都会被网络所记录,所有来自这些终端的网络通信都将被允许通过、正常转发。而对于那些没有通过DHCP服务器获得合法地址的终端来说,网络会拒绝此类终端的接入,来自这些终端的网络流量将在与其直接相连的接入Leaf的端口上直接被丢弃。同样的学习过程也会发生在ARP的交互过程中、数据报文的转发过程中。
从上述描述不难发现,云化园区网络通过自学习手段,具备了主动安全和内生安全的机制,不再依赖于网络管理员复杂的策略配置。
并非所有接入网络的终端都需要通过DHCP来获取自己的配置信息。例如,网络中的打印机,往往是被配置了静态的IP地址,平时是处于静默状态,一旦有打印请求到来时,就会直接开始传递需要被打印的信息。这种情况如何处理?
图13:安全控制表项的手工配置
在云化园区网络架构中,处理这种情况的机制是安全控制表项的手工配置。手工配置与自动学习相结合,将网络中所有类型的终端全部纳入到统一安全防护的范畴之内。
下一篇,我们将从园区网络的运维层面(软件可编程、自动化、NetDevOps…)来继续探讨。
借鉴云数据中心网络的发展经验,星融元Asterfusion创新性地提出了新一代精简高效的云化园区网络架构。其中,型号丰富的CX-M系列主要作为接入或汇聚交换机,而高速率、高密度的CX-N系列作为汇聚和核心交换机。