Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

静态路由

总结 瞻博网络云原生 Contrail 网络 (CN2) 23.1 版支持群集的静态路由。本文介绍如何为 CN2 群集配置静态路由。

了解静态路由

当网络不需要动态路由协议的复杂性时,您可以使用静态路由。在路由和转发表中作为永久固定装置的路由通常配置为静态路由。来自剩余网络的内部流量受益于静态路由。

路由由目标前缀和下一跃点转发地址组成。静态路由在路由表中被激活,并在可访问下一跃点地址时插入转发表。与静态路由匹配的流量将被转发到指定的下一跃点地址。

CN2 中的静态路由

CN2 通过以下两个自定义资源 (CR) 实施静态路由:
  • RouteTable:包含用户定义的下一跃点目标 (nextHop),以及用于识别下一跃点流量的目标前缀。该 nextHop IP 地址必须是另一个 VMI 对象的 IP 地址。前缀定义用作匹配流量的下一跃点的目标网络。A RouteTable 允许您定义静态路由。您可以将 A RouteTable 与虚拟网络 (VN) 关联。以下是 CR 的示例 RouteTable

    请注意,字段nextHopType必须具有值ip-address。任何其他值都会导致用户输入错误。该communityAttributes字段允许您通过 BGP 控制路由学习。
  • InterfaceRouteTable:为 InterfaceRouteTable 虚拟机接口 (VMI) 配置静态路由。一个 InterfaceRouteTable 包含目标前缀,无需下一跃点条目。与使用时一 RouteTable样,前缀定义目标网络或下一跃点。 RouteTable与 , 您不需要定义 nextHop IP 地址,因为当关联 VMI InterfaceRouteTable 时,关联的 VMI 充当此前缀的下一跃点。

    以下是 CR 的示例 InterfaceRouteTable

    请注意,字段nextHopType必须具有值ip-address。任何其他值都会导致用户输入错误。
这些 CR 的范围限定在各自的命名空间,使您能够为静态路由配置所需属性。

为虚拟网络配置静态路由

配置 CR 以 RouteTable 将静态路由应用于 VN。VN 在其规格中引用了一个 RouteTable 。因此,与 RouteTable 该 VN 关联并配置了静态路由。下面是一个 VN 对象,带有关联的 RouteTable

为 VMI 配置静态路由

配置 an InterfaceRouteTable 以将静态路由应用于 VMI。VMI 在其 InterfaceRouteTableReference部分引用了一个 InterfaceRouteTable。下面是一个引用了 InterfaceRouteTable以下内容的 VMI 对象:

在 Pod 接口上配置静态路由

您可以使用 Pod 清单的注释部分为 Pod 的默认接口或辅助接口配置静态路由。Pod 协调器处理注释部分,以创建具有关联的 InterfaceRouteTableVMI 对象。协调器在注释部分查找字符串密钥:“core.juniper.net/interface-route-table”。Pod 的 VMI 使用该字符串作为元数据标签,与 。 InterfaceRouteTable

以下是为默认接口定义的 Pod 清单 InterfaceRouteTable 的示例:

以下是为辅助接口定义的 Pod 清单 InterfaceRouteTable的示例: 请注意, name对于主接口 InterfaceRouteTablevmi-rtname对于辅助接口是 vn-route。在同一中定义两 InterfaceRouteTables个不同 names接口会自动为该 Pod 的主接口和辅助接口创建一个 InterfaceRouteTablenamespace

为具有 NAD 的虚拟网络配置静态路由

您还可以在网络附件定义 (NAD) 对象中指定静态路由属性。协调或应用 NAD 后,将创建 a RouteTable ,由此产生的 VN 对象引用该 RouteTable。以下是定义的静态路由信息 NAD 的示例:

Pod 接口上的多个静态路由

您可以使用InterfaceRouteTable,它们将多个静态路由关联到单个 Pod 接口 (VMI)。这意味着该 VMI 对象有多个默认的下一跃点目标,具体取决于 IP 前缀。您可以使用群集服务版本 (CSV) 语法或 JSON 语法annotations指定多个InterfaceRouteTable参考。

注意:

引用时 InterfaceRouteTable 必须采用“命名空间/名称”格式。在以下示例中, static-route 是命名空间和 to-rightto-zone-1 ,是 InterfaceRouteTable VMI 的对象或下 left-vn 一跃点目标。

以下示例包含 Deployment 多个 InterfaceRouteTable 参考:

以下示例是一个使用 JSON 语法的多个 InterfaceRouteTable 引用的 Pod 清单:

注意:

您必须在 JSON 语法中使用向后斜杠。要将 JSON 字符串编码在另一个 JSON 字符串中,需要向后斜杠。

路由表和接口RouteTable 故障排除

以下部分包含对各种 RouteTable 问题和 InterfaceRouteTable 问题进行故障排除时的有用命令。

配置平面验证

  • 验证和对象的状态RouteTableInterfaceRouteTable

    • 检查对象的协调器 InterfaceRouteTable 状态。

    • 检查对象的协调器 RouteTable 状态。

  • RouteTable验证相关 VN 中的参考。InterfaceRouteTable验证关联 VMI 中的参考。

    • 检查 VMI 协调器的状态。您应该会看到 InterfaceRouteTable VMI 中带有关联的通用唯一标识符 (UUID) Contrail FQ(元信息,如 apiversionkindnamespacename)名称。

数据平面验证

  • 在内省中,使用以下步骤验证 VN 的 VRF 是否显示一行,该行具有 RT 中指定的匹配静态路由前缀:

  • 在内省中,验证 VN 的下一跃点属性是否有效。在内省中,前缀的下一跃点列应包含以下内容:
    • 下一跃点接口名称必须是有效的分路接口。

    • 必须是 label 正整数。

    • resolved 必须为 true

    • route-type: 必须为 InterfaceStaticRoute