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 交换机的网络,您可以选择不指定类型,但必须要提供
profileid
和 interfaceid
。要从虚拟端口填充的其他属性(如 managerid
、typeid
或 profileid
)是可选的。
如果要将客户机虚拟机限制为仅连接到某些类型交换机,您可以指定虚拟端口类型,并且只有使用指定端口类型的交换机才会连接。您还可以通过指定附加参数来进一步限制交换机连接。因此,如果指定端口并且主机物理机器的网络具有不同类型的虚拟端口,接口的连接将失败。虚拟网络参数使用管理工具来定义,这些文件修改域 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> ...