在过去,数据中心内流量转发很简单。某个IP会和另外的IP通信。IP地址属于结点主机或虚拟机,结点之间互相交换信息。IP地址间的通道就是数据中心交换机,以及路由表和桥接表中的条目。
如果工程师需要解决两个IP结点之间性能低下或奇怪的现象,好的出发点是通过检查这些表中构建的两者间路径。等开销多路径和多机链路聚合增加了过程的复杂性,但总的来说,运营商可以找出任何数据中心会话经过的确切路径。
端点之间的流量非常简单。网络地址转换、加密或隧道都很少出现。这类功能往往位于数据中心边界,与可信的边界外设备进行通信。需求简单的时代,业务也很简单。
现代数据中心
随着业务需求的改变,现代数据中心看起来有所不同。曾经相对简单的数据中心现在已成为应用程序运行的统一基础架构平台。数据中心作为一个整体运行;它成为了应用程序交付的引擎。
越来越多基础架构对开发人员和应用程序是透明的。理想的现代基础设施是开发人员在其上布置应用程序的抽象。资源池是按需分配的,开发人员不用担心基础设施。相反基础设施需要关注应用程序。
现代数据中心同样还负责以分布式处理方式的安全性,结合协调动态增加与移除工作负载。流量不再被推送到中央物理防火墙来实施安全策略。相反,构建中央安全策略,并将策略管理器安装到受策略影响的部分主机、虚拟机或容器上。没有基础设施检查点,也没有某些神秘的路由要求来增强此类策略。
在更高层,我们一直在描述私有云架构。以这种方式抽象物理基础设施,为更简单的与公有云协作。因此,混合云架构越来越受欢迎,期望公有云的工作负载与私有云一样拥有相同的安全性和连接性。
层级
随着混合云架构成为新的标准,需要着重关注这些趋势对网络的影响。数据中心不再像一个IP地址与另一个IP地址通信那样简单,路由表和桥接表在出现故障时没有太大的作用。
提供现代数据中心灵活性的基础设施机制依赖于复杂的网络。推动这种复杂性的是工作负载隔离的需求,服务策略实施与安全需求。因此,现代数据中心看起来更像一个多层蛋糕,而不是大量IP地址。
在蛋糕的底部是底层网络。这个网络是所有其他网络的基础。同样也是普通网络工程师看起来最普遍的网络。当他们查看路由和桥接表,就等于看到了底层网络——数据中心的基础。
然而,底层本身不能提供混合云所需的一切。一个日益增长的需求是隔离,称为多租户。租户可以是应用程序、业务单位或客户。
租户的流量通过虚拟可扩展LAN(VXLAN)封装技术与其他流量隔离。来自某个段的流量被封装在VXLAN包中,在该包装器通过网络递送,并在另一侧被解封装。 VXLAN是第二层——覆盖在我们的基础底层之上。
VXLAN不仅提供流量隔离,而且也可以用于路由通过网络上的特定路径的流量。假设数据中心需要通过特定防火墙和负载均衡器转发流量。在现代网络中,防火墙和负载平衡器可能作为虚拟化网络功能存在,可能驻留在数据中心的任何地方。要将流量精确地路由到需要去的地方,VXLAN封装可用于将流量流从设备到设备进行隧道传输,直到遍历所有必需的设备。
防火墙规则在我们的叠加层和底层蛋糕中形成另一层。中央策略管理器给每一台主机写入防火墙规则。每个主机最终都有自己的一组规则集,用于控制进出设备的转发。这被称为微分段,这是确保可扩展数据中心安全的实用方法。
增加网络复杂性的另一个问题是容器。容器网络是一种新兴的技术,由命名空间、代理服务器和网络地址转换来控制,以使容器能够相互通信以及与外部负载(另一层)通信。
运营商的烦恼
这种复杂性对网络运营商是潜在的问题。大多数网络问题都与连接或性能有关。两个端点理论上可以连接,但不能是一种问题。而两个端点能连接,但不能按预期快速通信,是不同的问题。
使用数据包漫步方法排除连接问题。从一个网络设备到另一个网络设备,遵循数据包到达其目的地所经的路径。当实际IP端点(底层)是已知的时,结果是可以直接判断的。
在现代数据中心中,底层用于传输VXLAN或其他覆盖包。最重要的是,我们添加了防火墙规则,然后也可能添加网络地址转换或代理服务;数据包行走变得更加困难并充满细微差别。为诊断连接问题,运营商需要知道分组容器、虚拟机或裸机主机的源和目的地——管理该分组的防火墙策略、分组封装与要遵循的服务链。
假设运营人员了解应用程序流程,并在平坦、无孤立的IT组织中工作,这并不是那么糟糕。但是,现实并不容易。在桥接和路由表中查找介质访问控制和IP地址只是更精细的故障排除过程的一部分。事实是,现代基础设施通常是新兴的,运营商可以解决在早前的问题,但无法重现。
性能挑战更难以诊断。某个指定的会话关联网络设备的绝对数量可能涉及虚拟操作系统、软交换管理程序、虚拟防火墙,机架顶部交换机、核心交换机,然后一直到另一端点。
当某些工作负载在公共云中时,问题变得更加复杂。将基础设施或平台作为服务,意味着在故障排除方程式中增加了高延迟与额外隧道,提高了排查难度。
行业反应
我们受限于IP.在受限于IP的同时还需要额外功能,叠加层就出现了。叠加层能够让我们引导和隔离流量,而且该功能很重要。有了它,可以将基础设施作为资源池,随意添加和减少容量。这也成为我们添加到环境中的又一网络复杂性问题。
网络行业以几种方式承担了这种复杂性挑战。第一是接受。如果我们同意复杂性在这里留下来,将提供工具,让我们发现或可视化网络上发生了什么。例如,Cisco为运营商提供增强的工具,以解决基于应用为中心的基础设施端到端连接问题。 VMware最近收购了Arkin,一款可视化工具,它将工作负载与防火墙策略、VXLAN分段关联,并提供与自然语言搜索引擎配合使用的GUI.
有效故障排除和可视化工具,是现代数据中心平台中越来越重要的优势。然而,一些人已经通过创建转发方案尽可能避免叠加层的出现,来对该复杂性做出反应。
例如,Romana.io开源项目依赖于分层IP寻址方案,结合基于主机的防火墙规则来创建分段和中央安全策略。开源项目Calico类似。 Romana.io和Project Calico都关注于提供可扩展到大型数据中心的转发方案,同时仍然可以处理安全和分段需求,而且它们没有叠加。
大的问题也许不是如何处理网络的复杂性,而是关于人们支持的哪种解决方案。有一个观点,自动化将减少IT员工的数量。作为一名二十年IT基础设施老兵,我不这样看。复杂性越大,支持的要求力度也越大。组织不会希望在搞出事情时去抱着供应商的大腿。他们希望有专业人士知道系统哪里除了问题,并随时准备进行修复。