kvm桥接eth0
Ⅰ 怎样在 Ubuntu 和 Debian 中通过命令行管理 KVM
第一步:确认你的硬件平台支持虚拟化
第一步,首先要确认你的 CPU 支持硬件虚拟化扩展(e.g.,Intel VT 或者 AMD-V),这是 KVM 对硬件的要求。下面的命令可以检查硬件是否支持虚拟化。
第二步:安装KVM
使用 apt-get 安装 KVM 和相关的用户空间工具。
$ sudo apt-get install qemu-kvm libvirt-bin
安装期间,libvirtd 用户组(在 debian 上是 libvirtd-qemu 用户组)将会被创建,并且你的用户 id 将会被自动添加到该组中。这样做的目的是让你可以以一个普通用户而不是 root 用户的身份去管理虚拟机。你可以使用 id 命令来确认这一点,下面将会告诉你怎么去显示你的组 id:
$ id <your-userID>
如果因为某些原因,libvirt(在 debian 中是 libvirt-qemu)没有在你的组 id 中被找到,你也可以手动将你自己添加到对应的组中,如下所示:
在 ubuntu 上:
$ sudo adser [youruserID] libvirtd
在 debian 上:
$ sudo adser [youruserID] libvirt-qemu
按照如下命令重新载入更新后的组成员关系。如果要求输入密码,那么输入你的登陆密码即可。
$ exec su -l $USER
这时,你应该可以以普通用户的身份去执行 virsh 了。做一个如下所示的测试,这个命令将会以列表的形式列出可用的虚拟机(当前的列表是空的)。如果你没有遇到权限问题,那意味着到目前为止一切都是正常的。
$ virsh list
Id Name State
第三步:配置桥接网络
为了使 KVM 虚拟机能够访问外部网络,一种方法是通过在 KVM 宿主机上创建 Linux 桥来实现。创建之后的桥能够将虚拟机的虚拟网卡和宿主机的物理网卡连接起来,因此,虚拟机能够发送和接收由物理网卡传输的数据包。这种方式叫做网络桥接。
下面将告诉你如何创建并且配置网桥,我们创建一个网桥称它为 br0。
首先,安装一个必需的包,然后用命令行创建一个网桥。
$ sudo apt-get install bridge-utils
$ sudo brctl addbr br0
下一步就是配置已经创建好的网桥,即修改位于 /etc/network/interfaces 的配置文件。我们需要将该桥接网卡设置成开机启动。为了修改该配置文件,你需要关闭你的操作系统上的网络管理器(如果你在使用它的话)。跟随操作指南的说明去关闭网络管理器。
关闭网络管理器之后,接下来就是通过修改配置文件来配置网桥了。
#auto eth0
#iface eth0 inet dhcp
auto br0
iface br0 inet dhcp
bridge_ports eth0
bridge_stp off
bridge_fd 0
bridge_maxwait 0
在上面的配置中,我假设 eth0 是主要网卡,它也是连接到外网的网卡,同样,我假设 eth0 将会通过 DHCP 协议自动获取 ip 地址。注意,之前在 /etc/network/interfaces 中还没有对 eth0 进行任何配置。桥接网卡 br0 引用了 eth0 的配置,而 eth0 也会受到 br0 的制约。
重启网络服务,并确认网桥已经被成功的配置好。如果成功的话,br0 的 ip 地址将会是 eth0 自动分配的 ip 地址,而且 eth0 不会被分配任何 ip 地址。
$ sudo /etc/init.d/networking restart
$ ifconfig
如果因为某些原因,eth0 仍然保留了之前分配给了 br0 的 ip 地址,那么你可能必须手动删除 eth0 的 ip 地址。
第四步:用命令行创建一个虚拟机
对于虚拟机来说,它的配置信息被存储在它对应的xml文件中。因此,创建一个虚拟机的第一步就是准备一个与虚拟机对应的 xml 文件。
第五步:使用命令行启动虚拟机
在启动虚拟机之前,我们需要创建它的初始磁盘镜像。为此,你需要使用 qemu-img 命令来生成一个 qemu-kvm 镜像。下面的命令将会创建 10 GB 大小的空磁盘,并且它是 qcow2 格式的。
$ qemu-img create -f qcow2 /home/dev/images/alice.img 10G
使用 qcow2 格式的磁盘镜像的好处就是它在创建之初并不会给它分配全部大小磁盘容量(这里是 10 GB),而是随着虚拟机中文件的增加而逐渐增大。因此,它对空间的使用更加有效。
现在,你可以通过使用之前创建的 xml 配置文件启动你的虚拟机了。下面的命令将会创建一个虚拟机,然后自动启动它。
$ virsh create alice.xml
Domain alice created from alice.xml
注意: 如果你对一个已经存在的虚拟机执行了了上面的命令,那么这个操作将会在没有任何警告的情况下抹去那个已经存在的虚拟机的全部信息。如果你已经创建了一个虚拟机,你可能会使用下面的命令来启动虚拟机。
$ virsh start alice.xml
使用如下命令确认一个新的虚拟机已经被创建并成功的被启动。
$ virsh list
Id Name State
----------------------------------------------------
3 alice running
同样,使用如下命令确认你的虚拟机的虚拟网卡已经被成功的添加到了你先前创建的 br0 网桥中。
$ sudo brctl show
远程连接虚拟机
为了远程访问一个正在运行的虚拟机的控制台,你可以使用VNC客户端。
需要解决更多linux问题,详情请看 http://www.linuxprobe.com/chapter-00.html
望采纳
Ⅱ 2、kvm网络篇---网络配置Bridge方式、NAT方式
NAT方式和Bridge方式。
Bridge方式的配置原理和步骤。
Bridge方式适用于服务器主机的虚拟化。
NAT方式适用于桌面主机的虚拟化。
选择:当需要外界能定位(找)到虚机时使用Bridge方式、当不需要外界定位到虚机时使用NET方式。
安装完kvm后默认网卡的工作方式为NET
适用范围:服务器主机虚拟化
原理:即虚拟网桥的网络连接方式,是客户机和子网里面的机器能够互相通信。
好处:可以使虚拟机成为网络中具有独立IP的主机。
上图,网桥的基本原理就是创建一个桥接接口br0,在物理网卡和虚拟网络接口之间传递数据。
下图,对应计算机上真实的route表。其中br0为桥接网卡。
网桥方式配置步骤:
一、命令模式
1、编辑修改网络设备脚本文件,增加网桥设备br0
vi /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE="br0"
ONBOOT="yes"
TYPE="Bridge"
BOOTPROTO=static
IPADDR=192.168.12.118
GATEWAY=192.168.12.1
DNS1=180.76.76.76
DNS2=114.114.114.114
DEFROUTE=yes
备注:如不需要静态地址,可以使用如下配置
DEVICE="br0"
ONBOOT="yes"
TYPE="Bridge"
BOOTPROTO=dhcp
2、编辑修改网络设备脚本文件,修改网卡设备eth0
DEVICE="eth0"
NM_CONTROLLED="no"
ONBOOT="yes"
TYPE=Ethernet
BOOTPROTO=none
BRIDGE="br0"
NAME="System eth0"
HWADDR=44:37:E6:4A:62:AD
备注:NM_CONTROLLED这个属性值,根据 RedHat 公司的文档是必须设置为“no”的(这个值为“yes”表示可以由服务NetworkManager来管理。NetworkManager服务不支持桥接,所以要设置为“no”。),但实际上发现设置为“yes”没有问题。通讯正常。
3、重启网络服务
#service network restart
4、校验桥接接口
#brctl show
适用范围:不需要外网访问虚拟机情况、桌面主机虚拟化。
原理:NAT方式是kvm安装后的默认方式。它支持主机与虚拟机的互访,同时也支持虚拟机访问互联网,但不支持外界访问虚拟机。
好处:无法从网络上定位和访问虚拟主
上图可以看出,虚拟接口和物理接口之间没有连接关系,所以虚拟机只能在通过虚拟的网络访问外部世界。
下图,对应计算机上真实的route表。其中virbr0为虚拟网卡。
Bridge方式的影响
Bridge方式配置出来的接口对NAT方式没有影响,因为NAT方式并没有使用物理网卡。
但作为客户机,只能选择其中的一种。
实践经验:
当将虚拟机网卡方式更改为Briage后需要注意几点
1、关闭宿主机与虚机的NetworkManager服务并设置开机不自启。不然将会影响两者的网络功能,甚至出现虚机无法启动的情况。
2、虚机网卡已设置为启动开启,但实际情况为开机后宿主机网卡启动了,而虚拟机网卡不能启动,即使手动启动也将失败。这种情况为网卡的启动顺序造成,因为Briage桥接方式虚拟网卡需要在宿主机网卡启动之前启动。而在开机时Network服务启动顺序高于libvirtd服务,所以才会有该现象。解决方式有两个:1、更改服务启动顺序并重启。 2、停止br0网卡,启动虚拟网卡后再启动br0网卡。
3、配置正常并关闭冲突服务后依然无法使用Briage正常上网。此时可以从route表信息开始排查,一般第一次启动Briage方式之后默认的路由表会遭到更改,使得无法连接外网,而内网正常的情况。
1、http://www.linuxidc.com/Linux/2012-05/61445p2.htm
2、 http://blog.csdn.net/hzhsan/article/details/44098537/
Ⅲ kvm虚拟机启动之后如何配置IP地址
linux系统安装完成后启动网卡会自动获取一个ip。
如果需要静态ip,则需要用vim 编辑器修改配置文件,重启网络后生效。
#vim /etc/sysconfig/network-script/ifcfg-eth0
然后对网卡文件修改
DEVICE=eth0 #物理设备名
IPADDR=192.168.1.100 #IP地址
NETMASK=255.255.255.0 #掩码值
NETWORK=192.168.1.0 #网络地址(可不要)
BROADCAST=192.168.1.255 #广播地址(可不要)
GATEWAY=192.168.1.1 #网关地址
ONBOOT=yes # [yes|no](引导时是否激活设备)
USERCTL=no #[yes|no](非root用户是否可以控制该设备)
BOOTPROTO=static #[none|static|bootp|dhcp](引导时不使用协议|静态分配|BOOTP协议|DHCP协议)
Ⅳ centos7创建kvm虚拟机有几种方法
步骤
一、准备环境:
1、检查是否支持虚拟化
Centos6.2_x864
KVM 需要有 CPU 的支持(Intel vmx 或 AMD svm),在安装 KVM 之前检查一下 CPU 是否提供了虚拟技术的支持:
egrep '^flags.*(vmx|svm)' /proc/cpuinfo有显示, 有显示则说明处理器具有VT功能
2、检查BIOSS是否开启虚拟化
二、安装KVM相关软件
1、复制即可(首先确认yum配置是否正常)
yum install kvm kmod-kvm qemu kvm-qemu-img virt-viewer virt-manager libvirt libvirt-python python-virtinst
2、检查kvm模块是否安装
[root@localhost ~]# lsmod |grep kvm
kvm_intel 55496 32
kvm 337772 1 kvm_intel
三、启动服务并开机启动
/etc/init.d/libvirtd
chkconfig libvirtd on
#以上就是KVM的安装,很简单。但是我们需要通过桌面去安装系统和偶尔的配置。所以需要在Server端安装桌面:Gnome
四、安装gonme桌面 并配置VNC桌面连接到 virtual-server服务器上
1、安装virtual-server 桌面
yum -y groupinstall "Gnome" "Desktop"
如果不安装桌面在使用svn登录服务器的时候会报错:
2、安装VNC-server端软件
yum -y install vnc *vnc-server*
3、修改VNCServer主配置文件
vim /etc/sysconfig/vncservers
跳至最后并去掉倒数第二行注释符,然后修改为
VNCSERVERS="1:root"
4、使用vncpasswd设置VNC登录密码
如下:输入两次密码即可
[root@localhost ~]# vncpasswd
Password:
Verify:
[root@localhost ~]#
设置完密码会在root宿主目录下生成.vnc开头的隐藏目录,该目录下面的文件就是root用户的VNC桌面配置文件。打开xstartup配置桌面
#vim /root/.vnc/xstartup
将最后一行改为
gnome & #这将启用gnome桌面
6、启动vncserver服务并设置为开机启动
/etc/init.d/vncserver start
chkconfig vncserver on
7、通过VNC客户端连接virtual-server
下载一个小的VNC客户端,如下图:
输入IP和端口,这个端口是在当时设置VNC-server时设置的!
结果如下:
五、配置桥接
这样安装完了之后就可以使用了,但是虚拟机不能和外面通信,只能和virtual-server内的虚拟机通信。
如果需要和外面的服务器通信需要配置桥接很简单。
临时:设置桥接网卡:KVM#设置br0与eth0桥接brctl addif br0 eth0#清空eth0IP地址ifconfig eth0 0.0.0.0#设置br0地址ifconfig br0 192.168.7.241 255.255.252.0 up
永久:
永久设置DEVICE=br0ONBOOT=yesBOOTPROTO=staticTYPE=BridgeIPADDR=192.168.9.47NETMASK=255.255.248.0GATEWAY=192.168.8.1DEVICE=eth0ONBOOT=yesBOOTPROTO=staticTYPE=EthernetBRIDGE=br0
IPV6INIT=no
注:
在桥接网卡里设置是需要注意:TYPE=Bridge
在屋里网卡要指定桥接的网卡名:BRIDGE=br0