KVMOVS组网配置案例-4
- 互联网
- 2025-09-15 05:09:01

0.配置要求 1.使用ovs创建一个网桥,网桥上添加宿主机eth0接口,接口为trunk,可转发所有vlan的数据2.使用KVM创建并图形安装两个linux虚拟机vm1,vm2。3.vm1关联ovs的vlan10接口,vm2关联ovs的vlan20接口。4.vm1获取vlan10的IP地址,vm2获取vlan20IP地址。5.vlan10,vlan20的网关在宿主机eth0接口连接的物理交换机上,物理交换机开启vlan10,vlan20的DHCP功能,为vm1,vm2自动分配地址。 1. 环境准备 1.1 安装必要软件 # 安装 OVS、KVM 和 virt-install sudo apt update sudo apt install openvswitch-switch qemu-kvm libvirt-daemon-system libvirt-clients virt-manager virt-install 1.2 启动服务并验证 sudo systemctl start libvirtd openvswitch-switch sudo systemctl enable libvirtd openvswitch-switch sudo ovs-vsctl show # 验证 OVS 服务正常
2. 配置 OVS 网桥 2.1 创建 OVS 网桥并添加 Trunk 端口 # 创建网桥 ovs-br0 sudo ovs-vsctl add-br ovs-br0 # 将物理网卡 eth0 添加为 Trunk 端口(允许 VLAN 10 和 20) sudo ovs-vsctl add-port ovs-br0 eth0 trunk=10,20 # 验证配置 sudo ovs-vsctl show
3. 创建虚拟机磁盘 # 创建 vm1 和 vm2 的磁盘镜像 sudo qemu-img create -f qcow2 /var/lib/libvirt/images/vm1.qcow2 10G sudo qemu-img create -f qcow2 /var/lib/libvirt/images/vm2.qcow2 10G
4. 使用 virt-install 创建虚拟机 4.1 创建 vm1(关联 VLAN 10) sudo virt-install \ --name vm1 \ --ram 1024 \ --vcpus 1 \ --disk path=/var/lib/libvirt/images/vm1.qcow2,size=10 \ --os-type linux \ --os-variant ubuntu20.04 \ --network bridge=ovs-br0,model=virtio,virtualport_type=openvswitch,virtualport_options:tag=10 \ --graphics spice,listen=0.0.0.0 \ --console pty,target_type=serial \ --cdrom /path/to/ubuntu-20.04.iso # 替换为实际 ISO 路径 4.2 创建 vm2(关联 VLAN 20) sudo virt-install \ --name vm2 \ --ram 1024 \ --vcpus 1 \ --disk path=/var/lib/libvirt/images/vm2.qcow2,size=10 \ --os-type linux \ --os-variant ubuntu20.04 \ --network bridge=ovs-br0,model=virtio,virtualport_type=openvswitch,virtualport_options:tag=20 \ --graphics spice,listen=0.0.0.0 \ --console pty,target_type=serial \ --cdrom /path/to/ubuntu-20.04.iso # 替换为实际 ISO 路径
5. 验证 OVS 配置 5.1 查看 OVS 网桥端口及 VLAN 标记 sudo ovs-vsctl show sudo ovs-vsctl get port vnet0 tag # 应输出 10 sudo ovs-vsctl get port vnet1 tag # 应输出 20 5.2 预期输出示例 Bridge ovs-br0 Port "vnet0" tag: 10 Interface "vnet0" Port "vnet1" tag: 20 Interface "vnet1" Port "eth0" trunks: [10, 20] Interface "eth0"
6. 配置虚拟机网络 6.1 进入虚拟机控制台安装系统 # 通过控制台完成操作系统安装(按 Enter 激活) virsh console vm1 virsh console vm2 6.2 启用 DHCP 获取 IP
在虚拟机内执行:
# 在 vm1(VLAN 10)中 dhclient -v eth0 ip addr show eth0 # 应获取类似 192.168.10.100/24 的 IP # 在 vm2(VLAN 20)中 dhclient -v eth0 ip addr show eth0 # 应获取类似 192.168.20.100/24 的 IP7. 网络连通性测试 7.1 测试网关连通性 # 在 vm1 中 ping 192.168.10.1 # 假设 VLAN 10 网关为 192.168.10.1 # 在 vm2 中 ping 192.168.20.1 # 假设 VLAN 20 网关为 192.168.20.1 7.2 测试跨 VLAN 隔离 # 在 vm1 中 ping vm2 的 IP(默认应不通) ping 192.168.20.100
8. 持久化配置 8.1 持久化 OVS 配置 # OVS 配置默认已持久化,无需额外操作 8.2 持久化虚拟机配置 # 设置虚拟机随宿主机启动 virsh autostart vm1 virsh autostart vm2
9. 故障排查 9.1 虚拟机无法获取 IP 检查 OVS 端口 VLAN 标记:sudo ovs-vsctl get port vnet0 tag # 应为 10 sudo ovs-vsctl get port vnet1 tag # 应为 20 验证物理交换机配置: 确认物理交换机连接宿主机的端口为 Trunk,允许 VLAN 10 和 20。确认 VLAN 10 和 20 的 DHCP 服务已启用。 9.2 虚拟机接口未添加到 OVS 检查 libvirt 网络定义:virsh net-list --all # 确认未使用默认 NAT 网络 virsh dumpxml vm1 | grep -A 10 '<interface' # 确认接口绑定到 ovs-br0
总结
通过以上步骤,您已完成:
OVS 网桥配置:创建 Trunk 端口并允许 VLAN 10 和 20。虚拟机自动化部署:使用 virt-install 自动关联 OVS 网桥和 VLAN。网络验证:确保虚拟机通过物理交换机 DHCP 获取 IP,并按 VLAN 隔离。此方案结合了自动化工具(virt-install)的便利性和 OVS 的灵活性,适用于需要多租户网络隔离的虚拟化环境。
KVMOVS组网配置案例-4由讯客互联互联网栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“KVMOVS组网配置案例-4”