IBN · Tech

介绍基于意图的网络(IBN)

IBN的定义

网络业界的发展总是伴随着新技术的应用,五年前,数据中心是Ethernet Fabrics,后来是SDN,其核心理念是将转发与控制进行分离,以此提高网络的运行效率和网络的灵活性。目前是SD-WAN,随着SD-WAN的不断发展,网络领域最新的风口是基于意图的网络IBN(Intent based network)。

从广义上看SDN代表了一种新的网络思想,从狭义上看其就是一项网络转发技术。IBN似乎更像是一种网络架构,SDN和IBN是互补的,它们可以一起部署也能单独部署。它们有着一致的目的,就是帮助网络变得更加灵活。因此ONF组织为SDN发布了北向接口用于支持IBN。SDN更加专注于如何去控制网络,采用一种基于策略的声明式控制方法,而IBN专注于如何将应用的需求告诉网络而不是告诉网络怎样配置某个设备。

IBN本意是对网络进行抽象,隐藏细节,包括对各种协议配置以及管理维护,最终给用户体现为意图接口,用户只要说出需要网络做什么,而不是要手动配置OSPF/BGP/LDP各种协议,网络可以把对用户意图实现的结果反馈给用户,让用户知道网络的运行状态。

这是一种智能的拓扑结构,能够监控整体网络性能、识别问题并自动解决问题,而不需要人工干预。其真正技术内涵包括高级语言接口定义(描述用户意图)、基于获取的网络状态解释用户意图、网络自动运维,其中更是包含了AI等各种技术。业界认为IBN是对网络管理方式的一个重大转变。

2017年Gartner提出的关于IBN的定义,包括以下四个部分:

  • 转译和验证(Translation and Validation):系统从最终用户获取更高级别的业务策略(what),并将其转换为必要的网络配置(how),生成并验证最终的设计和配置以保证正确性。
  • 自动化实施(Automated Implementation):系统可以在现有网络基础设施上配置适当的网络变更,通过网络自动化或网络编排完成。
  • 网络状态感知(Awareness of Network State):系统为其管理控制下的系统提供实时(real-time)网络状态,并且是协议和传输不可知的。
  • 保障和自动化优化/补救(Assurance and Dynamic Optimization/Remediation):系统持续验证原始业务意图得到实现,并且可以在所需意图无法实现时采取纠正措施。

为什么需要IBN?

网络很复杂。管理网络一直以来是一个十分复杂的工作,网络工程师需要负责管理网络设备、提供用户权限、配置网络策略等等工作。根据Gartner的数据显示,75%的组织仍然通过手动操作来管理他们的网络,很多组织仍然使用最初的命令行界面(CLI)。CLI的缺点也很明显,因为缺少错误特定的返回代码,自动化工具还必须处理输入或输出文本中的偶尔错字。CLI通常与手动配置更改有关,这是造成企业网络中断的主要原因。

网络局限于数据传输的时代已经一去不返。现在,网络已成为应用程序开发和创新的平台。作为主要开发平台,网络需要灵活性来满足快速变化的业务和用户需求。自动化和编排通过简化网络运营和管理,帮助实现这种敏捷性。自动化网络的最简单方式是通过可编程性使用标准、低级 API 提供对网络设备乃至芯片级别的细粒度控制。用API替换CLI并不困难,较新的设备通常有了XML或JSON编码的REST接口支持CLI和API。可编程性对于实现网络感知的应用程序和应用程序感知的网络而言至关重要。网络可编程不在于各种接口和各种规范,而在于对于网络的抽象,能够真正体现出用户意图,通过消除手动配置来降低网络复杂性并提高自动化水平,它使得用户或管理员使用自然语言向物理网络发送一个简答的请求。例如,IT管理员可以请求IP语音应用程序提高语音质量,网络可以对此进行响应。再想象一下,有一家医院的网络拥有所有患者敏感的数据信息。通过IBNS,网络工程师能够要求只有医生和护士才能够访问这些患者信息,其他用户被禁止访问。IBNS可以自动地去识别医生的身份从而修改他们的访问权限策略。

简而言之,IBNS就是让网络工程师能够定义他们想要的网络,从繁琐的网络运维工作中解脱出来。不再仅仅去使用一些复杂繁琐的脚本,而是拥有一个自动化的网络管理平台和图形化的工具,实现网络变更。系统将会持续实时验证原始的业务意图是否已经被满足了,并且在没有达到预设的意图时可以执行改正的动作,形成一个持续闭环循环的系统(continuous closed-loop.),与传统方式相比它提升了网络的可用性和敏捷性。唯有持续闭环的系统才可以保证意图的有效性,才可以确保意图不会被突发的网络状况干扰。

