这篇文章系统性地介绍了KVM虚拟化环境中虚拟网络的日常管理。主要内容总结如下:
1. 默认网络环境
- 安装KVM虚拟化组件后,会自动创建一个名为
default的NAT模式虚拟网络。 - 该网络的核心组件包括:网桥
virbr0、虚拟TAP设备virbr0-nic、由iptables实现的NAT规则以及提供DHCP和DNS服务的dnsmasq进程。 - 虚拟机的网络流量通过宿主机进行地址转换后访问外部网络,但外部网络无法直接访问虚拟机(仅允许由内到外的访问)。
2. TUN/TAP设备与网桥管理
- TUN/TAP设备:是虚拟网络接口,功能类似物理网卡。TUN处理三层IP数据包,TAP处理二层以太网帧。TAP设备可加入网桥。
- 网桥管理:可以使用
iproute软件包(如ip命令)、NetworkManager(如nmcli命令)或Web管理工具Cockpit来创建和管理网桥。网桥会将其第一个接口的MAC地址作为自己的MAC地址。
3. 虚拟网络类型与配置
文章详细讲解了以下几种主要的虚拟网络类型及其配置方法:
- NAT模式:默认模式。虚拟机通过宿主机进行网络地址转换访问外网,配置简单。
- 桥接模式:虚拟机直接连接到物理网络,与宿主机处于同一网段,外部主机可直接访问。需要手动创建网桥并将物理网卡加入。
- 隔离模式:形成一个封闭网络,虚拟机之间及与宿主机之间可通信,但完全与外部网络隔离。
- 路由模式:宿主机充当路由器,虚拟机流量通过宿主机路由到外部网络。需要在外部网络设备上配置返程路由。
- 开放模式:与路由模式类似,但libvirt不自动配置任何防火墙规则,需要管理员手动配置。
- 直接附加模式:使用macvtap驱动,将虚拟机网卡直接附加到宿主机的物理网卡,有VEPA、bridge、private、passthrough等子模式。
- PCI直通与SR-IOV:将物理PCI设备(如网卡)直接分配给虚拟机独占使用(直通),或将单个支持SR-IOV的物理设备虚拟为多个设备分配给多个虚拟机使用,以获得接近物理设备的性能。
4. 虚拟网络创建与管理工具
可以通过多种工具创建和管理上述网络:
- 图形工具:
virt-manager,Cockpit。 - 命令行工具:
virsh的相关命令(如net-define,net-start,net-edit等)。
5. VLAN支持
- 通过在宿主机物理网卡上创建VLAN子接口,并将不同VLAN的子接口绑定到不同的网桥,可以实现让不同虚拟机接入不同的VLAN。
- 需要在连接的物理交换机端口上配置Trunk模式。
6. 网络过滤器
- 网络过滤器是libvirt提供的防火墙子系统,用于在宿主机层面对虚拟机的网络流量进行强制控制,提升安全性。
- 可以定义规则(如允许/阻止特定协议、端口),并绑定到虚拟机的网络接口。
- 系统提供了一些基础过滤器(如防IP/MAC欺骗的
clean-traffic),也支持管理员自定义复杂的过滤规则。
本章小结
本章全面阐述了KVM虚拟网络的管理,涵盖了从基础概念(TUN/TAP、网桥)、各种网络模式(隔离、NAT、桥接等)的原理与配置,到高级功能(VLAN、网络过滤器)的应用,为管理和维护KVM虚拟化环境下的网络提供了系统性的指导。
