【论文阅读】基于意图的网络(Intent-Based Networking,IBN)研究综述

news2024/9/22 17:28:56

IBN研究综述

  • 一、IBN体系结构
    • 1.1 体系结构:
    • 1.2 闭环流程:
    • 1.3 IBN的自动化程度(逐步向前演进):
  • 二、IBN 的实现方式
    • 2.1 意图获取:
      • 2.1.1 YANG、NEMO
      • 2.1.2 Frenetic、NetKAT、LAI
    • 2.2 意图转译:
      • 2.2.1 iNDIRA系统
      • 2.2.2 基于模板的策略生成方法
      • 2.2.3 P4 代码模板库的方法
      • 2.2.4 基于案例学习的方法
      • 2.2.5 OpenFlow 流表规则
    • 2.3 对于策略的可执行性验证
    • 2.4 策略下发与执行
    • 2.5 实时反馈
      • 2.5.1 网络的状态信息实时监控
      • 2.5.2 网络策略转发行为的实时监控
  • 三、IBN的应用
  • 四、难点
  • 五、评价

原文链接:软件学报jos.org.cn/jos/article/abstract/6088

随着互联网规模不断增大,网络管理和运维变得极其复杂,基于意图的网络可帮助实现网络自治。它并非一个新技术,而是一种理念,通过意图的概念为网络管理提供一个更高级的抽象。IBN是SDN(软件定义网络)的进化,目前 IBN大多在 SDN 环境下实现。
【目前技术尚不成熟,各环节间缺乏统一的接口
规范,目前尚无 IBN 的落地项目】

一、IBN体系结构

1.1 体系结构:

在这里插入图片描述

1.2 闭环流程:

在这里插入图片描述

  • 意图获取-自然语言解析识别
  • 意图转译-AI 智能策略选取技术
  • 策略验证-网络自动化验证和形式化验证
  • 意图下发与执行- OpenFlow协议、P4数据平面编程语言等技术
  • 网络状态信息的实时反馈及优化-实时感知网络状态,分析意图是否成功实现

1.3 IBN的自动化程度(逐步向前演进):

a.) 全面自动化网络:能够实现绝大部分业务发放、网络部署和维护的自动化,并实现较全面地网络状态感知与局部地机器决策;
b.)自优化网络:能够实现深度地网络状态感知,自动网络控制,满足用户网络意图;
c.)部分自治网络:在特定的环境,不一定需要人参与决策,能够实现自主调整网络状态;
d.)全面自治网络:在不同网络环境、网络条件,网络均能自动适应、自主调整,满足用户的意图.

目前,用户意图实现的自动化程度与意图实现的场景成反比关系,也就是说一个意图要想完全自动化实现,那么它可能就只适用于一个特定的场景。

所以要权衡自动化程度和场景适配性。

二、IBN 的实现方式

2.1 意图获取:

用户输入方式:自然语言、语音输入、GUI,以及下面的各种特定语言。
虽然相比于使用自然语言描述意图,这些特定语言的抽象级别较低,但是在特定的环境下它们一样可以具有丰富的语义。在今后的研究中,可以采用由自然语言向 DSL转译的方法实现用户的意图。

2.1.1 YANG、NEMO

  • 为提供一种通用的抽象的策略语法,方便用户描述自己的意图,OpenDayLight使用 YANG 数据建模语言为服务和数据建模,提供了开放的北向接口与一些与北向接口有关的组件。
  • 同样的,华为在推出了一种基于意图的北向接口NEMO(Network Model)语言,使用了DSL(Domain Specific Language)的抽象网络模型以及结论性的操作模式。

2.1.2 Frenetic、NetKAT、LAI