今年夏天,思科 CEO Chuck Robbins 谈到基于意图的网络的业务优势,可以概括为三个主要方面:

  • 速度和敏捷: 随着网络的发展,在网络上开展的业务会越来越多。现在,人们刷信用卡就能启动一个云应用程序,这就要求网络做出回应。因此,非常重要的一点是,网络能迅速调整来满足这些需求,而且只需很少的人工干预。
  • 多任务的自动化:支持IT把工作重点放在实现业务价值上。目前,IT的很多时间都花在了不产生价值的任务上。我们可以在管理层实现很多任务的自动化,这使得IT能够更多地去从事给业务带来价值的工作。
  • 安全、合规和风险:利用自动化和算法验证配置,减少了出错的风险,可以更精细的分析网络。

IBN是如何工作的?

标准化、流程化是自动化的前提。将业务要求转换为复杂的意图,在此过程需要大量劳动力,包括漫长的设计和配置验证。更重要的是,复杂性通常使网络难以改变。传统网络已成为许多 IT 运营中的瓶颈。通过融入实时分析和持续验证业务要求,IBNS可快速分析当前形势。将用户的业务要求解释为意图,然后将意图转换为整个网络基础架构上的必要网络配置。如果未满足所需的意图,系统将立即采取纠正措施。

Intent-Based Networking: Top 10 Questions and Answers文章中,介绍了10个常见的问题,在第6条中简单的讲解了IBN具体是如何工作的。IBN是通过机器学习、数据分析以及网络团队确保系统的持续性运转。作为一个闭环系统,从一个理想的意图到最终的实现,需要通过下面的步骤:

  1. 定义/理解意图:理想的商业需求。
  2. 自动转译意图生成一系列的指定的网络配置变更(例如:修改ACLs,更新应用特定的协议等等)。
  3. 在下发修改配置到实际网络之前,需要验证这些变化的配置。
  4. 假设第3步骤成功,下发验证过的配置到实际网络中,否则回到第2步骤。
  5. 对实际网络进行周期性的快照,验证是否符合步骤1里定义的意图,形成一个闭环系统。

Verification and Intent-Based Networking: Closing the Control Loop

上图来自Verification and Intent-Based Networking: Closing the Control Loop 文章中,描述了IBN的最基本的系统框架。这和上面所描述的步骤基本一致,值得注意的是通常完整IBNS要在转译Translation后Implementation前要加上验证配置的步骤。当验证通过了,系统才会下发(deploy)配置到网络中。所以在整个闭环中,有两个地方需要验证Verification,一个是验证下发前的配置,另一个是根据现网的报文行为和动态网络的状态进行动态的验证。目的是为了验证实际网络状态是否和所期望的意图达成一致,形成闭环。

在传统的网络中,往往只是进行简单地监控(monitor),有许多不足的地方。在传统的系统中,网络监控广度和深度不足,所描述的信息和数据都是直接来自于底层设备的(low-level),而非用户期望的以规范化数据模型方式来表达。这对管理员的技能要求高,可用性保障困难。因为故障来源复杂(配置错误,软件故障,链路故障等),设备之间联系紧密, 并且存在故障扩散现象,整个系统缺乏有深度的全局网络数据视图。另外在网络中通常隐藏着许多隐患,往往发生特定的事件,我们才能发现这个故障。所以在IBN系统中,基于Telemetry这一网络遥测、实时监控的特性,能够全面地实时了解网络状态。Telemetry遥测的功能不仅仅能够获得数据流实时信息,而且能够获得实时的网络配置、流量统计、计数、报错、表项、环境、缓存等一些列信息。近期Google等云巨头推动 OpenConfig 的一个重要原因就是希望能够以单一标准化数据模型语言(YANG) 来定义数据和实时状态反馈(state streaming),其实就是数据定义加上 Telemetry 的特性。通过验证verification最后闭环这一步骤将low-level的设备数据与high-level的意图关联起来。网络的状态时时变化,执行时的状态与验证时的状态可能存在不一致,此时IBNS会主动地根据期望的状态对策略进行优化补救。

comments powered by Disqus