菜鸟科技网

命令配置虚拟机网络如何正确设置?

在虚拟化环境中,虚拟机网络配置是确保虚拟机与宿主机、外部网络以及虚拟机之间通信的核心环节,通过命令行方式配置虚拟机网络,能够实现更精细化的控制,适用于自动化部署和批量管理场景,以下将详细介绍不同虚拟化平台(以KVM和VMware为例)的命令配置虚拟机网络方法,包括网络模式选择、具体操作步骤及常见参数说明。

命令配置虚拟机网络如何正确设置?-图1
(图片来源网络,侵删)

虚拟机网络模式概述

虚拟机网络通常分为以下几种模式,不同模式决定了虚拟机的网络访问能力:

  1. NAT模式:虚拟机通过宿主机的NAT功能访问外部网络,外部网络无法直接访问虚拟机,适合隔离环境。
  2. 桥接模式:虚拟机虚拟网卡直接连接到物理网络,与宿主机处于同一网段,外部网络可视为独立设备。
  3. 仅主机模式:虚拟机与宿主机通信,无法访问外部网络,适合本地测试。
  4. 自定义模式:结合上述模式特点,支持更复杂的网络拓扑,如多网卡绑定、VLAN隔离等。

KVM虚拟机网络配置命令

KVM(Kernel-based Virtual Machine)作为Linux内核级的虚拟化方案,通过virsh命令管理虚拟机网络。

创建虚拟网络(NAT模式)

首先定义一个名为default的NAT网络,若已存在可跳过此步骤:

virsh net-create --file /tmp/nat_net.xml

其中nat_net.xml内容如下:

命令配置虚拟机网络如何正确设置?-图2
(图片来源网络,侵删)
<network>
  <name>default</name>
  <uuid>12345678-1234-1234-1234-123456789012</uuid>
  <forward mode='nat'/>
  <bridge name='virbr0' stp='off' delay='0'/>
  <ip address='192.168.122.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.122.2' end='192.168.122.254'/>
    </dhcp>
  </ip>
</network>

启动并设置开机自启:

virsh net-start default
virsh net-autostart default

配置虚拟机网卡

使用virsh attach-device命令为虚拟机添加网卡,例如为虚拟机vm1添加NAT模式网卡:

virsh attach-device vm1 /tmp/nat网卡.xml --config --live

网卡配置文件nat网卡.xml

<interface type='network'>
  <mac address='52:54:00:12:34:56'/>
  <source network='default'/>
  <model type='virtio'/>
</interface>

桥接模式配置

创建桥接网卡br0并绑定物理网卡eth0

命令配置虚拟机网络如何正确设置?-图3
(图片来源网络,侵删)
nmcli connection add type bridge con-name br0 ifname br0
nmcli connection modify br0 ipv4.method manual ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1
nmcli connection add type bridge-slave ifname eth0 master br0
nmcli connection up br0
nmcli connection up eth0

虚拟机网卡配置修改为:

<interface type='bridge'>
  <mac address='52:54:00:12:34:56'/>
  <source bridge='br0'/>
  <model type='virtio'/>
</interface>

VMware虚拟机网络配置命令

VMware主要通过esxcli命令(ESXi主机)或govc工具(vCenter管理)进行配置。

使用govc配置虚拟机网络

安装govc工具后,配置环境变量:

export GOVC_URL='https://vcenter_ip/sdk'
export GOVC_USERNAME='admin'
export GOVC_PASSWORD='password'

查看可用网络:

govc ls network

为虚拟机vm1添加网卡并绑定到网络VM Network

govc vm.network.add -vm vm1 -net VM Network -net.adapter vmxnet3

修改虚拟机网络连接

修改已存在网卡的网络类型:

govc vm.network.change -vm vm1 -net 'New Network' -net.adapter vmxnet3 -device-key 4000

其中4000为网卡设备ID,可通过govc device.info -vm vm1查询。

网络配置参数说明

以下为虚拟机网络配置中的关键参数及作用:

参数 作用说明
type 网卡类型,如network(NAT)、bridge(桥接)、user(仅主机)等
source 网络名称或桥接设备名,如default(KVM NAT)、br0(桥接)
model 网卡驱动模型,如virtio(KVM推荐)、vmxnet3(VMware推荐)
mac address MAC地址,建议手动指定避免冲突
--live 实时生效,无需重启虚拟机;仅加--config则需重启生效

FAQs

Q1: 虚拟机无法获取IP地址如何排查?
A: 首先检查虚拟机网络模式是否正确(如NAT模式需确认宿主机DN服务是否开启),然后查看虚拟机网卡驱动是否安装正确(如KVM建议使用virtio驱动),最后检查DHCP服务是否正常启动(可通过virsh net-dhcp-leases default查看分配的IP)。

Q2: 如何实现虚拟机与宿主机的高性能网络通信?
A: 推荐使用桥接模式并选择virtio(KVM)或vmxnet3(VMware)网卡驱动,避免使用模拟网卡(如e1000),可调整MTU值至9000以支持Jumbo帧,减少网络延迟,命令示例:virsh attach-device vm1 /tmp/jumbo网卡.xml --config,配置文件中添加<mtu size='9000'/>

分享:
扫描分享到社交APP
上一篇
下一篇