本文将讲述一个问题:kvm客人使用libvirt xml定义如何使用虚拟网络?
1) nat,路线,孤立的,开放的类型
在主机中定义虚拟网络会创建一个虚拟的桥,相当于一个交换机.guest只需要连接到这个交换机上就可以了。
在客人的xml中添加:
#, virsh edit vm … & lt; interface type=& # 39;网络# 39;/比; & lt; source 网络=& # 39;net1& # 39;/祝辞,,====祝辞net1是已经定义好的一个虚拟网络 & lt;/interface> …
上述是最简单的xml,保存后会自动添加一些必要信息,如mac, pci地址、模型类型等信息。当然也可以手动指定。
2)用户(用户空间SLIRP堆栈),vhost-user,组播隧道,隧道TCP, UDP单播隧道等类型
只能在客人中以接口来引用。如用户是qemu提供的非特权用户可以使用的类型,可以这样引用:
<>之前,,& lt; interface type=& # 39;用户# 39;/祝辞(mac, pci地址,model 类型如果哦不指定,会自动生成)
3)桥(使用一个现有宿主linux桥)
本身存在一个linux桥,可以定义成网络给客人用(不会再创建桥),也可以直接给客人用。两种方式本质是一样的。
直接给客人用(1)中由libvirt创建的桥也可以这样引用):
& lt; interface type=& # 39;桥# 39;比; ,,,,,& lt; source 桥=& # 39;br0 # 39;/比; & lt;/interface>
4) macvtap(包括桥,vepa,私人的,透传四种),hostdev
可以定义一个网络作为接口池,以网络的形式引用,也可以直接引用。同3),两种方式本质是一样的。
定义接口池
<>之前,,& lt; network> ,,,,,,,& lt; name> direct-macvtap ,,,,,,,& lt; forward 模式=癰ridge"比; ,,,,,,,,,& lt; interface dev=癳th30"/比; ,,,,,,,,,& lt; interface dev=癳th31"/比; ,,,,,,,,,& lt; interface dev=癳th32"/比; ,,,,,,,,,& lt; interface dev=癳th33"/比; ,,,,,,,,,& lt; interface dev=癳th34"/比; ,,,,,,,& lt;/forward> ,,,,,& lt;/network>& lt; network> & lt;才能name> hostdev-net</name> & lt;才能forward 模式=& # 39;hostdev& # 39;,成功=& # 39;是的,比; ,,,& lt; driver name=& # 39; vfio& # 39;/比; ,,,& lt; address type=& # 39; pci # 39;,域=& # 39;0 & # 39;,总线=& # 39;4 & # 39;,槽=& # 39;0 & # 39;,函数=& # 39;1 & # 39;/比; ,,,& lt; address type=& # 39; pci # 39;,域=& # 39;0 & # 39;,总线=& # 39;4 & # 39;,槽=& # 39;0 & # 39;,函数=& # 39;2 & # 39;/比; ,,,& lt; address type=& # 39; pci # 39;,域=& # 39;0 & # 39;,总线=& # 39;4 & # 39;,槽=& # 39;0 & # 39;,函数=& # 39;3 & # 39;/比; & lt;才能/forward> ,& lt;/network>
客人中直接引用
#, virsh edit vm … & lt; interface type=& # 39;直接# 39;比; ,& lt; source  dev=& # 39; enp0s25& # 39;,模式=& # 39;vepa& # 39;/比; & lt;/interface> …
#, virsh edit vm … ,,& lt; interface type=& # 39; hostdev& # 39;,成功=& # 39;是的,比; ,,,,,& lt; source> ,,,,,,,& lt; address type=& # 39; pci # 39;,域=& # 39;0 x0000& # 39;,总线=& # 39;0 x00 # 39;,槽=& # 39;0 x19& # 39;,函数=& # 39;0 x0 # 39;/比; ,,,,,& lt;/source> ,,,& lt;/interface> …