使用qemu 建立个虚拟机
然后用tap设备,
根据基础六,tap设备绑定到桥上,就可以和其他vxlan的上的机器通信
简历虚拟机硬盘
虚拟机叫vm,承载虚拟机的机器叫host
建立虚拟机
如果是没有lsmod|grep kvm只有一个没有kvm_intel的机器上,只能用qemu
[color=red]如果是在kvm建的vm上,这vm上就无法再使用kvm了,坑爹[/color]
[b][color=red]若果想使用kvm on kvm需要在主机上打开nested,kvm的透传[/color][/b]
[color=red]并且libvert要设置建立的vm和主机的相同[/color]
参见
[color=red]http://libvirt.org/formatdomain.html 中的 CPU model and topology 部分。[/color]
第一次加上-cdrom指定iso
qemu-ifup文件先什么也不写,如果写的话,
启动vm后安装系统,
进入系统后host设置
ip link
能发现多了个tap1
br0是主机上配置的桥,可以参考以前的内容
如果br0上有dhcp服务
直接在vm里面dhcp就行了
tap1就相当于veth peer 的veth0 ,vm里面的网卡就相当于veth1,放到namespace里面的,
vm就相当于namespace
现在,veth peer ,namespace,桥,vxlan,tap设备
有了这些,局域网的网络基本的内容就可以任意玩了
然后用tap设备,
根据基础六,tap设备绑定到桥上,就可以和其他vxlan的上的机器通信
简历虚拟机硬盘
虚拟机叫vm,承载虚拟机的机器叫host
qemu-img create -f qcow2 testnet.img 500G
qemu-img amend -f qcow2 -o compat=0.10 testnet.img
建立虚拟机
#!/bin/sh
#/usr/libexec/qemu-kvm -m 16384 -smp 2 -hda /home/haoning/qemu/testnet.img -cdrom /home/CentOS-7-x86_64-DVD-1503-01.iso -net nic -net tap,ifname=tap1,script=/home/haoning/qemu/qemu-ifup,downscript=no -vnc 192.168.140.11:17 -daemonize
#/usr/libexec/qemu-kvm -m 16384 -smp 2 -hda /home/haoning/qemu/testnet.img -net nic -net tap,ifname=tap1,script=/home/haoning/qemu/qemu-ifup,downscript=no -vnc 192.168.140.11:17 -daemonize
/usr/libexec/qemu-kvm -m 8192 -smp 2 -hda /home/hao/cirros-0.3.1-x86_64-disk.img -net nic -net tap,ifname=tap1,script=/home/hao/qemu-ifup,downscript=no -vnc 0.0.0.0:17 -daemonize
如果是没有lsmod|grep kvm只有一个没有kvm_intel的机器上,只能用qemu
/usr/libexec/qemu-kvm -m 8192 -machine pc-i440fx-rhel7.0.0,accel=tcg,usb=off -cdrom /home/hao/CentOS-7-x86_64-DVD-1503-01.iso -hda /home/hao/testnet.img -net nic -net tap,ifname=tap1,script=/home/hao/qemu-ifup,downscript=no -vnc 192.168.139.55:17 -daemonize
[color=red]如果是在kvm建的vm上,这vm上就无法再使用kvm了,坑爹[/color]
[b][color=red]若果想使用kvm on kvm需要在主机上打开nested,kvm的透传[/color][/b]
modprobe -r kvm_intel
modprobe kvm_intel nested=1
[color=red]并且libvert要设置建立的vm和主机的相同[/color]
<cpu mode='host-passthrough'/>
参见
[color=red]http://libvirt.org/formatdomain.html 中的 CPU model and topology 部分。[/color]
第一次加上-cdrom指定iso
qemu-ifup文件先什么也不写,如果写的话,
#!/bin/sh
switch=br0
echo "ifup qemu----"
#if [ -n "$1" ]; then
# ip link set $1 up
# sleep 1
# brctl addif ${switch} $1
# exit 0
#else
# echo "Error: no interface specified"
#fi
启动vm后安装系统,
进入系统后host设置
ip link
能发现多了个tap1
brctl addif br0 tap1
ip link set tap1 up
br0是主机上配置的桥,可以参考以前的内容
如果br0上有dhcp服务
直接在vm里面dhcp就行了
tap1就相当于veth peer 的veth0 ,vm里面的网卡就相当于veth1,放到namespace里面的,
vm就相当于namespace
现在,veth peer ,namespace,桥,vxlan,tap设备
有了这些,局域网的网络基本的内容就可以任意玩了

本文详细介绍了如何利用qemu创建虚拟机,并通过配置tap设备将其绑定到桥接网络上,从而实现虚拟机与外部网络的通信。通过实例演示了虚拟机的创建过程,包括虚拟硬盘的初始化、网络设备的配置以及VNC远程访问的设置。同时讨论了在不同环境下使用qemu和kvm时需要注意的问题,如kvm的透传功能和libvirt的配置。此外,文章还涉及了虚拟机内部网络设备与宿主机网络设备之间的关系,以及如何在虚拟环境中模拟真实网络环境。
756

被折叠的 条评论
为什么被折叠?