以下 3 种语言都是基于 DSL 设计的,其中 Frenetic 和 NetKAT更偏向为一种编程语言,需要一定的专业知识,而“LAI”不要太多的专业知识就可以描述 ACL 意图。

  • 为隐藏 SDN 中网络元素的各种底层细节,Frenetic语言是一种针对 SDN 北向接口的函数型编程语言,提供类似 SQL 的语法结构对 SDN 应用进行开发,它的重点在于使用高级别抽象的形式在描述报文的转发规则。
  • NetKAT语言同样也是一种面向 SDN 的函数型编程语言,它提供简单的原语来描述下层交换机的转发行为以及网络结构,而它的严格数学证明也为网络的验证工作提供方便。
  • 为生成并维护 ACL(Access Control List),“LAI”意图语言提供了 scope、modify、check等几种原语描述用户对于内网 ACL 的意图需求。例如当需要在 ACL 上添加一条“A 可以连通 B”的意图,便可以使用以下语句来描述该意图。
scope A*,
B* allow A*,
B* control A->B check fix

2.2 意图转译:

意图转译就是将用户意图转化为相应的网络配置策略,目前主要用到的方法是nlp。在这一环节,需要对用户意图进行关键字提取、词法分析、语义挖掘等操作,从而获得用户期望的网络运行状态,并使用智能化的方法生成网络策略。以下是几种方法。

2.2.1 iNDIRA系统

iNDIRA系统利用nlp本体论的方法,在 SDN 的控制平面和应用之间实现了意图转译模块。该模块将用户输入的自然语言处理为 RDF 图,并自动生成网络策略或配置命令。
以意图“I want to connect A to B with high
speed now.”为例,其具体实现过程为:
①使用自然语言处理、机器推理等方法,去掉无效信息(I、want、to ),提取关键信息(connect、A、B 等)
②利用处理得到的信息将意图映射为 RDF图(Resource Description Framework),并利用网络拓扑信息等将 RDF 图中的参数实例化
③编写程序对 RDF 图进行处理,生成网络策略或配置命令。
在这里插入图片描述

2.2.2 基于模板的策略生成方法

系统预先定义网络策略库,将不同类型的网络策略存储在策略库中。当用户意图输入时,即可使用自然语言处理的方法获取关键信息,并根据策略库映射为相应的网络策略。

2.2.3 P4 代码模板库的方法

将用户意图映射为 P4 代码。

2.2.4 基于案例学习的方法

通过用户意图的不断输入,系统将不断学习意图的特征,并生成相应的策略。由于该方法需要大量的数据支撑,所以该方法在初始阶段的效率可能不理想。

2.2.5 OpenFlow 流表规则

在 SDN 环境下设计一组封装好的意图接口,用户直接输入意图就可自动生成相应的 OpenFlow 流表规则,从而下发到实际网络.

2.3 对于策略的可执行性验证

得到网络策略后、下发策略前,需进行可执行性验证,主要考虑可用性、冲突、正确性这三个方面。

1. 可用性:维护一个网络状态信息的数据库,查看当前策略所需要的网络资源是否可用、是否足够。

2. 冲突验证:根据策略匹配域的相交关系以
及策略执行的动作给出几种策略的冲突关系: 冗余、覆盖 、泛化、相关、重叠。如果流规则冲突,则先保证优先级高的策略被实现。具体而言,在SDN 环境下,FlowChecker 将 OpenFlow 流表规则编码为二元决策图,在单一状态机内对网络行为建模,用基于二元决策图的符号模型检测时序逻辑来识别流规则冲突引发的配置错误;VeriFlow通过对流表规则进行等价类划分以实时检查插入的流规则是否违反网络约束如访问控制规则、路由环路等。

3. 正确性: 验证策略下发到实际网络是否按照预期实现,主要采用形式化验证的方法(数模证明,方法主要有模型检查、定理证明、符号执行、SAT/SMT 求解器)。一般流程为:通过形式化建模语言(如 datalog、alloy),将策略建模为形式化模型,用求解器(如 Z3 求解器)判断策略是否可以正确实现。
例如,“FLOVER”系统使用 Yices2 作为求解器,将匹配域为{Src IP:5,Dst IP:6,Src Port:0~19,Dst Port:0~19},动作为{drop}的 OpenFlow 流规则转化为如图 4 所示的 Yices2 输入形式,并把网络底层安全属性按照同样的方式进行建模,最后将流规则和安全属性的形式化描述带入到求解器中进行求解,求解器将自动分析它们的关系并返回验证结果。
在这里插入图片描述

