第 13 章 配置分布式虚拟路由(DVR)


13.1. 了解分布式虚拟路由(DVR)

当您部署 Red Hat OpenStack Platform 时,可以在集中式路由模型或 DVR 之间进行选择。

每个模型都有优缺点。使用本文档仔细规划中央化路由,还是 DVR 更好地适合您的需求。

新的默认 RHOSP 部署使用 DVR 和带有 Open Virtual Network 机制驱动程序(ML2/OVN)的 Modular Layer 2 插件。

在 ML2/OVS 部署中默认禁用 DVR。

13.1.1. 第 3 层路由概述

Red Hat OpenStack Platform Networking 服务(neutron)为项目网络提供路由服务。如果没有路由器,项目网络中的虚拟机实例可以通过共享 L2 广播域与其他实例通信。创建路由器并将其分配给项目网络,允许该网络中的实例与其他项目网络或上游通信(如果为路由器定义了外部网关)。

13.1.2. 路由流

Red Hat OpenStack Platform (RHOSP)中的路由服务可以归类为三个主要流:

  • 同一项目中不同网络之间的东西路由路由。这个流量不会离开 RHOSP 部署。此定义适用于 IPv4 和 IPv6 子网。
  • 使用浮动 IP 浮动 IP 寻址的 North-South 路由 是一个一对一的网络地址转换(NAT),可以修改它,并在虚拟机实例之间进行浮点。虽然浮动 IP 被建模为浮动 IP 和网络服务(neutron)端口之间的一对一关联,它们通过与执行 NAT 转换的网络服务路由器关联来实施。浮动 IP 本身取自 uplink 网络,为路由器提供外部连接。因此,实例可以与外部资源(如互联网上的端点)或者其它方法通信。浮动 IP 是 IPv4 概念,不适用于 IPv6。假设项目使用的 IPv6 寻址使用全局单播地址(GUAs),且项目之间没有重叠,因此可以在没有 NAT 的情况下路由。
  • 没有浮动 IP 的 North-South 路由(也称为 SNAT)- 网络服务为没有分配浮动 IP 的实例提供默认端口地址转换 (PAT) 服务。通过此服务,实例可以通过路由器与外部端点通信,但不能以其他方式通信。例如,一个实例可以浏览互联网上的网站,但外部的 Web 浏览器无法浏览实例内托管的网站。SNAT 仅适用于 IPv4 流量。此外,分配的 GUAs 前缀的网络服务网络不需要网络服务路由器外部网关端口上的 NAT 来访问外部世界。

13.1.3. 集中式路由

最初,网络服务(neutron)设计为具有由 Neutron L3 代理管理的项目虚拟路由器的集中式路由模型,它们都由 Neutron L3 代理部署在专用节点或节点上(称为网络节点或 Controller 节点)。这意味着,每次需要路由功能(east/west、浮动 IP 或 SNAT)时,流量都会遍历拓扑中的专用节点。这引入了多个挑战,并导致子优化流量流。例如:

  • 通过 Controller 节点的实例流间的网络流量 - 当两个实例需要通过 L3 相互通信时,流量必须经过 Controller 节点。即使实例调度到同一个 Compute 节点上,流量仍必须离开 Compute 节点,流通过 Controller,再路由到 Compute 节点。这会对性能造成负面影响。
  • 具有浮动 IP 的实例通过 Controller 节点接收和发送数据包 - 外部网络网关接口仅在 Controller 节点上提供,因此流量是否源自实例,还是从外部网络目的地到实例,它必须通过 Controller 节点流。因此,在大型环境中,Controller 节点会受到大量流量负载。这将影响性能和可扩展性,还需要仔细规划,以适应外部网络网关接口中的足够带宽。相同的要求适用于 SNAT 流量。

为了更好地扩展 L3 代理,网络服务可以使用 L3 HA 功能,该功能在多个节点之间分发虚拟路由器。如果 Controller 节点丢失,HA 路由器将在另一个节点上切换到备用节点,并在 HA 路由器故障转移完成前存在数据包丢失。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat