在过去的十年中,网络经历了各种各样的变革。从本质上讲,网络已经变得复杂和难以使用传统机制管理。现在迫切需要设计和集成来自多个供应商的设备,并采用虚拟化和云服务等新技术来管理网络。
每个网络都是独一无二的,你永远不会遇到两个完全相同的网络。供应商提供的产品作为构建模块,供工程师设计适合他们的解决方案。如果我们都拥有一个简单且可预测的网络,这将不会成为问题。但是没有全球性的参考可供遵循,设计也因企业而异。即使在提供类似服务时,这些也会导致网络变化。
据估计,超过60%的用户认为他们的IT环境比两年前更为复杂。我们只能假设未来网络的复杂性会增加。
大型企业和服务提供商需要管理这种复杂性,以确保他们的流量、策略和配置都符合要求和目标。您无法以手动方式管理复杂的网络。人为的错误总是会让您付出代价,最终会减缓网络的速度,从而阻碍敏捷性。网络复杂且易错的事实鼓励自动化,这实际上是如何发生的,取决于自动化的水平。因此,网络需要更高级别的业务流程。
这种复杂性由于企业正在寻求其业务流程和网络现代化,而变得更加复杂。传统的垂直集成单片网络解决方案禁止网络现代化。这就造成了架构师的原始意图和实际的运行时行为之间的差距。
如果进行检查,您会发现设计文档的内容与网络执行松散耦合。首先,对于如何将设计文档转换到实际设备中,没有结构化的过程。如何实现它完全取决于个人的解释。
这些网络是为不同的时代而建立的。因此,我们现在必须将重点从传统的网络规范转移到基于意图的网络(IBN)上。IBN是一种能够使网络现代化并与整体业务目标保持一致的技术。它使您可以将设计规则与网络紧密结合。
毫无疑问,我们需要新的工具,不仅从物理设备的角度来看,还是从流量的角度来看。验证手动方式将不再有效。我们在数据包中有100bits,这意味着流量可以同时执行多个会话。因此,使用人工方法跟踪端到端流是不可能的。
在配置方面,CLI是用于进行配置更改的最常用方法。但它有许多缺点。首先,它提供了错误的抽象级别。它的目标是操作人员,并且没有验证工程师是否会遵循正确的程序。
此外,CLI语言在多供应商中并未标准化。业界对此作出反应,并推出了NETCONF。但是,NETCONF在供应商操作系统中存在许多不一致的地方。许多公司使用自己的专有格式,使得跨多个供应商网络编写NETCONF应用程序变得困难。
NETCONF基本上是为了简化自动化,但实际上,它所呈现的不规则性,使自动化变得更加困难。此外,我们使用的老式故障排除工具(如ping、traceroute)无法全面评估网络的行为。Traceroute在IP无编号链路方面存在问题,这在全自动网络环境中很有利。另一方面,ping不会告诉您网络的运行情况。这些工具最初是为更简单的时间而构建的。
我们需要开发一个与供应商无关的解决方案,该解决方案可以验证针对配置策略的意图。这应该与设备数量、安装的操作系统、流量规则和任何其他类型的配置策略无关。我们需要网络自动化和可预测。而现有的常用工具没有任何价值。
简而言之,我们需要一种能够找出所有设备和流量交互的新模型,不仅仅是在设备级别,而是在整个网络级别。
软件定义网络(SDN)的用户主要是大公司。这些用户拥有构建自己的硬件和软件的资源,例如Google和Facebook。
例如,Google的B4项目旨在通过基于流的优化以动态方式构建高效的广域网(WAN)。但是,如果在生产网络上使用传统的WAN架构,则无法实现这一点。
IBN是SDN的自然继承者,因为它借用了相同的原则和架构; 应用程序和网络基础架构之间的划分。与SDN类似,IBN正在制作控制整个网络的软件,而不是设备到设备。
现在的问题是,作为一个概念,SDN可以根据需要实现自动化吗?实际上,SDN使用软件来配置网络,从而驱动基于软件的网络。但是,IBN是下一步,您需要更明确地强调重点。基于意图的系统在应用程序级别中工作得更高,以提供真正的自动化。
IBN是需要更大程度的网络自动化,IBN是一种提供增强的自动化和网络洞察力的技术。它代表了一种范式的转变,侧重于“网络应该做什么”,而不是网络组件的配置方式。它监视网络设计是否正在做它应该做的事情。
IBN通过生成设计和设备实现的配置来实现这一点。此外,它还可以实时验证和验证是否符合原始意图。例如,如果未满足所需的意图,则系统可以采取纠正措施,例如修改QoS策略、VLAN或ACL。这使得网络更加符合两者; 业务目标和合规性要求。
它使用声明性语句,即网络应该做什么,而不是描述应该如何完成的命令式语句。IBN能够理解大量异构网络,这些网络由一系列不具备一个API的不同设备组成。这实质上使您可以专注于业务需求而不是传统网络的限制。
通往IBN之路的第一步是将所有这些转化为明确的逻辑规则,这些规则本质上是IBN软件的一部分。您还需要了解流量以查看现实是否与意图相匹配。为此,系统将构建网络模型,然后验证该模型; 这被称为计算机科学中的形式验证。这是一种方法,我们在数学上分析网络,看它是否与其意图相匹配。这涉及某些计算以包含逻辑。
网络验证是任何IBN系统的关键部分。它需要一个基本的网络行为数学模型来分析和推理出目标网络的设计和策略。系统需要验证所有可想到的数据包流和流量模式。
尽管没有明确的IBN架构指南,但数学模型可用于处理每个网络设备。这可以被看作是对每个设备级别的所有数据包类型和流量流的一组代数和逻辑运算。这允许IBM系统评估和验证所有可能的方案。
当设备接收到数据包时,它可以执行许多操作。它可以将数据包转发到特定端口,丢弃数据包,或修改数据包标头,然后转发到端口。由数学模型决定每个设备如何响应每种可能类型的数据包并在网络范围内评估行为,而不仅仅是在设备级别。
原则上,验证过程必须是端到端的。它必须从网络上的每个设备收集配置文件和状态信息。然后在逐跳的基础上对所有可能的交通流的行为进行数学分析。IBM系统构建网络基础设施的软件模型。该模型首先读取第2层到第4层的配置细节,然后从每个设备(IP路由表)收集状态。
通过IBN,我们将看到从被动方式转变为主动方式。当我们转向主要关注业务需求并使事情变得更容易的模型时,它将对网络的未来产生深远的影响。我们并不像人们想象的那么远,但如果你愿意,你今天就可以开始你的IBN之旅。因此,该技术就在那里,建议采用分阶段部署模型。如果你看看IDS/IPS的部署,你会发现大多数仍在改变。