2.4 策略下发与执行

首先将网络策略(如网络遥测任务)编译为相应的 P4 编程语言代码,之后对可编程交换机内部的转发逻辑进行编程配置,使用配置综合的方法生成设备的配置文件从而实现策略的下发与执行工作,从而使网络设备按照预期对数据进行处理。
例1: BGP 配置(仅支持BGP协议):用户表明对于流量的高级约束,并使用正则表达式和有限状态自动机表达流量的传输路径,之后利用系统的编译器将这些约束综合为相应路由器的 BGP 配置。
例2:网络配置(支持静态路由、OSPF、BGP 三种路由协议):将网络配置问题描述为分层次的 Datalog 问题,并使用 SMT 求解器对用户需求进行配置综合从而生成相应的配置文件。
例3:NetComplete(支持静态路由、OSPF、BGP 三种路由协议),求解速度要优于 Synet 并且更易于拓展到大型网络上。

2.5 实时反馈

2.5.1 网络的状态信息实时监控

在策略下发到实际网络后,需要对网络的状态信息进行实时监控,并进行适当的优化与调整,确保网络的转发行为符合用户意图,保证网络始终满足意图需求。网络状态监控主要使用 NetFlowSFlow。除此以外还有INT技术以及基于INT的优化。
(1)NetFlow 时间长,无法满足 IBN 对网络状态实时监控的需求
(2)SFlow 时间短,但准确性低,无法确保 IBN 可以正确满足用户意图。
(3)基于 P4 语言的技术——带内网络遥测(In-band Network Telemetry, INT)INT 允许数据包查询交换机内部状态,但只能监控一条指定链路上网络状态,无法实现整个网络域内的状态感知。
(4)INT-path,使用基于源路由的方法向网络域内发送 INT 数据包,获取所有交换机的状态,进而可以感知整个网络域内的网络状态,可为 IBN 提供实时、准确的网络状态感知。

2.5.2 网络策略转发行为的实时监控

探针 方法:通过向数据平面注入探针,根据探针的转发行为来判断数据平面是否按照相应的策略转发数据包,判断用户意图是否正确实现。
例1:Symnet 是一个基于符号执行的数据平面验证工具,通过向网络注入符号数据包来对网络进行建模,并静态地分析网络的行为是否满足用户的意图。
例2:Minesweeper 将稳定的网络状态编码为可满足约束形式,实现了对于数据平面的全覆盖验证。如果用户意图没有正确实现或者在网络运行期间被意外改变,应及时向上层反馈信息,根据当前的网络状态对用户意图进行重新转译、编排。

三、IBN的应用

特点:灵活、智能、自动化
应用:网络测量、网络业务编排、工业互联网领域(工厂的智能组网、实时监测工厂网络状态)、数据中心网络(在链路数量多、网络拓扑复杂的情况下实现智能管理和监测,快速修复网络故障)

四、难点

没有统一架构;意图分析、意图转译没有统一的实现方法,没有接口;策略的验证的全面性缺乏,需要集成,且方式各有优缺点(如形式化验证的状态空间爆炸);部署问题(有不兼容的协议、逐步部署的顺序等);跨域通信(全局网络信息难以获取);实时收集信息用以全局优化;网络安全问题

五、评价

这篇文章是我了解自动化网络部署的第一篇文章,正好找着一篇意图网络的综述,比较通俗易懂,但是在总结各个技术的时候又比较全面,很适合阅读。个人而言,这篇文章对我启发最大的是整个流程以及最后的研究展望,难点总结也十分到位,有一些我没有想到的IBN目前存在的问题也表述出来了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/343074.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

