KVM下虚拟机网卡桥接配置

本文介绍了在KVM环境下,如何将虚拟机的网卡模式从NAT改为桥接,以便虚拟机能与其他网络主机通信。详细步骤包括禁用NetworkManager,创建桥接网卡br0,配置物理机和虚拟机的网络设置,以及检查通信是否成功。通过这些步骤,虚拟机可以在桥接模式下获得与物理机相同的网络地位。

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

基本概念

  1. KVM基本概念

    • KVM (全称是 Kernel-based Virtual Machine) 是 Linux 下 x86 硬件平台上的全功能虚拟化解决方案,包含一个可加载的内核模块 kvm.ko 提供和虚拟化核心架构和处理器规范模块

    • 使用 KVM 可允许多个包括 Linux 和 Windows 每个虚拟机有私有的硬件,包括网卡、磁盘以及图形适配卡等

    • KVM 技术已经从最初的概念发展成为企业 IT 基础设施管理系统。可以从kvm client 管理软件这样的单一界面直接访问位于多个远程位置的服务器和设备。KVM over IP 解决方案现在已具备完善的多地点故障转移功能、符合新服务器管理标准 (IPMI) 的直接界面,以及将本地存储媒体映射至远程位置的功能

  2. 桥接

    • 桥接(Bridging)是指依据OSI网络模型的链路层的地址,对网络数据包进行转发的过程,工作在OSI的第二层。一般的交换机,网桥就有桥接作用

    这里写图片描述

    Note:在KVM下运行的VM默认的网卡采用NAT的方式进行连接,无法与外界进行通讯,但是可以与同台KVM下的其他VM进行通讯,为了使VM与其他网络主机进行通讯,需要将网卡模式由NAT改为桥接的方式

环境配置说明

在物理机上,利用KVM安装虚拟机,实现网桥通信

  • 物理机:Centos 6.5 操作系统,CPU支持虚拟化,自带KVM,0.10.2版本的virsh
  • 虚拟机:Centos 7.0 操作系统
  • 物理机和虚拟机上的网卡配置文件均默认为 ifcfg-eth0
  • 物理机IP地址为 10.6.2.164,虚拟机IP地址为10.6.2.174,网关地址为10.6.2.254

具体配置

### 设置KVM虚拟机的网络桥接配置 #### 准备工作 为了使KVM虚拟机能通过宿主机访问外部网络并获得静态IP地址,需先安装必要的软件包。这包括`qemu-kvm`, `libvirt-daemon-system`, `bridge-utils`等工具。 ```bash sudo apt update && sudo apt upgrade -y sudo apt install -y qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virtinst ``` #### 创建Linux Bridge 创建名为`br0`的Linux网桥设备,并将其绑定到物理网卡上。假设当前系统的有线接口名称为`enp3s0`: 1. 编辑Netplan配置文件(通常位于`/etc/netplan/`目录下),例如对于Ubuntu 20.04及以上版本可能是`/etc/netplan/01-netcfg.yaml`: ```yaml network: version: 2 ethernets: enp3s0: dhcp4: no bridges: br0: interfaces: [enp3s0] addresses: ["192.168.1.x/24"] # 替换成实际想要分配给宿主机的固定IP地址 gateway4: "192.168.1.y" nameservers: addresses: [8.8.8.8, 8.8.4.4] parameters: stp: false forward-delay: 0 ``` 2. 应用新的网络配置: ```bash sudo netplan apply ``` 此时应该已经成功建立了名为`br0`的新网桥,并且该网桥被赋予了一个固定的IPv4地址[^3]。 #### 虚拟机网络设置 当启动一个新的KVM虚拟机时,可以通过命令行参数指定其使用上述创建好的网桥作为网络适配器。下面是一个简单的例子来展示如何利用`virt-install`命令创建带有桥接网络支持的Windows 10虚拟机: ```bash sudo virt-install \ --name windows10 \ --ram 4096 --vcpus=2 \ --cdrom=/path/to/windows.iso \ --disk size=50,bus=virtio \ --os-type=windows --os-variant=win10 \ --graphics vnc \ --network bridge=br0,model=virtio ``` 此操作会引导新创建的虚拟机连接至`br0`网桥,从而允许它像其他真实计算机一样接入局域网内并与之通信。 #### 测试连通性 完成以上步骤之后,可以在虚拟机内部尝试获取一个动态分配的IP地址或者手动设定一个静态IP地址。接着测试与其他机器之间的连通状况,比如执行如下指令查看是否能够正常解析域名和Ping通目标服务器: ```bash ping www.google.com ``` 如果一切顺利的话,则说明KVM虚拟机已正确设置了桥接网络模式。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值