KVM中使用桥接模式.运维就业技术教程
在KVM中使用桥接模式可以让虚拟机直接接入物理网络,使其成为局域网中的独立节点。以下是配置和使用桥接模式的详细指南:
一、桥接模式原理
- 作用: 虚拟机通过宿主机的网桥(如
virbr0
)直接与物理交换机/路由器通信,获得与宿主机相同的网段IP。 - 特点:
- 虚拟机拥有独立IP,可被局域网内其他设备直接访问。
- 无需NAT转换,网络性能更高。
- 需确保宿主机网桥已正确配置。
二、配置步骤
1. 创建网桥接口
大多数Linux发行版默认包含virbr0
网桥(由libvirt自动管理)。若需自定义网桥:
# 查看现有网桥
virsh list --all | grep virbr0# 手动创建网桥(假设eth0为宿主机主网卡)
sudo brctl addbr mybr0 # 创建新网桥mybr0
sudo brctl addif mybr0 eth0 # 将eth0加入网桥# 启用网桥并禁用原网卡IP(可选)
sudo ifconfig mybr0 up # 激活网桥
sudo ifconfig eth0 0.0.0.0 # 清空eth0 IP(推荐)
2. 配置虚拟机使用桥接
编辑虚拟机XML配置(以virsh edit <vm_name>
为例):
<interface type='bridge'><mac address='52:54:00:f1:84:5b'/><source bridge='mybr0'/> <!-- 指向自定义网桥 --><model type='virtio'/>
</interface>
3. 虚拟机内部网络配置
- 自动获取IP: 启用DHCP客户端(如
dhclient
)。 - 静态IP配置: 手动设置与宿主机同网段的IP,网关和DNS需一致。
三、关键注意事项
-
网桥必须存在:
- 若使用默认
virbr0
,确保其已启动:virsh net-start default && virsh net-autostart default
- 自定义网桥需提前创建(见步骤1)。
- 若使用默认
-
避免IP冲突:
- 关闭宿主机上的重复IP分配服务(如NetworkManager的DHCP功能)。
- 虚拟机建议使用DHCP动态分配。
-
防火墙配置:
- 开放宿主机网桥的流量:
sudo firewall-cmd --permanent --zone=public --add-interface=mybr0 sudo firewall-cmd --reload
- 开放宿主机网桥的流量:
-
多网卡共存场景:
- 若虚拟机有多个接口,需明确优先级:
- 优先使用桥接接口作为默认路由。
- 删除冗余的NAT接口(
type='network'
)以避免路由混乱。
- 若虚拟机有多个接口,需明确优先级:
四、故障排查
-
虚拟机无IP地址:
- 检查虚拟机是否启用了DHCP客户端。
- 确认宿主机网桥的DHCP服务正常运行(如
dnsmasq
)。
-
无法访问外网:
- 检查宿主机默认路由是否正确。
- 确保虚拟机的默认路由指向网桥网关。
-
主机与虚拟机通信异常:
- 使用
ping
测试双方互通性。 - 检查中间网络设备(如交换机)的MAC地址表。
- 使用
五、示例完整配置
<devices><emulator>/usr/bin/qemu-system-x86_64</emulator><interface type='bridge'><mac address='52:54:00:f1:84:5b'/><source bridge='virbr0'/><model type='virtio'/></interface>
</devices>
通过以上配置,虚拟机将直接接入物理网络,实现与局域网设备的无缝通信。