VMware Workstation 桥接模式的网卡上让虚拟机使用 VLAN 的正确方法 |
您所在的位置:网站首页 › 原神开场动画那个女的是谁 › VMware Workstation 桥接模式的网卡上让虚拟机使用 VLAN 的正确方法 |
要解决的问题
有一个虚拟机运行在 VMWare workstation 中,如何让这个虚拟机桥接到宿主机的网络上的某个 VLAN? 常见使用场景只有一个网口的单臂软路由,同时宿主机为 Windows,虚拟机软件为 VMware Workstation,在虚拟机中运行 OpenWrt 需要在一个网口上,利用 VLAN 实现虚拟 WAN 口上的 PPPoE 拨号和 虚拟 LAN 口上的上网服务。
或者是电脑接入在交换机的trunk口,VMware Workstation的各虚拟机要接入对应的vlan(没多网卡和网卡支持VLAN的情况下) 方法 根据宿主机网卡的品牌,下载对应的 VLAN 设置软件。已知 Realtek 和 Intel 网卡都提供这样的软件。Realtek 网卡的软件为 Realtek Ethernet Diagnostic Utility 下文以 Realtek 网卡为例。如果你的网卡厂商不提供 VLAN 设置软件,请直接转到文末 在宿主机上设置你想要使用的 VLAN 编号,软件将会创建一个虚拟网卡。记住网卡名称和适配器名称 ![]() 打开 VMWare 虚拟网络编辑器,新建一个网络,例如 VMnet12 桥接新建的网络到刚才添加的 VLAN 虚拟网卡上 ![]() 给虚拟机添加一张连接到 VMnet12 网卡。另外我推荐修改 vmx 配置文件把网卡类型改成 vmxnet3 以获得最佳性能(vmxnet3为万兆半虚拟化网卡,默认的e1000性能很烂) ![]() 在虚拟机使用新加的网卡。注意在虚拟机里面就像一个普通的网卡一样用它就行了,千万不要带上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 必须先在宿主机设置桥接。
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |