在当今的各种网络中,在大小的企业中,服务提供商,政府机构及其他网络都对软件驱动的体系结构进行了转变。如果程序曾经是手动的,则它们变得越来越自动化,可能是由于需要敏捷性而驱动的,同时保持可用性和保护。
这种转变是在广泛的弧线中,而不是单个倒入解决方案,该行业仍在弄清一切。您会看到我将来在这里写下有关网络“软焊接”的更多信息。在这篇文章中,我将讨论对自动化转变的新兴方面:一种称为网络验证的新技术,该技术有助于确保业务目标与现实相匹配,甚至在整个频繁的变化中。通过这种自动保证弹性和安全意图,网络可以变得更加敏捷。网络验证通过数学来做到这一点!
我们会看看如何。但是首先让我们谈谈原因。一个具有数千个设备和数十个设备模型和协议的大型网络是一个复杂的实体。在某些方面,最近引入的新技术似乎使网络更加复杂:有软件定义的数据中心,编排系统和云网络的新层。雷竞技电脑网站One large enterprise I’ve spoken with has multiple virtual networks with three cloud providers, and these virtual networks need to be stitched together along with the on-premises network (which hasn’t gone away) in overlays that achieve security, availability, and performance goals.
如今,通常使用哪些方法来处理所有这些复杂性并确保其实现目标?
您的团队如何根据需要验证网络运行?
手动检查:69%
监视:57%
本土脚本:47%
商业产品:12%
我们没有:7%
该图总结了2016年10月Dimensional Research进行的315名IT专业人员的调查的结果(您可以看到完整的结果;披露:我的雇主Veriflow赞助了此调查)。手动检查示踪剂,ping和打开浏览器以尝试服务,不能强烈保证满足网络范围的意图。监视流量和流程很有用,但仅在事实之后才发现问题。
鉴于充满挑战的环境和常见工具的局限性,调查中有59%的受访者表示,网络中的复杂性越来越多,这也就不足为奇了。
Here, then, is the key question: Given that the organization’s broader success depends on the network, how can we assure that the business intent – such as resilience or security of the network – was actually carried out through design and implementation in a complex environment? And even if initially implemented correctly, is the intent being met all the time? For example, the organization may desire to verify that:
- 数据中心中的所有关键服务均可跨多个路径偏远站点。雷竞技电脑网站
- 完全隔离了网络的一部分,该网络需要维持法规合规性,跨越混合云和本地数据库。
使用数学预测未来
在过去的几年中,已经开发了一个新的技术领域,可以回答有关数学严格的复杂网络的问题。
该技术的灵感来自计算机科学领域,称为正式验证。正式验证的想法是,而不是仅仅采样系统在一些测试用例中的响应方式,我们可以证明整个系统总是实现所需的属性。
当然,这并不容易。对系统设计的正式验证涉及对系统可能收到的所有不同输入以及其响应方式的所有不同输入的推理,以确定是否总是满足财产。但是,有了良好的技术应用于适当的领域,这是可以实现的:例如,IBM和其他公司正式验证硬件在进入硅和NASA之前验证他们的火星漫游者飞行软件找到并发缺陷。
我们可以正式验证网络吗?In a sense, the network is like software: it takes inputs (packets injected at certain locations, and device configurations), executes actions step by step based on those inputs (using forwarding rules like “if the packet’s IP destination lies in 10.2.1.0/24 then send it out port 24”), and finally produces results (the packet is dropped, modified, forwarded along a certain path, or delivered to a certain port). If we can verify software, why not verify a network?
网络验证研究是在学术研究实验室开创的,包括在卡内基·梅隆大学,AT&T实验室,伊利诺伊大学Urbana-Champaign大学(与我自己和同事),斯坦福大学和Microsoft Research的早期工作。受正式验证的启发,这一研究系列为网络领域开发了新技术。该技术首先建立了网络的正式模型,该模型代表数据可以通过网络流动的所有方式。Since the network depends on many devices working together, the verifier’s model has to incorporate many kinds of gear – routers, firewalls, load balancers, virtual networks in the cloud, and so on – and many vendors, models, and protocols, in order to build a model of the whole network as one system. Next, the technology uses the model to verify that all possible data flow behavior matches a property of interest.
这种方法的价值是即使在复杂性中,也可以提供强大的保证。伊森·班克斯(Ethan Banks播客。“You might be able to go ‘well, if this circuit goes down, traffic's going to converge like this,’ and you might be right, but what takes the guesswork out of it ... is that model that looks at exactly what the state of the network is.”
以前面提到的意图示例,涉及可用性和细分。网络工程师在考虑更改访问控制列表(ACL)的同时,可能希望让验证者检查更改后每个远程站点是否仍然可以使用某些关键服务列表,以及是否是否可以使用雷竞技电脑网站数据中心仍然完全隔离。工程师不再需要拭目以待,看看变更后的早晨会发生什么。
扩展自动化范围
有时,我们专注于网络配置的自动化:编排系统,例如,帮助创建模板的配置,并在整个网络上部署更改。
但是,随着网络基础架构变得越来越复杂,验证所需的结果也至关重要。通常,检查网络的保护通常是反应性或手动的。网络验证技术为自动化,主动验证提供了途径。
自动验证的目标最终是防止基础架构中的中断和漏洞,从而降低了与变更相关的风险,因此,网络团队能够更快地发展网络。结果,在部署其他类型的自动化和编排系统之前,不断验证网络是有价值的第一步。在将来的帖子中,我将讨论网络验证如何帮助实现实际用例中的这些目标,以及如何与流量监控进行比较。