跳转至

MCR 路由过滤

本主题介绍 Megaport Cloud Router (MCR) 路由过滤。 路由过滤可以有选择性地控制在边界网关协议 (BGP) 邻居路由器之间可被发现的网络。通过配置路由过滤,可以影响路由路径并管理冗余,同时提高安全性。

本主题包括以下部分:

MCR peering

路由过滤概述

路由过滤提供对 MCR 路由安装和传播的控制,通常发生在两个或多个网络之间。网络可以是本地部署或云服务提供商 (CSP)。 您可以使用路由过滤来:

  • 在 Virtual Cross Connect(VXC)之间重新发布或阻止重新发布路由。
  • 创建一个 BGP 前缀过滤器,其中包含一组 IPv4 或 IPv6 CIDR 块,以作为一个组进行管理。
  • 在特定连接上允许或拒绝特定路由。

默认 peering 路由通告

MCR 使用 边界网关协议 (BGP)边界网关协议(BGP)是一种标准化的路由协议,用于在互联网中的自治系统(AS)之间交换路由与可达性信息。
与相邻的 BGP 系统(称为“邻居”或“对等体 (peers)”)交换网络可达信息。MCR 适用于使用不同 peering 类型组合连接的 多云在单一的异构架构中同时使用多个云计算服务。例如,企业可能在基础设施(IaaS)和软件(SaaS)服务方面使用多家云服务提供商。Megaport 的核心价值主张之一是实现多云互联。
架构。除私有 peering 连接外,MCR 还可以连接到 AWS、Azure、Oracle 以及其他云服务提供商 (CSP) 等公共 peering 类型。

BGP 通过标准 TCP 连接在两个邻居之间通信。默认情况下,一旦 BGP 邻居建立连接,它们会彼此共享路由信息。邻居之间的连接称为 BGP 连接或会话

MCR peering

在不使用任何路由过滤器的情况下,Megaport 会根据以下 peering 类型将路由通告到 BGP 连接:

Peering 类型 通告的路由 通告到
非云 来自连接到 Port 的边界网关协议 (BGP) 邻居的路由。 非云,私有云,公有云
私有云 来自 AWS Private、Azure Private Peer 和 Google Cloud Platform 的路由。 非云,私有云
公有云 来自 AWS Public、Azure MS Peer、Salesforce 和其他云提供商的路由。 非云

例如,从 Public Cloud BGP 连接接收的路由不会通告到 Private Cloud BGP 连接。

您无法覆盖或控制基于 peering 类型的路由通告。

路由过滤不会更改现有的对等类型策略,但在需要过滤原本会在 BGP 邻居之间发现并交换的特定路由或前缀时,提供更精细的控制。路由过滤器是可选的。无法使用路由过滤器去通告基于 peering 类型已被过滤的路由。

有关默认路由通告的详细信息,请参见 MCR 路由通告

选择过滤器类型

您可以设置路由过滤器,以定义 MCR 允许或拒绝从 BGP 邻居接收或向其通告的路由。您可以按 BGP 连接或按前缀来过滤路由。路由过滤支持 IPv4 和/或 IPv6 路由。两种过滤器类型为:

  • BGP peer filter – 一种全有或全无的过滤器,用于允许或拒绝 BGP 邻居之间的路由交换。例如,考虑一个具有 BGP 邻居 A、B 和 C 的网络部署。允许 A 和 B 彼此交换路由,但不与 C 交换,同时所有邻居都可以与总部交换路由。BGP 邻居过滤器提供了一种简单直接的方法,在邻居之间过滤路由以满足这些需求。

  • BGP prefix filter – 一种高级过滤器,使用路由前缀(IP 地址或范围)来标识各个邻居,并允许或拒绝特定路由。您可以将同一个前缀过滤器应用于多个 BGP 邻居,从而无需手动输入重复的前缀条目。您可以为过滤器列表中的每个前缀指定允许或拒绝操作,并可按导入或导出方向应用不同的列表。

开始之前

在配置路由过滤器之前,请先确定您的需求并规划实施。然后根据这些需求创建路由过滤器。

部署注意事项

  • 您需要先创建一个 MCR,参见 创建 MCR
  • 您可以在配置 BGP 之前或之后配置路由过滤器,因为路由过滤器适用于现有或新的 BGP 连接。
  • 如果您计划在多个 Virtual Cross Connect(VXC)上添加多个 BGP 会话,并希望在它们交换路由信息并应用路由过滤器之前暂时关闭 BGP 路由交换,您可以先禁用它。完成配置后,再到相应的 BGP 会话中将其启用。更多信息参见 配置 MCR

重要

