然后用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
如果是在kvm建的vm上,这vm上就无法再使用kvm了,坑爹
若果想使用kvm on kvm需要在主机上打开nested,kvm的透传
modprobe -r kvm_intel modprobe kvm_intel nested=1
并且libvert要设置建立的vm和主机的相同
参见
http://libvirt.org/formatdomain.html 中的 CPU model and topology 部分。
第一次加上-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设备
有了这些,局域网的网络基本的内容就可以任意玩了