KVM 虚拟机联网

本文介绍了KVM虚拟机的两种联网方式:NAT和Bridge。NAT方式允许虚拟机访问互联网但无法从网络访问,而Bridge方式创建虚拟网桥,使虚拟机成为网络中独立的主机,适用于服务器主机虚拟化。详细阐述了Bridge方式的原理、配置步骤以及客户机配置方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

KVM 虚拟机联网方式:NAT 和 Bridge

 

KVM 客户机网络连接有两种方式:

    用户网络(User Networking):让虚拟机访问主机、互联网或本地网络上的资源的简单方法,但是不能从网络或其他的客户机访问客户机,性能上也需要大的调整。NAT方式。

    虚拟网桥(Virtual Bridge):这种方式要比用户网络复杂一些,但是设置好后客户机与互联网,客户机与主机之间的通信都很容易。Bridge方式。

 

Bridge方式原理

Bridge方式即虚拟网桥的网络连接方式,是客户机和子网里面的机器能够互相通信。可以使虚拟机成为网络中具有独立IP的主机。

 

桥接网络(也叫物理设备共享)被用作把一个物理设备复制到一台虚拟机。网桥多用作高级设置,特别是主机多个网络接口的情况。

 

如上图,网桥的基本原理就是创建一个桥接接口br0,在物理网卡和虚拟网络接口之间传递数据。

Bridge方式的适用范围:服务器主机虚拟化。

 

网桥方式配置步骤

 

1、编辑修改网络设备脚本文件,增加网桥设备br0

vi /etc/sysconfig/network-scripts/ifcfg-br0

DEVICE="br0"

ONBOOT="yes"

TYPE="Bridge"

BOOTPROTO=static

IPADDR=10.0.112.39

NETMASK=255.255.255.0

GATEWAY=10.0.112.1

DEFROUTE=yes

 

上述配置将虚拟网卡配置在了10.0.112.*网段。如果不需要静态地址,可以把配置地址的相关项屏蔽。如:

 

DEVICE="br0"

ONBOOT="yes"

TYPE="Bridge"

BOOTPROTO=dhcp

 

 

 

2、编辑修改网络设备脚本文件,修改网卡设备eth0

复制代码

 

DEVICE="eth0"

NM_CONTROLLED="no"

ONBOOT="yes"

TYPE=Ethernet

BOOTPROTO=none

BRIDGE="br0"

NAME="System eth0"

HWADDR=44:37:E6:4A:62:AD

 

复制代码

 

NM_CONTROLLED这个属性值,根据redhat公司的文档是必须设置为“no”的(这个值为“yes”表示可以由服务NetworkManager来管理。NetworkManager服务不支持桥接,所以要设置为“no”。),但实际上发现设置为“yes”没有问题。通讯正常。

 

3、重启网络服务

 

#service network restart

 

4、校验桥接接口

 

#brctl show

bridge name     bridge id               STP enabled     interfaces

br0             8000.4437e64a62ad       no              eth0

 

客户机配置

 

客户机安装时注意,网络要选择用br0桥接方式。

 

图形化的方式:

文本方式:

 

编辑修改虚拟机配置文件/etc/libvirt/qemu/v1.xml,增加如下内容

 

<interface type='bridge'>

     <mac address='52:54:00:da:c3:dc'/>

     <source bridge='br0'/>

     <model type='virtio'/>

     <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>

</interface>

 

 

 

 

虚拟机启动后,验证网络接口是否正常:

 

# brctl show

bridge name     bridge id               STP enabled     interfaces

br0             8000.4437e64a62ad       no              eth0

                                                                       vnet0

 

### 如何创建 KVM 虚拟机 #### 准备工作 为了成功创建 KVM 虚拟机,需要先完成必要的准备工作。这包括安装所需的工具包以及配置存储和网络资源。 在准备阶段,需确保已安装以下组件: - `qemu-kvm` 和其相关工具用于支持虚拟化功能。 - `libvirt` 提供管理 API 并允许远程访问虚拟机。 - `virt-manager`, `virt-install` 是常用的虚拟机管理和创建工具。 - `openssh-askpass` 可选,但在某些图形界面环境中可能需要用到[^2]。 执行如下命令可以一次性安装上述所需软件包: ```bash yum install qemu-kvm qemu-kvm-tools libvirt virt-manager virt-install openssh-askpass -y ``` #### 存储设置 对于存储部分,通常会为虚拟机分配独立的磁盘空间。假设已经有一块未使用的硬盘 `/dev/sdb`,可以通过以下操作将其格式化并挂载到指定目录: 1. 使用 `fdisk` 命令划分分区: ```bash fdisk /dev/sdb ``` 2. 对新创建的分区进行文件系统初始化(这里以 XFS 文件系统为例): ```bash mkfs.xfs /dev/sdb1 ``` 3. 将此分区挂载至默认路径 `/var/lib/libvirt/images` 以便后续使用: ```bash mount /dev/sdb1 /var/lib/libvirt/images ``` 以上步骤完成后即可拥有一个可供虚拟机使用的存储位置[^1]。 #### 网络配置 推荐采用桥接模式实现宿主机与虚拟机之间的通信。具体做法如下: 1. 安装 `bridge-utils` 工具集: ```bash yum install bridge-utils -y ``` 2. 编辑网卡配置文件调整成桥接方式(假定原物理接口名为 eth0),修改后的典型内容如下所示: ```plaintext DEVICE=br0 TYPE=Bridge BOOTPROTO=dhcp ONBOOT=yes DELAY=0 DEVICE=eth0 HWADDR=<MAC地址> MASTER=br0 SLAVE=yes ONBOOT=yes BOOTPROTO=none NM_CONTROLLED=no ``` 重启网络服务使更改生效: ```bash systemctl restart network ``` 此时应该能够观察到新增了一个名称类似于 br0 的桥梁设备处于活动状态[^3]。 #### 创建虚拟机实例 最后一步就是实际构建虚拟机本身了。下面给出基于 CentOS ISO 镜像启动的新建例子: 下载操作系统镜像源文件: ```bash wget https://mirrors.tuna.tsinghua.edu.cn/centos/7.7.1908/isos/x86_64/CentOS-7-x86_64-DVD-1908.iso ``` 利用 `virt-install` 执行自动化部署流程: ```bash virt-install \ --name kvm-centos-test \ --ram 2048 \ --vcpus 2 \ --disk path=/var/lib/libvirt/images/kvm-centos-test.qcow2,size=20,bus=virtio,format=qcow2 \ --cdrom /path/to/CentOS-7-x86_64-DVD-1908.iso \ --network bridge=br0,model=virtio \ --graphics vnc,listen=0.0.0.0,port=5901 \ --noautoconsole ``` 其中各参数含义分别为:定义 VM 名称、内存大小(MB)、CPU 数量、磁盘容量(GB),指明引导介质所在位置,设定联网形式及显示协议等细节信息。 至此整个过程结束,可通过 VNC 连接到对应端口继续手动干预剩余安装环节或者等待全自动脚本处理完毕。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值