本页面介绍了 spoke 过滤条件、导入和导出 spoke 过滤条件的含义、每种 spoke 类型支持的过滤条件,并提供了有关如何使用 spoke 过滤条件的示例。
Spoke 过滤条件
Network Connectivity Center 有两种类型的 spoke 过滤条件:
导出过滤条件:导出过滤条件控制以下内容:
导入过滤条件:导入过滤条件控制混合 spoke 从 hub 导入哪些子网路由和动态 路由。
下表展示了每种过滤条件支持的 spoke 类型。
| Spoke 类型 | 导出过滤条件 | 导入过滤条件 |
|---|---|---|
| VPC spoke 提供方 VPC spoke |
包含导出范围(IPv4 和 IPv6) 排除导出范围(IPv4 和 IPv6) |
包含导入范围 排除导入范围 |
| 路由器设备混合 spoke |
包含导出范围(仅限 IPv4) 排除导出范围(仅限 IPv4) |
包含导入范围(仅限 IPv4) 排除导入范围(仅限 IPv4) |
导出过滤条件
导出过滤条件控制 spoke 向 NCC hub 路由 表发送哪些子网范围或动态路由。导出过滤条件是按 spoke 配置的。
VPC spoke 上的导出过滤条件:这些过滤条件控制发送到 hub 的 子网范围。
混合 spoke 上的导出过滤条件:这些过滤条件控制发送到 hub 的动态 路由。
导出过滤条件包含“包含导出范围”和 “排除导出范围”。
包含导出范围:使用 Google Cloud CLI 中的
--include-export-ranges标志或 API 中的includeExportRanges字段来创建包含导出范围。包含导出范围需遵循以下规则:包含导出范围最多支持 16 个不重叠的唯一 CIDR。 包含导出范围中的任何 CIDR 都不能与另一个 CIDR 匹配或包含另一个 CIDR。 CIDR 可以是 IPv4 或 IPv6 (预览版),但路由器设备混合 spoke 除外,后者仅支持 IPv4 CIDR。
包含导出范围支持以下关键字,而不是 CIDR:
ALL_PRIVATE_IPV4_RANGES:此关键字包含 VPC spoke 导出的子网范围中的所有 专用 IPv4 地址。此关键字只能在 VPC spoke 的包含导出范围中使用。ALL_IPV4_RANGES:此关键字包含所有 IPv4 地址,相当于0.0.0.0/0CIDR。此关键字可在 VPC spoke 或混合 spoke 的包含导出范围中使用。ALL_IPV6_RANGES:此关键字包含所有 IPv6 地址,相当于::/0CIDR。此关键字可在 VPC spoke 或混合 spoke 的包含导出范围中使用,但路由器设备混合 spoke 除外。
如果您未指定任何包含导出范围,NCC 将使用以下默认值:
对于 VPC spoke,默认包含导出范围与您指定
ALL_PRIVATE_IPV4_RANGES时的范围相同。对于混合 spoke,默认包含导出范围与您指定
ALL_IPV4_RANGES时的范围相同。
排除导出范围:使用 Google Cloud CLI 中的
--exclude-export-ranges标志或 API 中的excludeExportRanges字段来创建排除导出范围。排除导出范围需遵循以下规则:排除导出范围最多支持 16 个不重叠的唯一 CIDR。 排除导出范围中的任何 CIDR 都不能与另一个 CIDR 匹配或包含另一个 CIDR。 CIDR 可以是 IPv4 或 IPv6 (预览版),但路由器设备混合 spoke 除外,后者仅支持 IPv4 CIDR。
排除导出范围中指定的每个 CIDR 都必须扩展到由包含导出范围(或默认包含导出范围,如果您未明确指定任何包含导出范围)中的 CIDR 或关键字完全包含的 IP 地址。
排除导出范围不支持关键字。
如果您未指定任何排除导出范围,NCC 会将空列表用作 VPC spoke 和混合 spoke 的默认排除导出范围。
VPC spoke 的导出过滤条件规则
对于 VPC spoke,以下规则控制每个 VPC spoke 中导出过滤条件与子网范围之间的交互:
| 场景 | 示例 | 有效配置 | 结果 |
|---|---|---|---|
| VPC 网络的子网范围未完全包含在任何 VPC spoke 的包含导出范围中(因此 未包含在任何排除导出范围中) | 子网范围 10.0.0.0/16 和包含导出范围
192.168.0.0/16 |
子网范围不会发送到 hub。 | |
| VPC 网络的子网范围与 VPC spoke 的一个包含导出范围相交,但未完全 包含在该范围内 | 子网范围 10.0.0.0/16 和包含导出范围
10.0.0.0/17 |
Google Cloud 会阻止以下情况:
|
|
| VPC 网络的子网范围完全包含在 VPC spoke 的一个包含导出范围中,并且该子网范围 不与任何 spoke 的排除导出范围相交 | 子网范围 10.0.0.0/16 或 10.0.0.0/17、
包含导出范围 10.0.0.0/16 和 192.168.0.0/16、
排除导出范围 192.168.0.0/24 |
子网范围会发送到 hub。 | |
| VPC 网络的子网范围完全包含在 VPC spoke 的一个包含导出范围中,但该子网范围 与 spoke 的一个排除导出范围相交 | 子网范围 10.0.0.0/17、包含导出范围
10.0.0.0/16、排除导出范围 10.0.0.0/24 |
Google Cloud 会阻止以下情况:
|
|
| VPC 网络的子网范围完全包含在 VPC spoke 的一个排除导出范围中(因此包含在其一个包含导出范围中) | 子网范围 10.0.0.0/17、包含导出范围
10.0.0.0/8 和排除导出范围
10.0.0.0/16 |
子网范围不会发送到 hub。 |
混合 spoke 的导出过滤条件规则
对于混合 spoke,以下规则控制导出过滤条件与动态路由之间的交互:
| 场景 | 示例 | 有效配置 | 结果 |
|---|---|---|---|
| 混合 spoke 中的动态路由未完全包含在任何 混合 spoke 的包含导出范围中(因此未包含在任何排除导出范围中) | 动态路由 10.0.0.0/16 和包含导出范围
192.168.0.0/16 |
动态路由不会发送到 hub。 | |
| 混合 spoke 中的动态路由与混合 spoke 的一个包含导出范围相交,但未完全包含在该范围内 | 动态路由 10.0.0.0/16 和包含导出范围
10.0.0.0/17 |
动态路由不会发送到 hub。 | |
| 混合 spoke 中的动态路由完全包含在混合 spoke 的一个包含导出范围中,并且该动态路由不与任何 spoke 的排除导出范围相交 | 动态路由 10.0.0.0/16 或 10.0.0.0/17、
包含导出范围 10.0.0.0/16 和
192.168.0.0/16、排除导出范围
192.168.0.0/24 |
动态路由会发送到 hub。 | |
| 混合 spoke 中的动态路由完全包含在混合 spoke 的一个包含导出范围中,但该动态路由与 spoke 的一个排除导出范围相交 | 动态路由 10.0.0.0/17、包含导出范围
10.0.0.0/16、排除导出范围 10.0.0.0/24 |
动态路由不会发送到 hub。 | |
| 混合 spoke 中的动态路由完全包含在混合 spoke 的一个排除导出范围中(因此包含在其一个包含导出范围中) | 动态路由 10.0.0.0/17、包含导出范围
10.0.0.0/8 和排除导出范围
10.0.0.0/16 |
动态路由不会发送到 hub。 |
导入过滤条件
导入过滤条件控制混合 spoke 的 路由 VPC 网络 从 NCC hub 路由表接收哪些子网范围或动态路由。导入过滤条件是 为每个混合 spoke 配置的,并且支持 IPv4 和 IPv6 (预览版) 地址范围 (路由器设备 spoke 除外,后者仅支持 IPv4 地址 范围)。VPC spoke 不支持导入过滤条件。
导入过滤条件包含“包含导入范围”和“排除导入范围”:
包含导入范围:使用 Google Cloud CLI 中的
--include-import-ranges标志或 API 中的includeImportRanges字段来创建包含导入范围。包含导入范围需遵循以下规则:包含导入范围最多支持 16 个不重叠的唯一 CIDR。 包含导入范围中的任何 CIDR 都不能与另一个 CIDR 匹配或包含另一个 CIDR。 CIDR 可以是 IPv4 或 IPv6 (预览版), 但路由器设备混合 spoke 除外, 后者仅支持 IPv4 CIDR。
包含导入范围支持以下关键字,而不是 CIDR:
ALL_IPV4_RANGES:此关键字包含所有 IPv4 地址,相当于0.0.0.0/0CIDR。ALL_IPV6_RANGES:此关键字包含所有 IPv6 地址,相当于::/0CIDR。路由器设备混合 spoke 无法使用此关键字。
如果您未指定任何包含导入范围,NCC 将使用以下默认值:
如果混合 spoke 未启用 站点到站点数据 传输 ,则默认包含导入范围为空。
如果混合 spoke 已启用站点到站点数据传输,则默认包含导入范围仅包含从 hub 的其他已启用站点到站点数据传输的混合 spoke 获知的 IPv4 动态路由(中转动态路由)。此默认包含导入范围不包含来自 hub 的任何子网范围。
Google 建议您指定一组明确的包含导入范围,因为默认值各不相同,并且可能仅适用于导入中转动态路由。
排除导入范围:使用 Google Cloud CLI 中的
--exclude-import-ranges标志或 API 中的excludeImportRanges字段来创建排除导入范围。排除导入范围需遵循以下规则:排除导入范围最多支持 16 个不重叠的唯一 CIDR。 排除导入范围中的任何 CIDR 都不能与另一个 CIDR 匹配或包含另一个 CIDR。 CIDR 可以是 IPv4 或 IPv6 (预览版),但路由器设备混合 spoke 除外,后者仅支持 IPv4 CIDR。
排除导入范围中指定的每个 CIDR 都必须扩展到由包含导入范围中的 CIDR 或关键字完全包含的 IP 地址。
排除导入范围不支持关键字。
如果您未指定任何排除导入范围,则默认
exclude import ranges为空。
混合 spoke 和 NCC 导入的子网路由通告
混合 spoke 中 Cloud Router 上的 BGP 会话可以使用以下任一技术通告从 NCC hub 路由表接收的子网范围:
使用混合 spoke 导入过滤条件和 Cloud Router 子网路由 通告:此技术仅支持 IPv4 子网范围,因为导入 过滤条件仅支持 IPv4 范围。如需使用此技术,您必须执行以下操作:
在路由 VPC 网络的混合 spoke 中配置包含导入范围和排除导入范围。例如,将包含导入范围设置为
[ALL_IPV4_RANGES],并将排除导入范围留空。在路由 VPC 网络的混合 spoke 中 Cloud Router 的 BGP 会话上配置子网范围通告。Cloud Router 子网范围通告可以使用默认通告模式或自定义通告模式。如需了解详情,请参阅Cloud Router 文档中的 通告的 路由。
使用此技术时,请注意以下事项:
动态路由模式对子网范围通告的影响:路由 VPC 网络的动态 路由模式控制其本地子网范围和从 NCC hub 接收的子网范围的子网范围 通告:
使用区域动态路由模式的路由 VPC 网络:每个混合 spoke 中的 BGP 会话只能通告与混合 spoke 位于同一区域的本地子网范围和 NCC 导入的子网范围。通告的 MED 与每个 BGP 会话的已配置基准优先级匹配。
使用全球动态路由模式的路由 VPC 网络:BGP 会话在每个混合 spoke 中可以通告来自任何区域的本地子网范围和 NCC 导入的子网范围。与混合 spoke 位于同一区域的子网范围的通告 MED 与 BGP 会话的已配置基准优先级匹配。不同区域中子网范围的通告 MED 是 BGP 会话配置的基准优先级与区域间费用的总和。
混合 spoke 导入过滤条件不会影响 路由 VPC 网络中本地子网范围的通告:混合 spoke 导入过滤条件不能用于 控制路由 VPC 网络中 本地子网范围的通告。路由 VPC 网络的本地子网范围的通告取决于每个 BGP 会话的通告模式和路由 VPC 网络的动态路由模式。
使用 Cloud Router 自定义通告:Cloud Router 自定义通告 模式支持 向 BGP 会话的对等体通告自定义 IPv4 和 IPv6 前缀,可以作为子网路由通告的补充,也可以替代子网路由通告。您可以添加 IPv4 或 IPv6 CIDR,包括与 NCC hub 中的子网范围匹配或包含这些范围的 CIDR。
使用此技术时,请注意以下事项:
动态路由模式对 Cloud Router 自定义通告的影响:路由 VPC 网络的 动态路由模式不会影响自定义 路由通告。通告的 MED 与每个 BGP 会话的已配置基准优先级匹配。
如果 Cloud Router 自定义通告与 通告的子网路由完全匹配,则会被忽略:
如果 BGP 会话的通告模式和路由 VPC 网络的动态路由模式导致通告本地子网范围,则 BGP 会话会忽略任何与本地子网范围匹配的自定义通告。
如果混合 spoke 导入过滤条件和路由 VPC 网络的动态路由模式导致通告 NCC 导入的子网范围,则 BGP 会话会忽略任何与 NCC 导入的子网范围匹配的自定义通告。
以下语句适用于这两种技术:
Cloud Router 出站 BGP 政策的影响:出站 BGP 政策 适用于所有通告的路由,包括 NCC 导入的子网路由。
混合 spoke 和 NCC 导入的动态路由重新通告
混合 spoke 中 Cloud Router 上的 BGP 会话可以重新通告从 NCC hub 路由表的其他混合 spoke 接收的动态路由。 如需使用此技术,您必须执行以下操作:
确保所有混合 spoke 都位于同一路由 VPC 网络中。 这是站点到站点数据 传输 的前提条件。
确保在向 hub 发送动态路由的混合 spoke 中启用站点到站点数据传输。
确保在从 hub 接收动态路由的混合 spoke 中启用站点到站点数据传输。为此混合 spoke 适当配置包含导入范围和排除导入范围。
重新通告的动态路由称为“中转动态路由” 。使用此技术时,请注意以下事项:
动态路由模式对中转动态路由重新通告的影响:包含 混合 spoke 的路由 VPC 网络的 动态路由模式控制重新通告哪些中转动态路由:
使用区域动态路由模式的路由 VPC 网络: 已启用站点到站点 数据传输的混合 spoke 中 Cloud Router 的 BGP 会话会重新通告来自同一区域中其他已启用站点到站点数据传输的混合 spoke 的中转动态路由。通告的 MED 与执行重新通告的每个 BGP 会话的已配置基准优先级匹配。
使用全球动态路由模式的路由 VPC 网络:已启用站点到站点 数据传输的混合 spoke 中 Cloud Router 的 BGP 会话会重新通告来自所有区域中其他已启用站点到站点数据传输的混合 spoke 的中转动态路由。同一区域中中转动态路由的通告 MED 与执行重新通告的每个 BGP 会话的已配置基准优先级匹配。不同区域中中转动态路由的通告 MED 与已配置基准优先级和区域间费用匹配。
Cloud Router 通告模式的影响: Cloud Router 通告 模式 中的设置不会控制是否重新通告中转动态路由。中转动态路由的重新通告完全由混合 spoke 设置(站点到站点数据传输选项、导出过滤条件和导入过滤条件)控制。
混合 spoke 的导入过滤条件规则
对于混合 spoke,以下规则控制导入过滤条件与从 hub 接收的路由之间的交互。从 hub 接收的路由可以是子网路由或中转动态路由。
| 场景 | 示例 | 有效配置 | 结果 |
|---|---|---|---|
| hub 中的子网路由或中转动态路由未完全包含 在任何混合 spoke 的包含导入范围中(因此 未包含在任何排除导入范围中) | hub 子网路由或中转动态路由 10.0.0.0/16
和包含导入范围 192.168.0.0/16 |
混合 spoke 不会导入 hub 子网路由或中转动态路由。 | |
| hub 中的子网路由或中转动态路由与混合 spoke 的一个包含导入范围相交,但 未完全包含在该范围内 | hub 子网路由或中转动态路由 10.0.0.0/16 和
包含导入范围 10.0.0.0/17 |
混合 spoke 不会导入 hub 子网路由或中转动态路由。 | |
| hub 中的子网路由或中转动态路由完全包含在 混合 spoke 的一个包含导入范围中,并且 hub 路由 不与任何 spoke 的排除导入范围相交 | hub 子网路由或中转动态路由 10.0.0.0/16 或
10.0.0.0/17、包含导入范围 10.0.0.0/16
和 192.168.0.0/16、排除导入范围
192.168.0.0/24 |
混合 spoke 会导入 hub 子网路由或中转动态路由。 | |
| hub 中的子网路由或中转动态路由完全包含在混合 spoke 的一个包含导入范围中,但 hub 路由与 spoke 的一个排除导入范围相交 | hub 子网路由或中转动态路由 10.0.0.0/17、包含导入范围 10.0.0.0/16、排除导入范围
10.0.0.0/24 |
混合 spoke 不会导入 hub 子网路由或中转动态路由。 | |
| hub 中的子网路由或中转动态路由完全包含在 混合 spoke 的一个排除导入范围中(因此包含在其一个包含导入范围中) | hub 子网路由或中转动态路由 10.0.0.0/17、包含导入范围 10.0.0.0/8 和排除导入范围 10.0.0.0/16 |
混合 spoke 不会导入 hub 子网路由或中转动态路由。 |