作者:my76572 | 来源:互联网 | 2014-05-27 21:08
起首提一个概念桥接,网上各类说法,但本身的懂得是:以一个物理网卡为根蒂根基硬件,创建一个虚拟的路由器(路由器的概念不消说了吧)。当虚拟机需分派IP地址时,我们创建一个姑且的虚拟网卡,并将这个网卡连接到虚拟路由器上,虚拟网卡经由过程虚拟路由
起首提一个概念"桥接",网上各类说法,但本身的懂得是:以一个物理网卡为根蒂根基硬件,创建一个虚拟的路由器(路由器的概念不消说了吧)。当虚拟机需分派IP地址时,我们创建一个姑且的虚拟网卡,并将这个网卡连接到虚拟路由器上,虚拟网卡经由过程虚拟路由器从真实的DHCP端获得IP地址。
宿主主机体系:
centos5.6-64bit,文本模式,有openssh-server
ip:192.168.135.125
1.安装KVM
# yum install -y kvm kmod-kvm kvm-qemu-img libvirt python-virtinst
virt-manager virt-viewer bridge-utils
安装完成后重启主机:
# reboot
重启完成后,搜检kvm模块是否加载:
# lsmod |grep kvm
kvm_intel
50380 6
kvm
305081 1 kvm_inte
2.设备桥接
安装tunctl:
# yum install -y tunctl
添加一个桥设备br0,并添加下面的内容
# vim /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
TYPE=Bridge
OnBOOT=yes
BOOTPROTO=dhcp //可按照实际景象设置静态IP也可
批改物理网卡em1的设置,本例中的br0是桥接在em1上
# vim /etc/sysconfig/network-scripts/ifcfg-em1
DEVICE="em1"
BOOTPROTO="dhcp"
HWADDR="00:22:19:63:A7:F6"
IPV6INIT="no"
NM_COnTROLLED="yes"
OnBOOT="yes"
BRIDGE=br0
做完以上内容,重启一下收集办事
# service network restart
以下这段内容很是首要,桥接成功与否均是源于这一步!
在/etc目次下创建qemu-ifup文件:
# vim /etc/qemu-ifup
添加如下内容:
#!/bin/sh
set -x
switch=br0
if [ -n "¥1" ];then
/usr/bin/sudo
/usr/sbin/tunctl -u `whoami` -t ¥1
/usr/bin/sudo /sbin/ip
link set ¥1 up
sleep 0.5s
/usr/bin/sudo
/usr/sbin/brctl addif ¥switch ¥1
exit 0
else
echo "Error: no
interface specified"
exit 1
fi
为了简单直接赐与任何人对该文件的所有权限,不然虚拟机将还是无法分派到ip地址
#chmod 777 /etc/qemu-ifup
申明下该文件的感化,该文件的首要感化就是在启动虚拟机时,创建一个虚拟收集设备(tapN,N=0、1、2...可懂得为一个网卡或者是路由器上的一个插口),并将该设备应用桥接把握对象brctl添加到switch(桥br0)上。可懂得为在一个路由器上开了一个新的网线插口。这一步的操纵是桥接成功的关键,网上的很多教程均没有提到,本人多次测验测验失败后来只好去看官网的文档,终极才得以知道题目的本相。
3.设备转发
履行以下号令:
#echo 1 > /proc/sys/net/ipv4/ip_forward
4.创建虚拟机镜像
为了应用便利本人先做一些链接,如许就可以直接应用号令kvm、kvm-img:
# ln -s /usr/libexec/qemu-kvm /usr/bin/kvm
# ln -s /usr/bin/qemu-img /usr/bin/kvm-img
在创建虚拟机镜像之前,我们假设你已经将操纵体系ios文件拷贝到响应的地位(随便),本例的CentOS-5.6-x86_64-bin-DVD-1of2.iso是放在了/data/kvmtest路径下。
创建文件:
# kvm-img create centos.img -f raw 6GB
创建虚拟机镜像:
# kvm -m 512 -cdrom CentOS-5.6-x86_64-bin-DVD-1of2.iso -drive
file=centos.img -boot d -net nic - -nographic -vnc :0
以上操纵均是在宿主主机192.168.135.125进行的,履行以上操纵之后,我是在windows端经由过程图形界面对象VNCViewer连接到测试办事器192.168.135.125:0,若是应用的是-vnc
:1,那么就应当是连接到192.168.135.125:1,以此类推。linux下也有vncviewer对象。安装设备过程就是经由过程vncviewer进行操纵的。
5.启动虚拟机
# kvm -m 1024 -drive file=centos.img -net
nic,macaddr=55-54-53-52-66-01 -net tap -vnc :0
此处本人随便填了一个mac地址。履行以上操纵后,可以经由过程VNCViewer连接192.168.135.125:0可以看到该虚拟机实例的启动过程。
此文为本人实践的笔记,如有任何题目,迎接交换!