手机版
你好,游客 登录 注册
背景:
阅读新闻

CentOS 5.6下KVM的安装/桥接设置/虚拟机创建及运行

[日期:2012-12-26] 来源:blog.csdn.net/ddl007  作者:ddl007 [字体: ]

首先提一个概念"桥接",网上各种说法,但自己的理解是:以一个物理网卡为基本硬件,创建一个虚拟的路由器(路由器的概念不用说了吧)。当虚拟机需分配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)上。可理解为在一个路由器上开了一个新的网线插口。这一步的操作是桥接成功的关键,网上的很多教程均没有提到,本人多次尝试失败后来只好去看官网的文档,最终才得以知道问题的真相。

linux
相关资讯       KVM  CentOS KVM虚拟机  CentOS 5.6 KVM 
本文评论   查看全部评论 (1)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款
第 1 楼
* 374100289会员 发表于 2015/6/7 23:46:07
非常赞~