> For the complete documentation index, see [llms.txt](https://docs.console.zenlayer.com/welcome/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.console.zenlayer.com/welcome/cn/elastic-compute/networking/standard-vs-bypass-eip.md).

# 弹性 IP：普通模式 EIP 与 Bypass EIP

当您将弹性 IP（EIP）绑定到 Zenlayer 弹性计算（ZEC）实例上的虚拟网卡或高可用虚拟 IP 时，平台为该 EIP 提供两种转发模式：

* **普通模式 EIP** — 默认模式，适用于绝大多数工作负载。
* **Bypass EIP** — 可选模式，适用于对延迟和吞吐量敏感的工作负载。

两种模式均由**同一公网转发平面**提供服务。 两种模式的入站和出站流量都流经同一网关，受相同的带宽限制约束，并使用相同的 EIP 地址。唯一的区别在于**数据包在网关内部到达或离开您的虚拟机时的处理方式**。

本文档涵盖绑定到 vNIC 或高可用虚拟 IP 的 EIP。要管理您的 EIP，请在 Console 中导航至 [弹性 IPv4](https://console.zenlayer.com/zec/elastic-ip) 页面。

***

## 概览

![概览：两种模式共享同一转发平面](/files/yfPUuhn7x79pI4xYEK9o)

两台虚拟机都通过同一转发平面访问互联网。区别在于**平台是否为您进行地址转换**（普通模式），还是**将公网 IP 直接分配给客户机**（Bypass 模式）。

***

## 两种模式的共同点

* **相同的转发平面。** EIP 的入站和出站流量均由同一共享公网网关承载。
* **相同的 EIP 语义。** 一个 EIP 对应 vNIC 上的一个私有 IP。如需公开多个私有 IP，请为每个私有 IP 分配一个 EIP。
* **入站流量保留原始客户端源 IP。** 您的工作负载可以看到入站连接的真实客户端地址。
* **一个 vNIC 可绑定多个 EIP**，每个 EIP 绑定到同一网卡上不同的（辅助）私有 IP。
* **相同的带宽限制。** 您购买的每个 EIP 的带宽配额在两种模式下完全相同。
* EIP 必须先解绑才能释放。

***

## 普通模式 EIP

普通模式是默认选择，适合绝大多数工作负载。

### 工作原理

![普通模式 EIP：网关在 EIP 与私有 IP 之间进行转换](/files/ub4nYT2IE5uAhlDOWv9o)

* 网关在 EIP 与私有 IP 之间执行**地址转换**。您的虚拟机始终只能看到自己的**私有 IP**。
* 转发平面为每条连接维护**按流状态**。

### 客户机配置

**客户机内部无需特殊配置。** 虚拟机只需要其私有 IP（通常通过 DHCP 获取）。EIP 对客户机操作系统不可见。

### 何时使用普通模式

* 虚拟机的通用公网连通场景。
* 对延迟、吞吐量或过滤没有特殊需求的工作负载。
* 您希望平台的安全组对 EIP 上的所有流量生效，没有例外。
* 您希望配置尽可能简单 — 一个网卡上一个私有 IP，虚拟机内部无需额外配置。

***

## Bypass EIP

Bypass 模式指示转发平面走**无状态快速路径**，并**将公网 IP 直接分配给虚拟机**，不进行地址转换。平台不会为Bypass EIP 在任何方向执行 NAT。

### 工作原理

![Bypass EIP：两个方向均不进行转换](/files/kkHTeB9rTnMwNvGs0d1t)

* 入站数据包**原样**传递给虚拟机。虚拟机看到的数据包目标地址是公网 EIP。
* 出站数据包必须以 **EIP 作为源地址**从虚拟机发出。网关将其原样转发到互联网。
* 转发平面不为连接维护按流状态。

由于平台不再执行 EIP ↔ 私有 IP 的转换，**客户机操作系统必须将 EIP 配置为其网卡上的本地地址**，与私有 IP 并存。

### 您将获得的优势

* 网关每个数据包的**处理开销更低**。
* **更低的延迟**，对于短连接和新流的首批数据包效果尤为明显。
* 对于受按流处理限制的工作负载，可获得**更高的持续数据包速率**。
* **可选**地，在绑定时跳过该 EIP 的平台安全组。此选项**仅在Bypass 模式下可用**，并将入站过滤责任完全转移给客户机。

### 何时使用Bypass 模式

* **延迟敏感型工作负载**：实时媒体、游戏服务器、低延迟 RPC 端点、金融类工作负载。
* **高数据包速率工作负载**，需要最大转发吞吐量。
* **在客户机中运行自有防火墙**的工作负载，希望跳过特定 EIP 上的平台安全组。

### 需要注意的权衡

* **客户机必须手动配置**以持有 EIP。当同一 vNIC 上有多个 EIP 和/或多个私有 IP 时，这一配置会变得复杂 — 请参见下方示例。
* 依赖网关按流状态的连接级功能和可见性，对 Bypass 流量不可用。
* 如果您跳过了平台安全组，平台将不再过滤该 EIP 上的入站流量。在启用此选项之前，请确保客户机已配置自有过滤策略。

***

## 对比：两种模式在转发平面内的行为

![转发平面分支：共享查找和计量，然后按模式分别处理](/files/zKkjZaqRFQ7rXsnUtp1L)

两条路径共享同一网关、相同的计量方式和相同的带宽管控。区别在于图右侧的每数据包分支处理逻辑。

***

## 在客户机内配置Bypass EIP（Ubuntu / netplan）

由于Bypass 模式不做 NAT，客户机操作系统必须持有公网 IP 本身，与通过 DHCP 获取的私有 IP 并存。以下示例适用于使用 netplan 的 Ubuntu；在任何 Linux 发行版上均可使用 `ip addr` 进行等效配置。

### 示例 1 — 单个私有 IP，单个Bypass EIP

私有 IP：`10.0.0.10`（通过子网 `10.0.0.0/24` DHCP 获取，网关 `10.0.0.1`）。 Bypass EIP：`203.0.113.10`。

```yaml
# /etc/netplan/01-bypass-eip.yaml
network:
  version: 2
  ethernets:
    ens3:
      dhcp4: true
      addresses:
        - 203.0.113.10/32
```

DHCP 租约提供私有 IP 和默认路由。Bypass EIP 以 `/32` 掩码作为额外地址添加，使内核将其视为主机地址，而不会尝试通过私有网卡路由公网子网。

### 示例 2 — 多个私有 IP 和多个Bypass EIP

私有 IP：`10.0.0.10`（主 IP，DHCP 获取）和 `10.0.0.11`（辅助 IP）。 Bypass EIP：`203.0.113.10`（绑定到 `10.0.0.10`）和 `203.0.113.11`（绑定到 `10.0.0.11`）。

```yaml
# /etc/netplan/01-bypass-eip.yaml
network:
  version: 2
  ethernets:
    ens3:
      dhcp4: true
      addresses:
        - 10.0.0.11/24
        - 203.0.113.10/32
        - 203.0.113.11/32
```

这足以使**入站**流量到任一Bypass EIP 都能正常工作：内核在请求到达的地址上回复，因此回复数据包会自动以正确的 EIP 为源。

对于需要从特定Bypass EIP 发起的**出站**新连接，应用程序应将其套接字绑定到所需的 EIP。如果您需要内核为来自某个私有 IP 的流量选择特定 EIP 作为默认源，而不是逐应用程序绑定，则需要配置策略路由规则 — 例如，每个（私有 IP，Bypass EIP）对使用一个路由表，通过 `ip rule add from <私有 IP> table <N>` 进行选择。该配置的实施是运营者的责任，而非平台的责任。

> 客户机内配置的复杂性随公网/私有 IP 组合数量的增加而增长。如果工作负载确实简单（一个私有 IP，一个公网 IP），Bypass 模式配置很直接；如果工作负载涉及大量公私 IP 组合，请在决策时将客户机内的配置负担纳入考量。

***

## 一个 vNIC 上的多个 EIP

您可以通过将每个 EIP 与该网卡上不同的辅助私有 IP 关联，将多个 EIP 绑定到同一个 vNIC 上。两种模式均支持此功能。

![多个 EIP 绑定到单个 vNIC，每个 EIP 与一个私有 IP 一一对应](/files/UmKZ0zUDYpC4kmCwf2cg)

每个 EIP 与单个私有 IP 一一绑定。如需公开三个私有 IP，请分配三个 EIP。

**重要 — 不要在同一 vNIC 上混用模式。** 绑定到同一 vNIC 的所有 EIP 应使用**相同**的模式。如果您需要同一虚拟机上同时拥有普通模式 EIP 和Bypass EIP，请将它们附加到不同的 vNIC 上。

![同一 vNIC 上的所有 EIP 必须共享同一模式](/files/ZllmmSyK23Ndt0cjiFMq)

如果单台虚拟机同时需要普通模式 EIP 和Bypass EIP，请为其添加第二个 vNIC，并将Bypass EIP 放在那里。

***

## IPv6

本平台上的公网 IPv6 地址**不是 ULA 也不经过 NAT**。 每台虚拟机都会获得一个可路由的公网 IPv6 地址，该地址直接分配给客户机，与Bypass EIP 的 IPv4 分配方式完全相同。

![公网 IPv6：可路由地址直接分配给虚拟机，无 NAT](/files/W3k0A2SShzDeIbdyhnfV)

实际含义：

* **IPv6 没有 NAT。** 网关在虚拟机和互联网之间转发 IPv6 数据包时，不会改写源地址或目标地址。
* **客户机内部看到的 IPv6 地址就是互联网看到的地址。** 外部服务看到的出站 IPv6 流量的源地址就是该地址。
* **入站 IPv6 数据包到达客户机时，目标地址是公网 IPv6 地址。** 客户机以正常方式配置其 IPv6 地址（通过 SLAAC/DHCPv6 或静态配置）；无需额外别名，因为没有第二个需要转换的"私有" IPv6 地址。
* **IPv6 没有"普通模式与 Bypass"的选择。** 普通模式 / Bypass 的区别是 IPv4 独有的概念，因为它描述的是平台是否在 EIP 与私有 IP 之间执行 IPv4 NAT。IPv6 始终是直通的。

如果您已经熟悉在 Bypass IPv4 下运行虚拟机，IPv6 的思维模型是相同的：平台将公网地址路由到您的客户机，客户机拥有该地址。

***

## 选择模式（IPv4 EIP）

| 问题                | 普通模式 EIP | Bypass EIP |
| ----------------- | -------- | ---------- |
| 默认模式？             | 是        | 否 — 需主动选择  |
| 相同的转发平面和带宽限制？     | 是        | 是          |
| 入站保留客户端源 IP？      | 是        | 是          |
| 每个 vNIC 支持多个 EIP？ | 是        | 是          |
| 每数据包处理开销          | 基准       | 更低         |
| 延迟 / 数据包速率        | 基准       | 更优         |
| 网关的按流状态           | 有        | 无          |
| 平台为 EIP 执行 NAT    | 是        | 否          |
| 客户机必须持有 EIP 本身    | 否        | 是          |
| 可选跳过平台安全组         | 否        | 是          |
| 推荐默认选择            | 是        | 仅在有明确原因时选择 |

**快速判断原则**

* 默认使用**普通模式**，除非您有经过实测的理由切换。
* 在以下情况选择**Bypass 模式**：（a）需要 vNIC EIP 上最低可能的延迟或最高可能的数据包速率，或（b）需要跳过平台安全组的能力，**且**您愿意在客户机内配置 EIP。

***

## 限制与注意事项汇总

* **一个 EIP，一个私有 IP。** 任何 EIP 都不能同时绑定多个私有 IP。
* **先解绑再释放。** 仍处于关联状态的 EIP 无法删除。
* **同一网卡同一模式。** 单个 vNIC 上的所有 EIP 必须使用相同的模式。
* **Bypass 模式需要客户机内部配置。** 客户机操作系统必须将 EIP 作为本地地址持有；随着网卡上公网/私有 IP 数量的增加，配置复杂度也会增加。
* **Bypass 模式转发在网关处是无状态的**：依赖网关按流状态的功能不适用于Bypass EIP。
* **跳过平台安全组仅对Bypass EIP 可用**，并将入站过滤责任完全转移给客户机。
* **公网 IPv6 不经过 NAT。** 客户机内部的 IPv6 地址就是互联网看到的地址；普通模式/Bypass 的区别不适用于 IPv6。
* **两种 IPv4 模式均保留入站客户端源 IP。**
