3. 意图建模与表达
意图驱动网络的核心难点并不在于“能不能下发配置”,而在于如何把一句模糊的业务诉求,稳定地翻译成设备可执行、可验证、可回滚的策略集合。意图建模与表达正是承担这一翻译职责的中间层。它向上承接业务语言,向下对接 YANG 模型、NETCONF/RESTCONF 接口与策略引擎,是整条自动化链路中语义最密集的一环。
3.1 意图的抽象层级
同一个业务目标,可以在不同抽象层级上被表达。理解层级划分,是判断“这条意图是否可自动化”的前提。通常可划分为四层:
- 业务意图层:用自然语言或接近自然语言的句式描述目标,例如“财务部访问核心数据库的时延不超过 20ms,且不允许被非授权终端访问”。这一层关注“为什么”和“要什么”,不涉及任何设备细节。
- 服务意图层:把业务目标结构化为可判定的服务契约,明确对象、约束、度量与优先级,例如“源区域=财务VLAN、目的=DB-Segment、SLA=时延≤20ms、安全=仅允许财务终端”。
- 策略意图层:将服务契约映射为与厂商无关的策略语义,如“在财务与数据库之间建立高优先级转发路径,并附加拒绝其他源的 ACL 语义”。
- 设备配置层:最终落地为具体设备上的 QoS 队列、ACL 规则、路由策略或 VXLAN 映射,例如在核心交换机上配置 DSCP EF 标记与队列调度权重。
层级越低,越接近设备;层级越高,越接近业务。意图建模的关键,是在高层保留业务语义的同时,保证低层具备可执行性。若意图只停留在业务层,自动化系统无法判断“是否达成”;若直接跳到配置层,则失去跨厂商、跨拓扑的复用能力。
3.2 常见意图描述语言
目前业界并没有统一的“意图语言标准”,而是形成了三类互补的表达方式。
NEMO(Network Modeling Language)偏向声明式建模,强调用对象、属性、关系描述网络期望状态。它适合表达“网络应该是什么样”,例如定义一组节点、链路及其约束条件,再由引擎求解满足约束的配置。NEMO 的优势在于模型清晰、便于形式化推理,适合作为意图冲突检测的输入。
YANG是 IETF 标准的数据建模语言,本身不是意图语言,但它是意图落地的重要载体。YANG 通过 module、container、list、leaf 等结构定义设备数据模型,配合 NETCONF/RESTCONF 实现配置下发与状态读取。实际工程中,策略意图层往往先映射为厂商中立的 YANG 模型,再通过适配层转换为具体厂商模型。例如,用 ietf-qos 相关模型表达队列调度,用 ietf-acl 表达访问控制。
Intent DSL是面向意图的领域特定语言,通常以更接近自然语言的语法描述目标与约束。例如:
intent "finance-to-db" {
from: zone(finance)
to: zone(db)
guarantee: latency <= 20ms
priority: high
security: allow only zone(finance)
}
这类 DSL 的价值在于可读性与可校验性:业务人员能读懂,引擎能解析为策略图,并据此生成配置或检测冲突。它通常与 NEMO、YANG 配合使用——DSL 负责表达,NEMO/YANG 负责建模与落地。
3.3 意图与策略的关系
意图与策略不是同义词。意图回答“要达成什么”,策略回答“通过什么规则达成”。一条意图可以对应多条策略,一条策略也可能服务于多条意图。二者之间是“目标—手段”的映射关系,而非一一对应。
以“财务访问数据库时延≤20ms”为例,其意图是时延约束,而实现策略可能包括:在接入层标记 DSCP、在汇聚层匹配并提升队列优先级、在核心层为对应流量预留带宽、在防火墙放行特定源。这些策略共同支撑同一条意图。反过来,若某条 ACL 策略同时被“财务访问数据库”和“审计访问数据库”两条意图引用,则它服务于多个目标。
因此,意图建模必须维护一张映射表:意图 ID、约束条件、关联策略、生效范围、验证指标。这张表是后续冲突检测与闭环验证的基础。
3.4 意图冲突检测基础
当多条意图同时下发时,冲突几乎不可避免。常见冲突类型包括:
- 资源冲突:两条意图争抢同一链路的带宽或同一队列资源,例如“视频会议优先”与“备份流量优先”同时作用于同一出口。
- 语义冲突:一条意图要求放行,另一条要求拒绝,例如安全意图拒绝某源,而业务意图又要求该源可达。
- 优先级冲突:两条意图都声明 high 优先级,但资源不足以同时满足。
- 范围冲突:意图的作用域重叠但约束方向相反,例如一条要求 VLAN 10 走路径 A,另一条要求 VLAN 10 走路径 B。
冲突检测的基本思路,是把意图转换为可比较的约束表达式,再在相同作用域内做一致性检查。工程上通常分三步:第一步,归一化,把不同 DSL 或自然语言意图统一为“对象—约束—度量—优先级”四元组;第二步,作用域求交,找出对象集合与作用范围重叠的意图对;第三步,约束求解,判断是否存在同时满足所有约束的解。若不存在,则标记冲突并给出冲突意图对与冲突维度。
下面这张图展示了从业务意图到策略落地、再到冲突检测的完整语义链路。它把抽象层级、描述语言与冲突检测放在同一视图中,便于理解各环节的输入输出关系。
从图中可以看出,意图建模不是单点动作,而是一条从业务层到设备层、再通过冲突检测反馈回建模层的闭环。实际工程中,建议把意图 ID、四元组、关联策略、冲突记录统一存入意图库,使每一次下发都可追溯、可审计、可回滚。这样,意图才真正成为可运营的网络资产,而不仅是一段描述性文字。