KVM 网络模式

发布时间: 更新时间: 总字数:940 阅读时间:2m 作者: 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
本文总阅读量 次 本站总访问量 次 本站总访客数