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需一致。

三、关键注意事项

  1. 网桥必须存在

    • 若使用默认virbr0,确保其已启动:
      virsh net-start default && virsh net-autostart default
      
    • 自定义网桥需提前创建(见步骤1)。
  2. 避免IP冲突

    • 关闭宿主机上的重复IP分配服务(如NetworkManager的DHCP功能)。
    • 虚拟机建议使用DHCP动态分配。
  3. 防火墙配置

    • 开放宿主机网桥的流量:
      sudo firewall-cmd --permanent --zone=public --add-interface=mybr0
      sudo firewall-cmd --reload
      
  4. 多网卡共存场景

    • 若虚拟机有多个接口,需明确优先级:
      • 优先使用桥接接口作为默认路由。
      • 删除冗余的NAT接口(type='network')以避免路由混乱。

四、故障排查

  1. 虚拟机无IP地址

    • 检查虚拟机是否启用了DHCP客户端。
    • 确认宿主机网桥的DHCP服务正常运行(如dnsmasq)。
  2. 无法访问外网

    • 检查宿主机默认路由是否正确。
    • 确保虚拟机的默认路由指向网桥网关。
  3. 主机与虚拟机通信异常

    • 使用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>

通过以上配置,虚拟机将直接接入物理网络,实现与局域网设备的无缝通信。

### 配置KVM中的桥接网络模式 #### 创建物理网桥设备 为了使虚拟机能够直接访问外部网络,在宿主机上需先建立一个名为`br0`的网桥接口。此操作可以通过编辑网络脚本实现,具体如下: 对于CentOS系统而言,可以在`/etc/sysconfig/network-scripts/`目录下新建或修改相应的配置文件来定义这个网桥[^4]。 ```bash cd /etc/sysconfig/network-scripts/ tee ifcfg-br0 <<-'EOF' DEVICE=br0 ONBOOT=yes IPADDR=192.168.1.6 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 BOOTPROTO=none IPV6INIT=no TYPE=Bridge EOF ``` 同时也要调整实际物理网卡(假设为`eno1`)的相关设置以便其加入到新创建的网桥之中: ```bash tee ifcfg-eno1 <<-'EOF' HWADDR=38:68:DD:23:5D:30 TYPE=Ethernet DEVICE=eno1 NAME=eno1 UUID=539eac13-ae8d-4eb1-98b6-dd1d5eb888db ONBOOT=yes BRIDGE=br0 EOF ``` 上述命令会将物理网卡关联至刚刚设立好的网桥之上,从而允许流量在这两者间自由流通。 #### 修改虚拟机网络配置 当完成了宿主机端的准备工作之后,则需要进一步更改目标虚拟机内部关于网络适配器类型的设定,确保它能识别并利用已存在的网桥资源。这通常涉及到更新XML描述文档内的特定字段,使之指向正确的网桥名称以及采用合适的驱动程序模型——比如这里推荐使用的`virtio`类型,因其性能优越而被广泛采纳[^3]。 具体的改动可以参照下面这段示例代码片段所示的方式来进行: ```xml <interface type='bridge'> <mac address='52:54:00:eb:e0:24'/> <source bridge='br1'/> <!-- 注意这里的 br1 应该替换为你自己的网桥名 --> <model type='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </interface> ``` 值得注意的是,其中提到的MAC地址应当根据实际情况自行分配;另外就是源网桥的名字要与之前在宿主机上所建的一致,即应改为`br0`而非默认给出的例子中写的`br1`。 最后重启网络服务让所有变更生效,并确认新的网络架构能否正常运作即可完成整个过程[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

teayear

读后有收获可以获取更多资源

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值