KVM 网络模式

发布时间: 更新时间: 总字数:1123 阅读时间:3m 作者: IP上海 分享 网址

kvm 虚拟机可以直接连接宿主机和外部网络,而且完全由 qemu 自身完全实现,不依赖于(bridge,dnsmasq,iptables等),不需要root权限。Qemu使用 slirp 实现了一套 TCP/IP协议栈,而且用这个协议栈实现了一套虚拟的 NAT 网络

说明

优点:

  • 简单、独立性好、不需要root权限、客户机网络隔离性好

缺点:

  • 性能差
  • 不支持部分网络功能(如ICMP),所以不能再客户机中使用ping命令测试
  • 不能从宿主机或外部网络直接访问客户机

使用

  1. -netdev user 介绍
-netdev user[,option][,option][,...]

常用参数:

  • net=addr[/mask] 设置客户机可以看到的IP地址
  • host=addr 指定客户机可见宿主机地址,默认值为客户机所在网络的第2个地址
  • restrict=y|yes|n|no 如果将此项打开,则客户机将会被隔离,客户机不能与宿主机通信,IP数据包不能与外部通信,这个选项不会影响到hostfwd指定的转发规则
  • hostname=hostname 设置在宿主机DHCP服务器中保存的客户机主机名
  • dhcpstart=addr 设置分配给客户机的第一个IP,在qemu内嵌的DHCP服务器中有16个IP地址可以分配,默认是(如10.0.2.15~10.0.2.30)
  • dns=addr 指定虚拟的DNS地址,该地址不能与宿主机一样,默认为网络中的第三个IP地址(如:10.0.2.3)
  • tftp=dir 激活QEMU内嵌的TFTP服务器,dir为TFTP服务器的根目录;客户机连接服务器的时候需要使用binary模式来操作
  • hostfwd=[tcp|udp]:[hostaddr]:hostport-[guestaddr]:guestport 将访问宿主机的hostport端口的TCP/UDP连接重定向到客户机(guestaddr)的guestport端口
  • guestfwd=[tcp]:server:port-dev 将客户机中访问ip地址为server的端口的连接转发到宿主机的dev字符设备上,可以多次重复使用
  • bootfile=file 让file文件成为客户机可以使用的BOOTP启动镜像文件,它与tftp选项联合使用,可以实现从网络启动客户机的功能
  • smb=dir[,smbserver=addr]激活samba服务器,可以让客户机访问宿主机的dir目录,addr为samba服务器地址,addr为用户网络的第四个地址.(宿主机必须安装samba服务器软件)
  1. 使用TCP socket连接客户机
-netdev socket,id=str[,fd=h][,udp=host:port][,localaddr=host:port]
  1. 使用UDP的多播socket建立客户机间的连接
-netdev socket,id=str[,fd=h][,mcast=maddr:port[,localaddr=addr]]
  1. 不分配任何网络设别
-netdev none
  1. vga 设备
  • -vga type 选择为客户机模拟VGA卡的类型,可以选类型有如下4类:
    • cirrus 为客户及模拟出Cirrus Logic GD5466显卡,客户机lspci | grep VGA可以查看VGA卡的类型。
    • std 模拟标准的VGA卡,带有Bochs VBE扩展
    • vmware 提供VMware SVGA-II支持
    • none 关闭VGA卡
      • -no-frame 使用SDL显示时没有边框
      • -full-screen 启动客户机时,就自动使用全屏显示
      • -alt-grab 使用ctrl+alt+shift组合键抢占和释放鼠标
      • -ctrl-grab 使用右ctrl键去抢占和释放鼠标
root@ubuntu:~# cat /etc/libvirt/qemu/networks/default.xml
<!--
WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE
OVERWRITTEN AND LOST. Changes to this xml configuration should be made using:
  virsh net-edit default
or other application using the libvirt API.
-->

<network>
  <name>default</name>
  <uuid>fa3964d8-b294-4b23-a600-6e79954bc168</uuid>
  <forward mode='nat'/>
  <bridge name='virbr0' stp='on' delay='0'/>
  <mac address='52:54:00:0f:d0:15'/>
  <ip address='192.168.122.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.122.2' end='192.168.122.254'/>
    </dhcp>
  </ip>
</network>
Home Archives Categories Tags Statistics
本文总阅读量 次 本站总访问量 次 本站总访客数