1. 程式人生 > >Qemu-kvm的網絡模式

Qemu-kvm的網絡模式

kvm 多元化 網絡

qemu-kvm之橋接模式

橋接原理圖
技術分享
在qemu-kvm的橋接方式中,將宿主機的物理網卡橋接在br0,虛擬網卡vnet1,vnet0鏈接在eth0上,eth0相當於交換機。客戶機從網卡前驅上將信息發送早網卡後驅上,網卡後驅通過eth0將信息發送給br0,在此將信息發送出去。

橋接的配置

 1. 下載並安裝tunctl
    [[email protected] ~]# yum install tunctl
 2. 創建橋接
    [[email protected] ~]# brctl addbr br0
 3. 鏈接橋接
    [[email protected] ~]# brctl addif br0 eth0
 4. 橋接網卡啟用stp協議
    [[email protected] ~]# brctl stp br0 up
 5. 設置eth0ip
    [[email protected]
/* */ ~]# ifconfig eth0 0 up 6. 自動配置br0 [[email protected] ~]# dhchlient br0 7. 設置qemu—ifup腳本 if [ -n "$1" ] then ip link set $1 up brctl addif br0 $1 exit0 fi 8. 設置qemu-dump腳本 if [ -n "$1" ] then tunctl -d $1 brctl delif br0 eth0 ip link set $1 down exit0 fi 9. 命令配置 [[email protected]
/* */ ~]# qemu-kvm -m 1024 -smp 2 kvm.img -net nic -net tap,ifname=tap1,script=/../qemu-ifup,downscript=/../qemu-down

qemu-kvm之NAT模式


Qemu-kvm的NAT原理圖
技術分享
DHCP服務器為客戶機分配IP地址,並與客戶機鏈接在橋接網卡上,宿主機通過NAT將橋接網卡與物理網卡eth0相連。

Qemu-kvm的NAT配置

 1. 檢查是否還有NAT模塊
    [[email protected] ~]# iptables -t NAT -L -niptables v1.4.7: can‘t initialize iptables table `NAT‘: Table does not exist (do you need to insmod?)
請編譯安裝模塊 2. 創建橋接
    [[email protected] ~]#  brctl addbr br0
 3. 橋接網卡啟用stm協議
    [[email protected] ~]#  brctl stm br0 up
 4. 設置橋向延時
    [[email protected] ~]# brctl setfd br0 0
 5. 設置橋接網卡的IP
    [[email protected] ~]# ifconfig br0 192.168.100.1 up
 6. 安裝DHCP
    [[email protected] ~]# yum install dhcpd
 7. 編輯/etc/dhcp/dhcpd.conf
    subnet 192.168.100.0 netmask 255.255.255.0{
      range 192.168.100.2 192.168.100.200;
      option routers 192.168.100.1;
    }
8. 編輯qemu-ifup腳本    
   if [ -n "$1" ]
    then
        ifconfig $1 0.0.0.0 up
        brctl addif br0 $1
        exit 0
    fi 
9. 編輯qemu-dump腳本    
   if [ -n "$1" ]
    then
        ip link set $1 down
        brctl delif br0 $1
        ip link br0 dowm
        brctl delif br0
        exit 0
    fi 
10. 配置NAT
    [[email protected] ~]# iptables -t NAT -A POSTROUTING -d 192.168.100.0/25 -j MASQUERADE
 11. 啟動
    [[email protected] ~]# qemu-kvm -m 1024 -smp 2 kvm.img -net nic -net tap,ifname=tap1,script=/../qemu-ifup,downscript=/../qemu-down
 12. 進入客戶機中並配置客戶機的IP
    [[email protected] ~]# dhclient eth0
 13. 在宿主機中配置端口映射
    [[email protected] ~]# iptables -t NAT -A POSTROUTING -d VIP -p tcp --port 80 -j NAT --to KVM_VIT_IP:8088


qemu-kvm之用戶模式

用戶模式
用戶模式網絡是qemu自身實現的,不需要替他工具來輔助,同時使用slirp實現一整套的TCP/IP協議,並且使用你這個協議實現了虛擬NAT網絡。
缺點:
性能差,不支持部分功能(如ICMP),不能從宿主機或者外部網絡訪問客戶機

用戶模式網絡的配置

 1. 命令參數解釋
    [[email protected] kvm]# qemu-kvm -net user[,option][,option...]
    vlan=n:鏈接值vlan,默認偽0
    name=name:指定接口顯示的名字
    net=ip/mask:設定虛擬機中可見的ip哇昂羅
    host=add:指定虛擬機中看到的物理機ip地址,默認偽指定網絡中第二個地址,即x.x.x.2
    dhcpstart=addr:指定DHCP服務地址池中16個地址的起始ip,默認偽第15-31個,即x.x.x.16-x.x.x.31
    dns=addr:指定dns地址,默認偽虛擬機地址中的第三個地址,及x.x.x.3
    tftp=dir:激活內置的tftp服務器
    bootfile=file:bootp文件名稱,實現網絡引導
    hostfwd= [TCP|UDP]:[hostaddr]:port-[guestaddr]:geustport  :將宿主機的端口定向到客戶機上,guestadd默認為DHCP分配的第一個客戶機,*.*.*.15. 
2. 啟動一個將客戶機22端口映射到宿主機5022,800-5080
    [[email protected] kvm]# qemu-kvm -m 1024 -smp 2 kvm.img --net nic --net user,hostfwd =tcp::5022-:22,hostfwd=tcp::5080-:80
 3. 進入客戶機,是客戶機能夠連接網絡
    [[email protected] ~]# dhclient eth0
    [[email protected] ~]# ssh 10.0.2.2
    [[email protected] ~]# exit
    [[email protected] ~]# wget www.baidu.com
 4. 在客戶機中啟動http


用戶模式網絡測試
技術分享

技術分享


:qemu-kvm默認使用用戶模式網絡啟動客戶機

本文出自 “lnsaneLlinux” 博客,請務必保留此出處http://lnsane784.blog.51cto.com/1226518/1958356

Qemu-kvm的網絡模式