MCR 路由过滤支持并依赖 BGP Route Refresh 机制,当过滤器更改路由时,可通过软重置更新路由。如果并非所有活动的 BGP 连接都启用了 Route Refresh,您需要在 Megaport Portal 中先关闭再重新启用该连接以更新路由。如果您启用了 BGP Shut Down 选项,当您禁用 BGP Shut Down(即重新启用 BGP)时,路由将得到更新。

按 BGP 邻居过滤

默认情况下,除非被 peering 类型策略过滤(参见 默认 peering 路由通告),否则 MCR 允许所有路由。

您可以为配置在 MCR 上的每一对 BGP 连接设置策略,以微调路由。BGP 配对是单向的,这意味着每对 BGP 连接有两个策略——一个用于 A 到 B,另一个用于 B 到 A。

BGP 邻居过滤器策略具有三种可能的操作:

  • Default(默认) – 遵循源 peering 类型 BGP 连接定义的默认策略。
  • Permit(允许) – 允许从邻居 A 接收的路由通告给邻居 B。
  • Deny(拒绝) – 阻止将从邻居 A 接收的路由通告给邻居 B。

BGP 邻居过滤器示例

BGP 连接 A、B 和 C 连接到同一个 MCR。

连接 A 具有全局允许策略。要对连接 B 的方向进行过滤,可以将 A 到 B 的策略设置为拒绝,而不会影响对 C 的任何路由通告。

连接 C 具有全局拒绝策略。要仅允许通告到 A,可以将 C 到 A 的策略设置为允许。如果稍后添加新的 BGP 邻居,来自 C 的路由将遵循全局策略而不被通告。

创建 BGP 邻居过滤器

BGP 邻居过滤器会限制已经通告或从 BGP 邻居接收的路由数量。

创建 BGP 对等体过滤器

  1. 选择附加到 MCR 的 VXC,并选择 A End。
  2. 在 BGP 连接旁,单击 Edit(编辑)

    编辑 BGP 连接

  3. 选择 Filters(过滤器) 选项卡。

  4. 在 BGP Peer Filter 下,选择此 BGP 连接接收的路由是默认通告给 BGP 邻居,还是仅按例外通告。
    BGP 邻居过滤器

  5. 从 Action 下拉列表中为该 BGP 邻居选择一个操作。

  6. 单击 Update(更新)
  7. 单击 Save(保存)

应用路由过滤后,MCR Looking Glass 会显示接收或发送的路由。有关更多信息,请参见 通过 MCR Looking Glass 查看流量路由

按 BGP 前缀过滤

前缀是路由的目标网络。IP 网络是一组 IP 地址。网络地址即为前缀。
例如:

  • IPv4 地址:192.0.2.1
  • IPv4 网络前缀:192.0.2.0/24(包含 192.0.2.0 - 192.0.2.255)

前缀过滤器是一个命名的 IP 网络列表。每个条目由您定义和管理的 IPv4 或 IPv6 CIDR 前缀或前缀范围组成。CIDR 范围意味着您可以使用单个路由条目过滤多个网络。

可以将前缀过滤器应用于 BGP 连接,以有选择地标识要向相邻路由器通告或从其接收的路由。您还可以列出不通告或不接收的路由,并允许其他所有路由。当您定义前缀过滤器时,MCR 仅接受与前缀信息匹配的路由。此类过滤器适用于需要管理大量前缀和邻居的环境。您可以将同一个前缀过滤器应用于多个 BGP 邻居,从而减少手工操作并消除潜在错误。

前缀过滤器包含:

  • 一组 IPv4 或 IPv6 前缀(例如 10.0.0.0/16)以及与该列表关联的名称。
  • 匹配条件。您可以指定与特定路由的精确匹配,或基于前缀长度进行较不精确的匹配。
  • 当前缀和匹配条件同时为真时执行的操作(例如,允许)。

在前缀过滤器中,规则自上而下进行评估。匹配到第一条规则即停止。未匹配任何前缀列表条目的路由将应用隐式拒绝。

前缀过滤器列表中的操作

  • 使用允许操作的入站前缀过滤 – MCR 将前缀过滤器应用于来自邻居的入站 BGP 路由通告。不与此列表前缀匹配的路由会在尽早的节点被拒绝,且永远不会被 MCR 使用。

  • 使用拒绝操作的入站前缀过滤 – MCR 将前缀过滤器应用于来自邻居的入站 BGP 路由通告。与此列表前缀匹配的路由将被阻止。其他所有前缀允许进入 MCR 路由表。

  • 使用允许操作的出站前缀过滤 – MCR 将前缀过滤器应用于出站路由。与前缀列表匹配的路由将通告给 BGP 邻居,其他所有路由将被过滤。

  • 使用拒绝操作的出站前缀过滤 – MCR 将前缀过滤器应用于出站路由。与前缀列表匹配的路由将被阻止通告给 BGP 邻居,其他所有路由将被通告。

