Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

20.16.9. 网络接口

使用管理工具修改网络接口设备,该工具将配置 Domain XML 的以下部分:

图 20.35. 设备 - 网络接口


  ...
  <devices>
    <interface type='bridge'>
      <source bridge='xenbr0'/>
      <mac address='00:16:3e:5d:c7:9e'/>
      <script path='vif-bridge'/>
      <boot order='1'/>
      <rom bar='off'/>
    </interface>
  </devices>
  ...
指定对客户机虚拟机可见的网络接口有几种可能。以下每个小节都提供有关常见设置选项的更多详情。另外,每个 <interface> 元素具有一个可选 <地址> 子元素,它可以将接口绑定到特定的 pci 插槽,带属性 type='pci' (Refer to 第 20.16.3 节 “设备地址”)。

20.16.9.1. 虚拟网络

这是在主机带有动态/无线网络配置(或多主机物理机器环境(主机物理机器硬件详细信息中单独描述)上常规的客户机虚拟机连接的建议配置。<>另外,它提供了一个连接,其详情由指定的网络定义描述。根据虚拟网络的 转发模式 配置,网络可以完全隔离(未声明 <转发> 元素)、NAT 到显式网络设备或默认路由(转发模式='nat'),路由没有 NAT(转发 mode='route'/),或者直接连接到其中一个主机物理机器的网络接口(使用 macvtap)或桥接设备(转发模式='private| 网桥
对于具有转发模式 bridge、private、vepa 和 passthrough 的网络,假定主机物理机器在 libvirt 范围内已经有必要的 DNS 和 DHCP 服务。如果是隔离、nat 和路由网络,DHCP 和 DNS 在虚拟网络上由 libvirt 提供,可以通过使用 virsh net-dumpxml [networkname] 检查虚拟网络配置来确定。有一个虚拟网络为 'default' 设置,它针对默认路由进行 NAT' 并有一个 IP 范围 192.168.122.0/255.255.255.0。每个客户机虚拟机都将使用名称 vnetN 创建关联的 tun 设备,该设备也可通过 <target> 元素覆盖(请参考 第 20.16.9.11 节 “覆盖 target 元素”)。
当接口源是网络时,可以指定端口组以及网络的名称;一个网络可以定义多个端口组,每个 portgroup 含有不同类网络连接的稍有不同的配置信息。另外,类似 <直接> 网络连接(如下所示),类型为 network 的连接也可以指定 <virtualport> 元素,并将配置数据转发到 vepa(802.1Qbg)或 802.1Qbh 兼容交换机,或者 Open vSwitch 虚拟交换机。
由于实际类型的交换机可能因主机物理机器上网络的配置而不同,因此可以接受省略 <virtualport> 类型属性,并从多个不同的虚拟端口类型(以及离开某些属性)指定属性;在域启动时,完整的虚拟端口元素将由网络中定义的类型和属性合并,从而构成接口所引用的类型和属性。<>新结构化的虚拟端口是两者的组合。低虚拟端口中的属性无法对以更高的虚拟端口定义的项进行更改。接口具有最高优先级,端口组最低优先级。
例如,若要创建具有 802.1Qbh 交换机和 Open vSwitch 交换机的网络,您可以选择不指定类型,但必须要提供 profileidinterfaceid。要从虚拟端口填充的其他属性(如 manageridtypeidprofileid )是可选的。
如果要将客户机虚拟机限制为仅连接到某些类型交换机,您可以指定虚拟端口类型,并且只有使用指定端口类型的交换机才会连接。您还可以通过指定附加参数来进一步限制交换机连接。因此,如果指定端口并且主机物理机器的网络具有不同类型的虚拟端口,接口的连接将失败。虚拟网络参数使用管理工具来定义,这些文件修改域 XML 的以下部分:

图 20.36. 设备 - 网络接口虚拟网络


  ...
  <devices>
    <interface type='network'>
      <source network='default'/>
    </interface>
    ...
    <interface type='network'>
      <source network='default' portgroup='engineering'/>
      <target dev='vnet7'/>
      <mac address="00:11:22:33:44:55"/>
      <virtualport>
        <parameters instanceid='09b11c53-8b5c-4eeb-8f00-d84eaa0aaa4f'/>
      </virtualport>

    </interface>
  </devices>
  ...