第 8 章 网络配置

8.1. libvirt 的网络地址转换(NAT)

8.2. 使用 libvirt 桥接的联网

本章提供基于 libvirt 应用程序使用的通用联网配置说明。这个信息对所有管理程序,无论是 Xen、KVM 还是其它都适用。有关详情请参考 libvirt 网络构架文档。

The two common setups are “virtual network” or “shared physical device”. The former is identical across all distributions and available out-of-the-box. The latter needs distribution specific manual configuration.

8.1. libvirt 的网络地址转换(NAT)

共享网络连接最常用的方法之一就是使用网络地址转换(NAT)转发(也就是我们说的虚拟网络)。

主机配置

每个标准 libvirt 安装都提供即时到虚拟机的基于 NAT 的连接性,这也被称为“默认虚拟网络”。使用 virsh net-list --all 命令验证其可用性。

  1. # virsh net-list --all
  2. Name State Autostart
  3. -----------------------------------------
  4. default active yes

如果缺少它,可重新载入并激活示例 XML 配置文件:

  1. # virsh net-define /usr/share/libvirt/networks/default.xml

默认网络是在 /usr/share/libvirt/networks/default.xml 中定义的

将默认网络设定为自动启动:

  1. # virsh net-autostart default
  2. Network default marked as autostarted

启动默认网络:

  1. # virsh net-start default
  2. Network default started

libvirt 默认网络运行后,您将会看到独立的桥接设备。这个设备没有添加任何物理接口,因为它使用 NAT 和 IP 转发与外界连接,因此不要添加新接口。

  1. # brctl show
  2. bridge name bridge id STP enabled interfaces
  3. virbr0 8000.000000000000 yes

libvirt 可添加 iptables 规则,该规则允许所有进入和来自附加到 virbr0 设备的客户端流量,该设备可处于 INPUTFORWARDOUTPUTPOSTROUTING 链中。libvirt 随后试图启用 ip_forward 参数。其它一些程序可能会禁用 ip_forward,因此最佳选择是在 /etc/sysctl.conf 中添加以下内容。

  1. net.ipv4.ip_forward = 1
客户端配置

完成主机配置后,就可将客户端根据其名称连接到虚拟网络中。要将某个客户端连接到“默认”虚拟网络中,请在该客户端中使用以下 XML:

  1. <interface type='network'>
  2. <source network='default'/>
  3. </interface>

Note

定义 MAC 地址是可选的。如果跳过则自动生成 MAC 地址。手动设置 MAC 地址在某些情况下非常有用。

  1. <interface type='network'>
  2. <source network='default'/>
  3. <mac address='00:16:3e:1a:b3:4a'/>
  4. </interface>