您的位置:首页 > 理论基础 > 计算机网络

Qemu-kvm的网络模式

2017-08-22 15:43 477 查看

qemu-kvm之桥接模式

桥接原理图



在qemu-kvm的桥接方式中,将宿主机的物理网卡桥接在br0,虚拟网卡vnet1,vnet0链接在eth0上,eth0相当于交换机。客户机从网卡前驱上将信息发送早网卡后驱上,网卡后驱通过eth0将信息发送给br0,在此将信息发送出去。桥接的配置
1. 下载并安装tunctl
[root@Clone4 ~]# yum install tunctl
2. 创建桥接
[root@Clone4 ~]# brctl addbr br0
3. 链接桥接
[root@Clone4 ~]# brctl addif br0 eth0
4. 桥接网卡启用stp协议
[root@Clone4 ~]# brctl stp br0 up
5. 设置eth0ip
[root@Clone4 ~]# ifconfig eth0 0 up
6. 自动配置br0
[root@Clone4 ~]# 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. 命令配置
[root@Clone4 ~]# 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模块
[root@Clone4 ~]# iptables -t NAT -L -niptables v1.4.7: can't initialize iptables table `NAT': Table does not exist (do you need to insmod?)
请编译安装模块 2. 创建桥接
[root@Clone4 ~]#  brctl addbr br0
3. 桥接网卡启用stm协议
[root@Clone4 ~]#  brctl stm br0 up
4. 设置桥向延时
[root@Clone4 ~]# brctl setfd br0 0
5. 设置桥接网卡的IP
[root@Clone4 ~]# ifconfig br0 192.168.100.1 up
6. 安装DHCP
[root@Clone4 ~]# 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
[root@Clone4 ~]# iptables -t NAT -A POSTROUTING -d 192.168.100.0/25 -j MASQUERADE
11. 启动
[root@Clone4 ~]# qemu-kvm -m 1024 -smp 2 kvm.img -net nic -net tap,ifname=tap1,script=/../qemu-ifup,downscript=/../qemu-down
12. 进入客户机中并配置客户机的IP
[KVM@vir ~]# dhclient eth0
13. 在宿主机中配置端口映射
[root@Clone4 ~]# 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. 命令参数解释
[root@Clone4 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
[root@Clone4 kvm]# qemu-kvm -m 1024 -smp 2 kvm.img --net nic --net user,hostfwd =tcp::5022-:22,hostfwd=tcp::5080-:80
3. 进入客户机,是客户机能够连接网络
[kvm@virt ~]# dhclient eth0
[kvm@virt ~]# ssh 10.0.2.2
[root@Clone4 ~]# exit
[kvm@virt ~]# wget www.baidu.com
4. 在客户机中启动http
用户模式网络测试




注:qemu-kvm默认使用用户模式网络启动客户机
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  网络 kvm 多元化