虚拟网络(1)——如何使用它在一个客人

  

本文将讲述一个问题: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桥,可以定义成网络给客人用(不会再创建桥),也可以直接给客人用。两种方式本质是一样的。


<>之前,#,virsh  net-dumpxml  birdge-net   & lt; network>   & lt;才能name> bridge-net</name>   ,,& lt; forward 模式=& # 39;大桥# 39;/比;   ,,& lt; bridge  name=& # 39; br0 # 39;/比;   ,& lt;/network>   #,virsh  edit  vm   …   & lt; interface  type=& # 39;网络# 39;比;   ,,& lt; source 网络=& # 39;bridge-net& # 39;比;   & lt;/interface>   …


直接给客人用(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>
  …


虚拟网络(1)——如何使用它在一个客人