> For the complete documentation index, see [llms.txt](https://docs.verge.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.verge.io/knowledge-base/zh/networking/routing-l2-networks.md).

# 使用 VergeOS 路由二层网络

本文将通过强大的 VergeOS 网络系统，介绍一种高效的方式，将二层物理网络的三层 IP 流量进行路由。实现这一目标有多种方法，但本文的目的在于针对一个特定的常见场景提供清晰简洁的指导。本文尤其适用于边缘部署的工程师和管理员，在这些部署中，手机、CCTV 摄像头或网络设备等物理设备需要与 VergeOS 中可能运行在不同 IP 子网中的工作负载通信。使用这种方法，操作员可以实现 VergeOS 外部的这些物理设备与 VergeOS 内部受管理网络之间的直接本地通信。

## 步骤概览

1. 创建二层外部网络
   * 重要的是，该网络创建时不要包含任何 IP 信息。如果该 IP 段已经分配给此接口，则在下一步中无法将其添加到默认路由中。
2. [在外部网络上创建 IP 段](/knowledge-base/zh/networking/network-blocks.md#creating-a-network-block) 用于路由流量（可能是默认外部网络）
   * 通过在这里添加 IP 段，我们告诉 VergeOS 预期此 IP 流量将通过该接口进入，下一步我们将告诉 Verge 网络将其发送到哪里。
   * 将 IP 段分配给第 1 步的外部网络（或租户）
   * 保存后，VergeOS 将自动创建路由，将匹配目标 IP 的入站流量发送到我们的二层网络，该网络也可以挂接虚拟机，从而允许所有客户端在 Verge 内通过网络之间通信（配合适当的防火墙规则），并通过默认路由访问 Verge 外部的网络。
3. 返回二层外部网络以分配 IP 和其他三层选项
   * 根据你的上游配置，你可能需要在上游路由器中设置额外路由，将该子网（本例中为 192.168.2.0/24）的目标流量通过 Verge 外部 IP 进行路由。

{% hint style="info" %}
**相关帮助文档**

网络块简介： [网络块概览](/knowledge-base/zh/networking/network-blocks.md)\
路由基础： [路由内部网络](/knowledge-base/zh/networking/routing-between-internal-vergeio-networks.md)\
网络规则： [VergeOS 产品指南 - 网络规则](/run-the-platform/networking/network-rules.md)\
网络故障排查： [VergeOS 产品指南 - 网络故障排查](/run-the-platform/networking/net-troubleshooting.md)
{% endhint %}

## 演示场景

在下面的示例场景中，我们将通过 VergeOS 外部接口把 192.168.2.0/24 地址段路由到一个名为“l2demo”的二层网络。在此场景中，连接到 l2demo 的任何虚拟机，只要使用静态 IP（且位于正确的地址段）或启用了 DHCP，都可以访问互联网；Verge 外部的任何物理设备也同样可以通过 L2 接口访问互联网。入站流量可以通过进一步的规则进行允许和控制，出站流量也可以通过进一步的规则进行限制，并需注意规则顺序。

### 演示场景详情

* 要路由的 IP 段：192.168.2.0/24
* Verge 外部 IP：10.1.1.2
* Verge 外部二层网络：l2demo
* 二层网络 ID：1010
* Verge 上游网关：10.1.1.1
* Verge 物理接口：phys1

### 创建二层网络

```
从网络菜单：
```

1. 点击 New External
2. 名称：l2demo
3. 描述：可选
4. 二层类型：vLan
5. 二层 ID：1010
6. IP 地址类型：无
7. 接口网络：phys1
8. 点击提交以保存。
9. 保存后，在网络页面点击“Power On”。
   * 确保网络在日志框中启动时没有错误

### 在外部创建 IP 段并分配

1. 在外部网络页面点击“Network Blocks”
2. 点击“New”
3. 网络块：192.168.2.0/24
4. 所有者类型：网络
5. 所有者：l2demo
6. 点击提交。你将返回到网络块页面，现在会显示你新建的块及其所分配的所有者。

### 将 IP 信息分配给二层网络

1. 返回到 l2demo 网络
2. 点击“Rules”

* 确认防火墙规则正在等待应用。检查是否已经出现一条出站路由；这就是新规则。我们稍后会应用它。
* 点击取消返回网络页面

3. 点击编辑为网络分配 IP 信息。
4. IP 地址类型：静态
5. IP 地址：192.168.2.1
6. 网络地址 192.168.2.0/24
7. DNS：简单
8. DNS 服务器：10.1.1.1
9. DHCP：启用
10. 动态 DHCP：启用
11. DHCP 起始地址：192.168.2.200
12. DHCP 停止地址：192.168.2.254
13. 点击提交以保存

到这里你已经创建了所需的一切，但它仍处于待应用状态，并且需要重启网络以将二层网络添加到 l2demo。

* 返回你的网络仪表板并点击所有网络
* 注意 External 和 l2demo 网络标记为“需要应用防火墙”以及 l2demo 标记为“需要重启”
* 选择 l2demo 网络并点击“Restart”以重启它。
  * 接受在重启时应用防火墙规则的提示，并点击“yes”确认。
* 通过选择 External 并点击“Apply Rules”来应用其防火墙规则。
  * 点击“yes”确认
* 在 Verge 外部（在上游路由器中）：在 10.1.1.1 上设置一条路由，通过 10.1.1.2 发送 192.168.2.0/24，并为该设备上的流量设置任何其他所需策略。

## 租户变体

将上述流程应用于租户时，通常有两种常见实现方式。

* 理想情况下，需要访问物理二层网络的租户虚拟机应通过路由来实现，即创建适当的路由和规则，允许来自内部租户网络到二层网络的流量；例如，我们之前的“l2demo”网络通过 192.168.2.1 网关。
* 如果需要在租户网络内进行原生二层访问，请参见 [为租户提供二层访问](/knowledge-base/zh/tenants/provide-layer2-to-tenant.md) 以创建一个虚拟交换端口，将租户网络连接到租户外部的二层外部接口。

{% hint style="warning" %}
如果设备无法访问互联网，请仔细检查：

* 是否已设置到 192.168.2.0/24 的上游路由<br>
* 防火墙规则是否按正确顺序应用<br>
* 虚拟机或设备的 IP/子网是否与分配的网段匹配<br>
  {% endhint %}

***


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.verge.io/knowledge-base/zh/networking/routing-l2-networks.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
