惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

The Cloudflare Blog
小众软件
小众软件
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
T
Tailwind CSS Blog
WordPress大学
WordPress大学
有赞技术团队
有赞技术团队
博客园 - 司徒正美
V
Visual Studio Blog
G
Google Developers Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
月光博客
月光博客
aimingoo的专栏
aimingoo的专栏
博客园_首页
Blog — PlanetScale
Blog — PlanetScale
博客园 - 聂微东
S
SegmentFault 最新的问题
T
The Blog of Author Tim Ferriss
D
Docker
Vercel News
Vercel News
Recent Announcements
Recent Announcements
Last Week in AI
Last Week in AI
爱范儿
爱范儿
J
Java Code Geeks
大猫的无限游戏
大猫的无限游戏

博客园 - ayao

记录一次PVE(Proxmox VE)虚拟机从thin lvm 迁移到 ceph存储的问题 记一次stc单片机c51编程的指针问题 TrueNAS(原FreeNAS)的SMB共享文件夹,配置为不同的登录账户显示不同的目录 简要记录一下:ds1302 读取秒寄存器,总是在第一次读出ff,第二次才能读出准确的值的问题 python学习笔记——字典推导式 使用单片机驱动74CH595(8位串行输入、并行输出、可级联芯片)遇到的问题和解决过程 解决pl2303在 windows 10 或windows 11 显示“PL2303HXA自2012已停产,请联系供货商”问题 安装libjpeg,让php支持jpeg图片的裁切、缩放等操作 如何从oracle官方网站下载旧版本的jdk jre 【转帖】通过PHP读取dbf数据(visual fox pro,VFP数据库),官方的dbase无法读取字段为类型memo的数据,国外网站的解决方案 How to read FoxPro Memo with PHP? 问题处理:php json_decode函数处理的字符串中含有反斜杠“\”时,处理出错,返回的结果为NULL - ayao - 博客园 keepalived绑定的ip一段时间(大约几分钟)后消失的问题 设置jquery-ui datepicker的z-index值 配置完成vsftp,无法上传文件和建立文件夹 解决方法 Nginx 负载平衡 支持域名转发的方法 设置网页的图标 C# 线程、timer例句 c# delegate应用一例,类似于javascript中直接写的回调函数 flexigrid js表格控件在IE7下内容显示为空白
在PVE中实现宿主机与虚拟机同网段通信的配置方案
ayao · 2025-09-25 · via 博客园 - ayao

本文内容由笔者根据遇到的问题口述,并通过ai整理而成供,遇到同样问题的同学参考。

问题背景

在配置PVE服务器的过程中发现,当网络环境使用VLAN时,如果PVE宿主机的管理IP和虚拟机的IP地址被设置在同一个网段,虚拟机将无法正常联网。即使服务器的多个网口(例如4个)在交换机端和服务器端都配置了动态链路聚合(LACP),并且聚合链路被设置为允许所有VLAN通过的Trunk模式,在这种标准配置下,无论如何尝试,都无法实现宿主机管理口与虚拟机在同网段的网络互通。网上相关资料也证实了此方法是行不通的。

根本原因分析

这个问题的核心在于PVE网络模型的设计。当宿主机自身的管理接口(vmbr0)绑定在一个启用了VLAN的物理接口或聚合接口(bond)上时,宿主机与虚拟机对网络流量的处理方式存在冲突,导致同网段通信失败。因此,需要将宿主机的管理流量与虚拟机的业务流量在物理层面上分离开。

解决方案:物理隔离管理流量与虚拟机流量 

为了满足虚拟机与宿主机同网段通信的需求(例如,使用虚拟机作为跳板机来管理宿主机),可以采用以下物理隔离方案:

  1. 专用管理网口:指定服务器的一个物理网口(例如eno1)专门用于宿主机管理。在交换机端,将此接口配置为Access模式,并指定一个特定的VLAN(例如VLAN 50)。此接口不承载任何其他VLAN流量。

  2. 聚合业务网口:将服务器剩余的几个物理网口(例如eno2, eno3, eno4)进行动态链路聚合。在交换机端,对应的接口也配置为LACP聚合组,并将聚合口设置为允许所需VLAN通过的Trunk模式。

  3. 网络桥接隔离:在PVE中创建两个独立的虚拟网桥(Linux Bridge),分别承载管理流量和虚拟机业务流量。

通过实际测试,此方案可以稳定实现宿主机和虚拟机在同一网段的互通访问。

具体配置示例

以下是一个详细的连接与配置示例:

1. 物理连接与交换机配置

  • 服务器网口1(管理口)

    • 用途:专用于PVE宿主机管理。

    • 交换机配置:对应接口模式设置为Access,并指定VLAN ID为 50

  • 服务器网口2-4(业务口)

    • 用途:用于虚拟机网络通信。

    • 交换机配置:将这三个接口加入同一个LACP动态聚合组(如port-channel 1),并将该聚合口模式设置为Trunk,允许所有必要VLAN(包括VLAN 50)通过。

2. PVE宿主机的网络配置

登录PVE的Web管理界面,在“系统” -> “网络”中进行如下设置:

  • 第一步:创建管理网桥(vmbr0

    • 新建一个Linux Bridge,名称如vmbr0

    • 在“桥接端口”下拉菜单中选择物理网口eno1

    • vmbr0分配一个静态IPv4地址(例如192.168.50.10/24),该地址属于VLAN 50的网段。

    • 关键vmbr0本身的VLAN标签保持为空(不设置),因为交换机口是Access模式,流量已经属于VLAN 50。

  • 第二步:创建链路聚合接口(bond0)与业务网桥(vmbr1

    • 创建Bond接口:新建一个Bond接口,名称如bond0

      • “从属端口”选择物理网口eno2, eno3, eno4

      • 绑定模式选择“LACP(动态聚合)”。

    • 创建业务网桥:新建一个Linux Bridge,名称如vmbr1

      • 在“桥接端口”下拉菜单中选择刚刚创建的聚合接口bond0

      • 关键:务必勾选下方的 “VLAN感知” 选项。此设置允许该网桥处理带VLAN标签的流量。

3. 虚拟机的网络配置

在PVE中创建虚拟机时,将其虚拟网卡连接到业务网桥vmbr1上。

  • 在虚拟机的网络设备设置中,手动指定VLAN标签为 50

  • 为虚拟机分配一个与宿主机管理IP(192.168.50.10)同网段的IP地址(例如192.168.50.20/24)。

完成以上配置后,宿主机(通过vmbr0)和虚拟机(通过vmbr1上的VLAN 50)即可在同一IP网段内正常通信。