GIT命令操作大全

文章目录一、前言二、工作模块2.1 Workspace:工作区2.2 Index / Stage:暂存区2.3 Repository:本地仓库2.4Remote:远程仓库三、GIT基本配置四、GIT项目代码管理4.1 初始化git仓库4.2 提交到暂存区(stage)4.3 将暂存区的文件恢复到工…

解决HC-05/HC06等蓝牙模块的调试问题

解决HC-05/HC06等蓝牙模块的调试问题问题:1.无法使用USB转串口工具设置HC-05等蓝牙模块,具体问题是:发送AT指令,无回复;2.电脑如何连接HC-05模块,与模块通信(具体场景:HC-05模块的串…

python学习之pyecharts库的使用总结

pyecharts官方文档:https://pyecharts.org//#/zh-cn/ 【1】Timeline 其是一个时间轴组件,如下图红框所示,当点击红色箭头指向的“播放”按钮时,会呈现动画形式展示每一年的数据变化。 data格式为DataFrame,数据如下图…

数据结构——TreeMap、TreeSet与HashMap、HashSet

目录 一、Map 1、定义 2、常用方法 3、注意 二、TreeMap 三、HashMap 1、定义 2、冲突定义 3、冲突避免方法——哈希函数设计 (1)、直接定制法(常用) (2)、除留余数法(常用) (3)、平方取中法 &…

kubectl命令控制远程k8s集群(Windows系统、Ubuntu系统、Centos系统)

文章目录1. 本地是linux2. 本地是Windows1. 本地是linux 安装kubectl命令 法一:从master的/usr/bin目录下拷贝kubectl文件到本机/usr/bin目录下法二:GitHub下载kubectl文件 在家目录下创建.kube目录config文件 法一:将master上对应用户的~/.…

binlog、redolog、undolog

目录 一、binlong 1、binlog介绍 作用 特点 2、日志格式 3、写入流程 二、redo log 1、redo log作用 2、redo log如何写入 3、怎么提交数据进行刷盘 4、奔溃恢复流程 三、undolog 一、binlong 1、binlog介绍 作用 binlog是 mysql server 层的一种二进制日志&…

GA-PEG-GA,Glutaric Acid-PEG-Glutaric Acid,戊二酸-聚乙二醇-戊二酸供应

英文名称:Glutaric Acid-PEG-Glutaric Acid,GA-PEG-GA 中文名称:戊二酸-聚乙二醇-戊二酸 GA-PEG-GA是一种线性双功能PEG羧酸试剂。PEG和羧基COOH之间存在C4酯键。PEG羧酸可用于与氨基反应,与NHS和DCC、EDC等肽偶联试剂反应。 P…

CUDA原子操作|参加CUDA线上训练营

什么是原子操作 CUDA的原子操作可以理解为对一个Global memory或Shared memory中变 “读取-修改-写入” 这三个操作的一个最小单位的执行过程,在它执量进行行过程中,不允许其他并行线程对该变量进行读取和写入的操作。 基于这个机制,原子操…

实测2023款哪吒U-II,智驾功能对女司机很友好

最近,我们受邀试驾了2023款哪吒U-II。这是一款A级新能源SUV,是哪吒U的改款车型。哪吒U系列自2020年3月上市到2023年1月,累计销售数量达76688台,也因此被称为15万级智能天花板。2023款哪吒U-II的一大亮点是:针对以往哪吒…

react基础,操作属性样式事件。事件处理this指向问题,及案例

1.1 React 起源于 Facebook 于2013年5月开源. 是一个用于构建用户界面的 JavaScript 库, 与vue,angular并称前端三大框架&#xff0c;现在最新版本是18 特点&#xff1a;-数据驱动&#xff08;操作数据&#xff09; - 组件化 - 虚拟DOM 开发环境&#xff1a; cdn引入js <…

Theano教程:Python的内存管理

在写大型程序时候的一大挑战是如何保证最少的内存使用率。但是在Python中的内存管理是比较简单的。Python显示分配内存&#xff0c;使用引用计数系统管理对象&#xff0c;当指向某一个对象的引用数变为 0 的时候&#xff0c;该对象所占的内存就会被释放。理论上听起来很不错&am…

Linux基础语法进阶版

Linux基础语法 查看文件内容指令 touch 主要是修改文件时间&#xff0c;多用创建文件 -a #只更改访问时间 -m #只更改修改时间 -c --no-create#不创建任何文件cat 展示小文件内容 -b #对于非空输出行编号 -n #对于所有行输出编号 -E #在每行结束处显示"$" -A #展示所…

全国重点城市春节商圈客流数据来了,最火爆商圈果然是它 | 数说热点

作为疫情防控政策进一步放开后的首个春节&#xff0c;在“返乡潮”、“出游潮”和各地促销费政策的刺激下&#xff0c;火热强劲且亮点纷呈的线下消费市场随烟火气再次回归。那么2023年春节&#xff0c;线下消费市场呈现出哪些特点&#xff1f;全国各大购物中心在引客流聚人气方…

Java开发学习(五十)----MyBatisPlus快速开发之代码生成器解析

1、代码生成器原理分析 造句: 我们可以往空白内容进行填词造句&#xff0c;比如: 在比如: 观察我们之前写的代码&#xff0c;会发现其中也会有很多重复内容&#xff0c;比如: 那我们就想&#xff0c;如果我想做一个Book模块的开发&#xff0c;是不是只需要将红色部分的内容全部…

uni-app②

文章目录二、微信小程序简介&#xff08;一&#xff09;文档相关开发者工具使用小程序代码构成小程序基本操作三、uniapp 开发规范uniapp 开发环境开发工具下载 HBuilderX工程搭建项目运行浏览器运行四、组件基础组件基础组件列表组件公共属性集合扩展组件自定义组件UNI-ICON五…

MyBatis笔记【JavaEE】

1.MyBatis是什么 持久层框架 【也是一个ORM框架 对象关系映射】 是一个优秀的ORM持久层框架 特点&#xff1a;灵活 支持自定义SQL、存储过程以及高级映射。MyBatis去除了几乎所有的JDBC代码以及设置参数和获取结果集的工作。MyBatis可以通过简单的XML或注解来配置和映射原始类…

分布式缓存服务DCS-企业版性能更强,稳定性更高

背景介绍 近年来&#xff0c;随着各行业业务需求急速增加&#xff0c;数据量和并发访问量呈指数级增长&#xff0c;原来只能依附于关系型数据库的传统“缓存”逐渐难以支撑上层业务&#xff0c;开源Redis也面临着如“容量有限”、 “可靠性有限”、 “数据重复拷贝&#xff0c…

GeniE 实用教程(二)几何与网格

目 录一、前言二、Guiding Geometry2.1 Guide Point2.2 Guide Line2.3 Guide Plane2.4 Polyline三、Structure3.1 结构梁3.2 结构板3.1 结构壳四、Mesh4.1 网格属性4.2 网格划分4.3 查看网格五、参考文献一、前言 SESAM &#xff08;Super Element Structure Analysis Module&a…

操作系统(day08)内存

存储单元 内存的几个基本概念 存储单元 内存地址从0开始&#xff0c;每个地址对应一个存储单元 存储单元大小根据计算机按照什么方式编址 按字节编址 则每个存储单元大小为一字节&#xff0c;即1B&#xff0c;即8个二进制位按字编址 看这个计算的字长是多少位&#xff0c;如…

一到重要时刻就大脑空白?

很多人可能都经历过这样一幕&#xff1a;花了好多精力准备的一场考试、面试、演讲&#xff0c;到了上场的那一刻&#xff0c;之前准备的东西全都忘了&#xff0c;大脑一片空白。为什么会这样呢&#xff1f;我们所学到的东西都要经过三个步骤才能成为记忆&#xff1a;获取&#…