了解可编程的灵活 VXLAN 隧道
从 Junos OS 19.1R1 版开始,我们支持在以下数据中心环境中使用灵活的隧道:
实现一个或多个控制器。
使用虚拟可扩展 LAN (VXLAN) 作为叠加封装协议。
灵活的隧道功能支持 IPv4 和 IPv6 VXLAN 封装和解封装。
在这种环境中,一个或多个瞻博网络设备可以充当数据中心边缘网关,与数据中心内的主机连接。 图 1 显示了部署了一个控制器和一个 Edge 网关的简单拓扑。
借助数据中心环境中的控制器,您可以通过瞻博网络扩展工具包 (JET) API 将以下灵活的隧道组件编程到网关设备中:
静态 IPv4 或 IPv6 路由
隧道封装配置文件
隧道解封装配置文件
有关 JET API 的详细信息,请参阅 JET API 指南。
以下各节提供了有关灵活隧道的更多信息:
可编程柔性隧道的优势
数据中心环境中的控制器和 JET API 使您能够对网关设备中的大量灵活隧道进行编程。这种新方法使边缘网关能够与数据中心中的大量主机进行通信。
特定柔性隧道的隧道封装和解封装配置文件通常是分开的,不需要对称。特定数据中心主机的静态路由映射到封装配置文件,发往该主机的流量封装在不同的隧道中。但是,解封装不与特定的静态路由相关联。因此,来自一个或多个数据中心主机且与解封装配置文件中的属性匹配的流量可以聚合到单个隧道中。这种机制可减少解封装配置文件,更有效地利用现有配置文件和灵活隧道。
可编程的灵活隧道、灵活的路由和隧道剖面
图 2 显示了我们支持灵活隧道的示例拓扑。在此拓扑中,数据中心边缘网关与使用 VXLAN 的数据中心中的虚拟机 (VM) 连接。通过介入的 IPv4 或 IPv6 网络通过隧道传输第 3 层流量时,网关设备和管理虚拟机的虚拟机管理程序或其他专用设备也充当虚拟隧道端点 (VTEP)。VTEP 使用 VXLAN 报头封装数据包,从数据包中删除或解封装报头,然后转发数据包。
要支持灵活隧道,需要以下组件:
网关设备上的灵活隧道接口,即支持 IPv4 和 IPv6 系列的第 3 层逻辑接口。要配置灵活的隧道接口,必须在层次结构级别使用
[edit interfaces unit logical-unit-number]
和tunnel
family
节。有关更多信息,请参阅灵活隧道接口概述。灵活的路由,由以下内容组成:
一种静态路由,除其他属性外,它还指定隧道封装配置文件。
一种隧道封装配置文件,除其他属性外,还指定灵活的隧道接口。
隧道解封装配置文件,通常独立于封装配置文件,并指定封装配置文件所需的属性子集。
您可以使用 rib.service.proto API 文件对静态路由进行编程并将封装配置文件映射到路由,并使用 flexible_tunnel_profile.proto API 文件完整定义封装配置文件。
您可以使用 flexible_tunnel_profile.proto API 文件完全定义解封装配置文件,并使用 flexible_tunnel_service.proto API 文件执行这些配置文件的批量添加、修改和删除。 flexible_tunnel_service.proto API 文件还包括用于查看特定解封装配置文件的参数。
有关 JET API 文件的完整信息,请参阅 JET API 指南。
要在瞻博网络网关设备上显示有关隧道封装和解封装配置文件的信息,可以使用 显示路由详细信息 和 显示路由扩展 命令。要显示有关解封装配置文件的信息,可以使用 显示灵活隧道配置文件 命令。
路由和路由表
与隧道封装和解封装配置文件关联的路由具有不同的用途,因此存储在网关设备上的不同路由表中。 表 1 提供了隧道配置文件、与配置文件关联的路由以及路由表的摘要。
隧道剖面 |
路线 |
路由目的 |
路由表 |
笔记 |
---|---|---|---|---|
隧道封装配置文件 |
灵活的路由(静态路由和映射的隧道封装配置文件) |
用于将流量转发到数据中心的主机。 |
由 API 配置确定的路由信息库 (RIB) 或路由表。 |
– |
隧道解封装配置文件 |
自动生成的内部路由 |
用于将解封装配置文件关联到路由,以便可以将其下载到内部路由表。 |
名为 __flexible_tunnel_profiles__.inet.0 的内部路由表 |
从数据中心主机接收到封装数据包后,此路由表提供了一种实现解封装配置文件查找并将特定数据包与解封装配置文件进行匹配的方法。 |
如果执行详细的故障排除,了解解封装配置文件和内部路由之间的映射会很有帮助。 显示灵活隧道配置文件 命令在路由前缀字段中显示内部路由。
灵活的隧道流量
灵活隧道功能支持以下常规 IPv4 和 IPv6 流量:
当网关设备收到目标地址与路由表中的灵活路由匹配的数据包时,该设备将充当源 VTEP 并执行以下操作:
根据封装配置文件中指定的参数封装数据包。封装参数包括但不限于封装类型、源前缀、目标地址、灵活的隧道接口和 VXLAN 网络标识符 (VNI)。
通过封装配置文件中指定的灵活隧道接口将数据包转发到目标虚拟机。
实现在灵活隧道接口上配置的输出功能,例如统计数据、采样、镜像和过滤器。
当网关设备收到内容与解封装配置文件匹配的封装数据包时,设备将充当目标 VTEP 并执行以下操作:
解封装数据包。
实现在灵活隧道接口上配置的输入功能。
通过解封装配置文件中指定的灵活隧道接口将数据包转发到目的地。
准备网关设备
在使用 JET API 对灵活隧道进行编程之前,必须使用以下命令在网关设备上启用 gRPC 远程过程调用 (gRPC):
set system services extension-service request-response grpc ssl
启用 gRPC 后,网关设备已准备好通过安全连接接收来自 JET 应用程序的路由和隧道服务请求。
有关准备网关设备以与 JET API 交互的完整信息,请参阅 JET API 指南。
了解灵活的隧道行为
关于灵活隧道功能,请记住以下几点:
如果静态路由映射到尚未配置的灵活隧道接口,则在配置接口之前,路由将保持非活动状态。
如果一个或多个灵活路由映射到已删除的灵活隧道接口,则灵活路由将变为非活动状态,并从数据包转发引擎中删除。
如果灵活隧道接口出现故障、尚未配置或处于脱机状态,则需要封装或解封装的流量将被正常丢弃。
每个静态路由必须映射到一个隧道封装配置文件。换句话说,静态路由和封装配置文件之间应该有一对一的对应关系。我们不支持将两个或多个静态路由映射到同一封装配置文件。
如果使用 flexible_tunnel_service.proto API 文件添加或更改隧道解封装配置文件,并且与其他解封装配置文件发生冲突,则操作将失败,并提供错误消息。当以下参数的一个或多个值相同时,两个解封装配置文件之间会发生冲突:
UDP 目标端口
源前缀
源前缀长度
VNI
灵活的隧道限制
灵活隧道功能具有以下限制:
我们不支持在存储灵活路由的路由表上进行源查找功能,包括但不限于反向路径转发 (RPF) 和 MAC 地址验证。
每个灵活路由都有一个隧道封装配置文件作为下一跃点,而不是一个 IP 地址。因此,我们不支持跨封装配置文件的下一跃点功能,包括但不限于负载平衡。
灵活隧道不具备控制平面功能。也就是说,协议和其他控制平面功能不能通过这些隧道运行。相反,转发平面处理灵活的隧道。
更改历史记录表
功能支持由您使用的平台和版本决定。使用 功能资源管理器 确定您的平台是否支持某个功能。