首页 > 系统相关 > VMware Workstation 桥接模式的网卡上让虚拟机使用 VLAN 的正确方法

VMware Workstation 桥接模式的网卡上让虚拟机使用 VLAN 的正确方法

时间:2023-06-11 19:44:24浏览次数:48  
标签:vlan 桥接 虚拟机 VLAN 网卡 虚拟 trunk

要解决的问题

有一个虚拟机运行在 VMWare workstation 中,如何让这个虚拟机桥接到宿主机的网络上的某个 VLAN?

常见使用场景

只有一个网口的单臂软路由,同时宿主机为 Windows,虚拟机软件为 VMware Workstation,在虚拟机中运行 OpenWrt

需要在一个网口上,利用 VLAN 实现虚拟 WAN 口上的 PPPoE 拨号和 虚拟 LAN 口上的上网服务。

 

或者是电脑接入在交换机的trunk口,VMware Workstation的各虚拟机要接入对应的vlan(没多网卡和网卡支持VLAN的情况下)

 

方法

  1. 根据宿主机网卡的品牌,下载对应的 VLAN 设置软件。已知 Realtek 和 Intel 网卡都提供这样的软件。Realtek 网卡的软件为 Realtek Ethernet Diagnostic Utility

  2. 下文以 Realtek 网卡为例。如果你的网卡厂商不提供 VLAN 设置软件,请直接转到文末

  3. 在宿主机上设置你想要使用的 VLAN 编号,软件将会创建一个虚拟网卡。记住网卡名称和适配器名称

  1. 打开 VMWare 虚拟网络编辑器,新建一个网络,例如 VMnet12

  2. 桥接新建的网络到刚才添加的 VLAN 虚拟网卡上

  1. 给虚拟机添加一张连接到 VMnet12 网卡。另外我推荐修改 vmx 配置文件把网卡类型改成 vmxnet3 以获得最佳性能(vmxnet3为万兆半虚拟化网卡,默认的e1000性能很烂)

  1. 在虚拟机使用新加的网卡。注意在虚拟机里面就像一个普通的网卡一样用它就行了,千万不要带上vlan tag

如果网卡厂商没提供 VLAN 设置软件 (很多普通网卡都不支持咯)

具体请参阅本文

思路是:利用 Hyper-V 命令行工具(不需要启用 Hyper-V 平台),来创建虚拟 VLAN 网卡,实现和上面步骤3一样的效果

# "Ethernet" is the available NIC that you want the VSwitch to be based on  //新建一个 虚拟机交换机,桥接到 Ethernet 网卡 
New-VMSwitch -Name "新建虚拟交换机名称" -NetAdapterName "Ethernet"
# Create virtual adapters for each vlan you want to assign.  //新建一个虚拟网卡,属于 某个虚拟交换机
Add-VMNetworkAdapter -ManagementOS -Name 虚拟网卡名称 -SwitchName 交换机名称
# Then configure the interface you just created to listen for the vlan tag needed  // 把虚拟网卡加入 某个VLAN 
Set-VMNetworkAdapterVlan -ManagementOS -VMNetworkAdapterName 虚拟网卡名称 -Access VlanID 10
# Now you have a virtual interface that is configured for a specific vlan. To have access to that vlan inside a virtual machine, simply change the settings from VMware Workstation Virtual Network Editor and have a vmnet that is bridged with the Hyper-V virtual NIC.    //vmware Workstation 把相关vmnet桥接到这个虚拟网卡上

 

实战命令:

PS C:\WINDOWS\system32>New-VMSwitch -Name "trunk" -NetAdapterName "Ethernet"   

//以本地网卡Ethernet创建交换机trunk,默认不打标签 Untagged

PS C:\WINDOWS\system32> Add-VMNetworkAdapter -ManagementOS -Name trunk-x -SwitchName trunk  

//在交换机trunk下创建虚拟网卡trunk-x

PS C:\WINDOWS\system32> Set-VMNetworkAdapterVlan -ManagementOS -VMNetworkAdapterName trunk-x  -Trunk -AllowedVlanIdList 1-4094 -NativeVlanId 1   

//交换机trunk下的虚拟网卡trunk-x配置成trunk模式,通过所有Vlan ID,默认Pvlan1 

 

PS C:\WINDOWS\system32> Get-VMNetworkAdapterVlan -ManagementOS

VMName VMNetworkAdapterName   Mode     VlanList

------ --------------------   ----     --------

       vlan1                  Access   1

       Container NIC c9ffa239 Untagged

       trunk-x                Trunk    1,1-4094

       trunk                  Untagged

//显示hyper-v主机下,所有网卡的vlan情况

 

PS C:\WINDOWS\system32> Get-VMNetworkAdapterVlan -ManagementOS -VMNetworkAdapterName trunk-x

 