创建 BGP 前缀过滤器

每个 MCR 最多可管理 50 个前缀过滤器。每个前缀过滤器最多可包含 200 条前缀条目。 每个前缀过滤器彼此独立,且每次只能为每个 BGP 邻居应用一个列表。

创建前缀过滤器

  1. 在 Megaport Portal 的 Services 页面,选择一个 MCR。
    MCR 必须处于 Live 状态,您才能创建前缀过滤器。
    将显示 MCR 详细信息页面。

  2. 在 MCR Configuration 下,选择 Prefix Filter Lists(前缀过滤器列表) 选项卡。

    前缀过滤器列表选项卡

  3. 单击 New List(新建列表)
    新建前缀过滤器

  4. 输入一个唯一的描述性名称以标识该过滤器。描述长度的最小要求为 1 到 100 个字符。
    此前缀名称将显示在 BGP Configuration 选项卡的 Filters 部分下前缀列表的下拉列表中。

    注意

    前缀过滤器不能在多个 MCR 之间共享。您必须为每个 MCR 重新创建前缀过滤器。

  5. 选择 IPv4 或 IPv6 格式。
    前缀必须使用相同的地址格式。如果您尝试在同一列表中混用两种格式,将会出现警告。

  6. 选择规则的位置。
    规则位置至关重要,因为评估在首次匹配时停止,其余列表将被忽略。如果没有任何条件匹配,MCR 将应用隐式拒绝。
  7. 选择对此过滤器采取的操作:Match 或 Don’t Match。

    精确匹配前缀过滤器

  8. 以 CIDR 表示法输入前缀子网。对于 IPv4,使用 a.b.c.d/x,其中 a.b.c.d 为精确前缀,x 为精确前缀长度。

    注意

    此字段也接受点分四段表示的子网掩码(例如,255.255.255.0 而不是 /24)。

  9. 前缀可以仅精确匹配,或者您也可以指定子网掩码中的位数作为匹配条件。选择子网掩码条件:

    • Exact – 将过滤器限制为仅此特定前缀。前缀中包含的任何更小前缀都不匹配。

    • Min and Max – 指定要匹配的子网掩码长度范围以获得更大的灵活性。指定过滤器需要从地址最左侧的最高有效位开始匹配多少位的子网掩码。当您指定子网掩码范围时,过滤器需要同时满足两个条件:路由必须位于 a.b.c.d/x 边界内,且其掩码长度必须介于最小值和最大值之间。更短的前缀匹配更多地址,而更长的前缀匹配更少地址。

    • Min – 要匹配的最小起始前缀长度。有效值为 0 到 32(IPv4),或 0 到 128(IPv6)。Min 必须小于或等于 Max 值。

    • Max – 要匹配的最大结束前缀长度。前缀长度大于或等于 Min 值。有效值为 0 到 32(IPv4),或 0 到 128(IPv6),但 Max 必须不小于 Min 的值。

    例如,10.0.0.0/8 Min 16 可匹配 10.0.0.0/16、10.0.1.0/24、10.0.0.1/30,但不匹配 10.2.0.0/15。

    注意

    MCR 上的 Min 和 Max 值与 Cisco 的 gele 值(用于 ip prefix-list CLI 命令)类似。

    使用 Min 和 Max 值时,必须满足以下条件:

    Prefix length < Max <= Min

  10. 单击 Save(保存)

  11. 单击 Next(下一步)

    注意

    使用 CIDR 计算器以确保所有数据均有效且在范围内。

下一步是将该过滤器应用到 BGP 连接,如 将前缀过滤器应用到 BGP 连接 中所述。

示例过滤器条目

  • 对 1.2.3.0/24 进行精确匹配——精确匹配前缀 1.2.3.0,子网掩码为 255.255.255.0
  • 匹配 192.2.3.0/24 min 32——检查前缀 192.2.3.0 的前 24 位,子网掩码为 32
  • 匹配 10.0.12.0/24 max 32——匹配所有子网掩码小于或等于 32 的 10.0.12.x 网络

基于现有前缀过滤器创建前缀过滤器

如果您要创建一个与现有过滤器类似的过滤器,可以使用现有过滤器作为新过滤器的基础。这可以节省从头创建新过滤器的时间。

