第 6 章 网络配置
本章介绍基于 libvirt 的客户机虚拟机所使用的常见网络配置。
Red Hat Enterprise Linux 7 支持以下虚拟化网络设置:
- 使用网络地址转换(NAT)的虚拟网络.
- 使用 PCI 设备分配直接分配的物理设备
- 使用 PCIe SR-IOV 直接分配的虚拟功能
- 网桥网络
您必须启用 NAT、网络桥接或直接分配 PCI 设备,以允许外部主机访问客户机虚拟机上的网络服务。
6.1. 使用 libvirt 进行网络地址转换(NAT)
共享网络连接的最常见方法是使用网络地址转换(NAT)转发(也称为虚拟网络)。
主机配置
每个标准 libvirt
安装都提供虚拟机的基于 NAT 的连接作为默认虚拟网络。使用 virsh net-list --all 命令验证它可用。
# virsh net-list --all
Name State Autostart
-----------------------------------------
default active yes
如果缺少这个选项,可针对客户机在 XML 配置文件(如 /etc/libvirtd/qemu/myguest.xml)中使用以下内容:
# ll /etc/libvirt/qemu/
total 12
drwx------. 3 root root 4096 Nov 7 23:02 networks
-rw-------. 1 root root 2205 Nov 20 01:20 r6.4.xml
-rw-------. 1 root root 2208 Nov 8 03:19 r6.xml
默认网络从
/etc/libvirt/qemu/networks/default.xml
定义
将默认网络标记为自动启动:
# virsh net-autostart default
Network default marked as autostarted
启动默认网络:
# virsh net-start default
Network default started
libvirt
默认网络运行后,您将看到一个隔离的网桥设备。这个设备 没有 添加任何物理接口。新设备使用 NAT 和 IP 转发来连接物理网络。不要添加新接口。
# brctl show
bridge name bridge id STP enabled interfaces
virbr0 8000.000000000000 yes
libvirt 添加 iptables 规则,允许连接到 INPUT、FORWARD 和 POSTROUTING 链中的
virbr0
设备和 guest 虚拟机的流量。libvirt 然后尝试启用 ip_forward 参数。其他某些应用程序可能会禁用 ip_forward,因此最好的选项是将以下内容添加到 /etc/sysctl.conf
中:
net.ipv4.ip_forward = 1
虚拟机配置
主机配置完成后,客户机虚拟机就可以根据其名称连接到虚拟网络。要将客户端连接到 'default' 虚拟网络,可在 XML 配置文件中使用以下内容(如 /etc/libvirtd/qemu/myguest.xml
)用于客户机:
<interface type='network'> <source network='default'/> </interface>
注意
定义 MAC 地址是可选的。如果您没有定义 MAC 地址,则自动生成 MAC 地址,并将其用作网络使用的网桥设备的 MAC 地址。手动设置 MAC 地址对于在整个环境中保持一致性或便于参考,或者避免非常小的冲突几率。
<interface type='network'> <source network='default'/> <mac address='00:16:3e:1a:b3:4a'/> </interface>