VMName VMNetworkAdapterName Mode  VlanList

------ -------------------- ----  --------

       trunk-x              Trunk 1,1-4094

//显示hyper-v主机下,trunk-x网卡的vlan情况

 

 

注意

本方法的实质是桥接虚拟机网卡到 VLAN 虚拟网卡上,这样做是因为 VMware 根本没法桥接带有 VLAN Tag 的 Ethernet 帧而不得已为之。

这样做的缺点是无法让虚拟机感知到 VLAN 的存在,也就是说你不能像 eth0.2 这样直接在虚拟机里面指定 VLAN 编号,要使用某个 VLAN 必须先在宿主机设置桥接。

 

标签:vlan,桥接,虚拟机,VLAN,网卡,虚拟,trunk
From: https://www.cnblogs.com/im17me/p/17473443.html

相关文章

  • Debian 12 x86_64 OVF (sysin) - VMware 虚拟机模板
    Debian12x86_64OVF(sysin)-VMware虚拟机模板请访问原文链接:https://sysin.org/blog/debian-12-ovf/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgDebianGNU/Linux12(bookworm)(Linuxdebian6.1.0-amd64)部署截图及说明自定义OVF属性填写说明:......
  • 第8章 桥接模式(Bridge Pattern)
    桥接模式(BridgePattern)——.NET设计模式系列之九Terrylee,2006年2月概述在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维度的变化”?如何利用面向对象的技术来使得该类型能够轻松的沿着多个方向进行变化,而又不引入额外的复杂度?这就要使用Bridg......
  • ESXi虚拟化的坑-细微区别下虚拟机性能差异巨大
    ESXi虚拟化的坑-细微区别下虚拟机性能差异巨大背景周末在公司无偿加班.同组的小伙伴周一有一个需求,我想着周六乘着机器压力不大进行一下虚拟机的clone但是截止到晚上快十点都没有完全Clone完.我感觉非常不对.然后突然想是不是硬件的bug导致性能有差异.想着最近总是在......
  • VMware里创建的虚拟机,不支持虚拟化的解决方法
    VMware里创建的虚拟机,默认不支持虚拟化。1.使用命令lsmod|grepkvm   和lsmod-Po"vmx|svm"/proc/cpuinfo查看2.怎么解决呢,首先,先关机,然后按下图操作:3.开机验证:......
  • VirtualBox 导入/注册 虚拟机文件 .vbox 失败
    VirtualBox导入/注册虚拟机文件.vbox失败问题情景Error:Failedtoopenvirtualmachinelocatedin<.vbox所在目录>.ErrorinJ:\<.vbox所在目录>(line59)--Invalidvalue'WAS'inAudioAdapter/@driverattribute.F:\tinderbox\win-6.1\src\VBox\Main......
  • 在Linux系统中创建虚拟网卡
    .....创建虚拟网卡:>$sudoiplinkadddevvirnet0typeveth其中virnet0是虚拟网卡的名字,可以换成你喜欢的名字。接下来为虚拟网卡配置IP地址:>$sudoipaddradd192.168.99.2/24devvirnet0激活虚拟网卡,以下两条命令使用任意一条均可:>$sudoiplinksetv......
  • 基于网卡地址做设备指纹的优缺点
    生成设备指纹的目的是为了能唯一地标识设备,而且这个标识在设备的生命周期内保持稳定。因此,在选择设备特征时,通常需要考虑这些特征的唯一性和稳定性。软件及配置信息一版不适合,是因为这类变化虽然不大,但万一变化后,设备指纹会变,影响使用。比如:操作系统信息:操作系统版本、安装日......
  • VMware克隆虚拟机后修改UUID、MAC地址、IP和主机名
    VMware克隆虚拟机后修改UUID、MAC地址、IP和主机名https://blog.csdn.net/weixin_44657888/article/details/130679813 --------------------------------------------------------设置静态ipcat/etc/sysconfig/network-scripts/ifcfg-ens33TYPE="Ethernet"PROXY_METHOD......
  • 解决VMware中Kali虚拟机无法全屏(完美解决)
    今天打开VMware中的Kali虚拟机出现了个怪事,就是显示是二分之一,有部分地方空着并没有占满。之后就使用了以下方法解决:设置分辨率:但是,设置分辨率的效果并不理想,不是容易过大,就是容易过小,很难刚刚好。于是就:使用VMware自带功能“立刻适应客户机”完美解决。......
  • Intel网卡编译安装步骤
    1、网卡厂家官网根据网卡型号搜索驱动。https://www.intel.cn/content/www/cn/zh/download-center/home.html2、查找对应的网卡驱动(下载对应的网卡驱动即可)3、将下载好的软件包上传到系统解压 大部分包都是以kernel开头,可以用命令yumlistinstalled|grepkernel来......