基于现有过滤器创建前缀过滤器

  1. 选择一个 MCR。
    将显示 MCR 详细信息页面。
  2. 在 MCR Configuration 下,选择 Prefix Filter Lists(前缀过滤器列表) 选项卡。
  3. 单击 Duplicate List(复制列表)
  4. 选择要作为新列表基础的过滤器列表。

    复制前缀过滤器

  5. 输入一个唯一的描述性名称以标识该过滤器。
    前缀名称将显示在 BGP 会话的 Filters 选项卡下的前缀下拉列表中。

  6. 根据需要修改该过滤器的专有参数。
  7. 单击 Save(保存)
  8. 单击 Next(下一步)

将前缀过滤器应用到 BGP 连接

前缀过滤器直接在 MCR 上配置,然后附加到 BGP 连接。

应用前缀过滤器

  1. 选择附加到 MCR 的 VXC,并选择 A End。
  2. 在 BGP 连接旁,单击 Edit(编辑)
  3. 选择 Filters(过滤器) 选项卡。

    附加前缀过滤器

  4. 在 BGP Prefix Filter 下,您可以将预定义的前缀过滤器应用于该 BGP 邻居,以限制从该邻居接收或向其通告的路由集合。可选择以下选项:

    • No Prefix Filter(不使用前缀过滤器) – 允许所有路由。不进行任何过滤。
    • Permit List(允许列表) – 仅允许与前缀列表匹配的路由。其他路由将被过滤。
    • Deny List(拒绝列表) – 除与所选前缀列表匹配的路由外,允许所有路由。
  5. 在 Import 或 Export Prefix Filter 下,从下拉列表中选择该过滤器。

    • Import(导入) – MCR 将前缀过滤器应用于来自邻居的入站通告。
    • Export(导出) – MCR 将前缀过滤器应用于发送给邻居的出站通告。
  6. 单击 Update(更新)

  7. 单击 Save(保存)

应用过滤器后,如果路由交换处于禁用状态,请重新启用。有关更多信息,请参见 编辑 MCR

一个前缀过滤器可以附加到多个 BGP 会话。

维护前缀过滤器

在前缀过滤器列表中,可以添加、删除和重新排序规则。

向现有前缀过滤器添加规则

每个前缀过滤器最多可包含 200 条规则。不允许重复规则。

向现有过滤器添加规则

  1. 在 Services 页面选择一个 MCR。
    将显示 MCR 详细信息页面。
  2. 在 MCR Configuration 下,选择 Prefix Filter Lists(前缀过滤器列表) 选项卡。
  3. 从 Prefix Filter List 下拉列表中选择一个前缀列表。
  4. 添加该规则。
  5. 单击 Save(保存)
    您必须单击 Save(保存) 才能应用规则更改。如果在未保存的情况下切换到其他列表,系统将提示警告,表明更改会丢失。

    向前缀过滤器添加规则

从前缀过滤器中删除规则

从过滤器中删除规则

  1. 在 Services 页面选择一个 MCR。
    将显示 MCR 详细信息页面。
  2. 在 MCR Configuration 下,选择 Prefix Filter Lists(前缀过滤器列表) 选项卡。
  3. 从 Prefix Filter List 下拉列表中选择一个前缀列表。
  4. 选择一个规则。
  5. 单击 Delete(删除)
  6. 单击 Save(保存)

在前缀过滤器中重新排序规则

在前缀过滤器列表中,规则的位置至关重要,因为规则会从列表顶部开始逐条评估。匹配到第一条规则即停止。

重新排序规则位置

  • 拖动 Position 列中的图标到不同位置,然后释放。

    重新定位规则

删除前缀过滤器列表

要删除前缀过滤器列表,必须先移除引用它的任何其他资源,例如 VXC。如果您在移除其资源之前尝试删除前缀过滤器列表,将会显示一个对话框列出正在使用的资源。

注意

当 MCR 被终止时,所有前缀列表都会自动从其中移除。

删除前缀过滤器

  1. 在 Services 页面选择一个 MCR。
    将显示 MCR 详细信息页面。
  2. 在 MCR Configuration 下,选择 Prefix Filter Lists(前缀过滤器列表) 选项卡。
  3. 从 Prefix Filter List 下拉列表中选择一个前缀列表。
  4. 单击 Delete List(删除列表)
  5. 单击 Save(保存)

应用过滤器后验证路由

应用路由过滤后,MCR Looking Glass 会显示接收或发送的路由。 有关更多信息,请参见 通过 MCR Looking Glass 查看流量路由

在应用路由过滤器后查看路由

  1. 选择 Tools > MCR Looking Glass。

    MCR Looking Glass

  2. 从 MCR 下拉列表中选择一个 MCR。

  3. 在 VXC 旁,单击 Neighbour Routes(邻居路由)
  4. 在 Show 旁,选择 Advertised(已通告)Received(已接收) 选项卡以缩小列表范围。