KVM虚拟化+桥接网络

Posted zrecret

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了KVM虚拟化+桥接网络相关的知识,希望对你有一定的参考价值。

1.虚拟机的配置   

技术图片

 2.检测系统版本及内核的命令

[root@ localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)

[root@ localhost ~]# uname -r
3.10.0-514.el7.x86_64

[root@ localhost ~]# getenforce
Disabled

3.检查CPU是否支持虚拟化 

cpu是否支持虚拟化

[root@ localhost ~]# egrep -o ‘(vmx|svm)‘ /proc/cpuinfo
vmx
vmx

检查cpu是否建瓯开启虚拟化(输出图片一样则为未开启)

[root@ localhost ~]# dmesg |grep kvm

技术图片

 

 

4.安装kvm用户动态模块(libvirt用来管理kvm)

[root@ localhost ~]# yum install qemu-kvm qemu-kvm-tools libvirt -y 

5.启动livirt

[root@ localhost ~]# systemctl start libvirtd.service
[root@ localhost ~]# systemctl enable libvirtd.service

6.启动之后我们可以使用ifconfig进行查看,libvirtd已经为我们安装了一个桥接网卡

4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN qlen 1000
link/ether 52:54:00:d3:6c:31 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever

7.创建虚拟机

(1).准备虚拟机硬盘

(2).需要系统iso镜像

(3).需要安装一个vnc的客户端来连接

8.上传镜像

查看内存大小(不小于20G,本人小于20G不要在意)

[root@ localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/cl-root 17G 4.8G 13G 28% /
devtmpfs 2.0G 0 2.0G 0% /dev
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 2.0G 8.7M 2.0G 1% /run
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/sda1 1014M 121M 894M 12% /boot
tmpfs 394M 8.0K 394M 1% /run/user/0

进入opt目录下通过rz将CentOS-7-x86_64-Minimal-1810.iso镜像传入当前镜像(其他镜像也可以,上传镜像后可改名方便管理,我的更名为CentOS-7)

[root@ localhost ~]# cd /opt

若rz上传不上去可用以下命令,我这里用的rz

[root@ localhost opt]# dd if=/dev/cdrom of=/opt/CentOS-7-x86_64-Minimal-1810.iso

9.创建磁盘 (qemu-img软件包是我们安装qemu-kvm-tools 依赖给安装上的)

[root@ localhost opt]# qemu-img create -f qcow2 /opt/CentOS-7.qcow2 6G (qcow2为磁盘格式,CentOS-7.qcow2 为自定义磁盘名.qcow2,6G为磁盘的大小)

ll命令可查看到新建的磁盘

[root@ localhost opt]# ll
total 940228
-rw-r--r-- 1 root root 197120 2020-02-12 14:41 CentOS-7.qcow2
-rw-r--r-- 1 qemu qemu 962592768 2018-12-11 15:12 CentOS-7-x86_64-Minimal-1810.iso

10.安装虚拟机

[root@ localhost opt]# yum install -y virt-install

[root@ localhost opt]# virt-install --virt-type=kvm --name=c73 --vcpus=1 -r 1024 --cdrom=/opt/CentOS-7.qcow2 --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole --os-type=linux --os-variant=rhel7 --disk path=/opt/CenOS-7.qcow2,size=6,format=qcow2

名字是自己取的,路径下的名字要和上面是一致的

 成功创建如下:

[root@ localhost opt]# virsh list --all
Id Name State
----------------------------------------------------
1 www running
2 c73 running

查看端口5900是否存在

[root@ localhost opt]# netstat -lntup|grep 5900
tcp 0 0 0.0.0.0:5900 0.0.0.0:* LISTEN 8092/qemu-kvm

11.然后用vnc连接虚出来的机器,机器的ip是自己机子的ip加上5900端口

12.进入之后与之前安装的操作都是一样的

13.

技术图片

 

 

 

到此为止kvm创建虚拟机就成功了,如果中途出现错误,很有可能是yum安装的相关插件,服务,软件,没装上,把yum命令都执行一遍做排除!!!

virsh相关管理命令 !!!!

列出所有的虚拟机	virsh list --all
显示虚拟机信息		virsh dominfo c73
列出ID为6的虚拟机名 virsh domname 6
显示虚拟机内存和cpu的使用情况 	virt-top
关闭虚拟机 		virsh shutdown c73 
强制关闭虚拟机 	virsh destroy c73 
启动虚拟机 			virsh start c73 
设置虚拟机随系统自启 	virsh autostart c73 
关闭虚拟机随系统自启	virsh autostart --disable c73 
删除虚拟机			virsh undefine c73 
通过控制窗口登录虚拟机 virsh console c73 
挂起$hostname虚拟机 	virsh suspend c73 
恢复挂起的虚拟机		virsh resume c73 
查看网卡配置信息		virsh domiflist c73 
查看该虚拟机的磁盘位置	  virsh domblklist  c73 
查看KVM虚拟机当前配置	virsh dumpxml c73 

14.kvm桥接模式配置 

先查看虚拟化组件是否生成virbr0桥接设备

[root@ localhost opt]# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.000c29923f8d no ens33
vnet0
virbr0 8000.525400d36c31 yes virbr0-nic (这个!!!)

在查看物理机的网卡设备

[root@ localhost opt]# ifconfig virbr0
virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether 52:54:00:d3:6c:31 txqueuelen 1000 (Ethernet)
RX packets 169 bytes 12038 (11.7 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 22 bytes 2778 (2.7 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

15.配置桥接设备br0(两种方法,一种临时的,一种永久的,都是在宿主机上操作的!!!)

下载:

[root@ localhost opt]# yum -y install bridge-utils

(1)手动增加临时生效

[root@ localhost opt]#  brctl addbr br0

[root@ localhost opt]# brctl  show

bridge namebridge idSTP enabledinterfaces

br08000.000c29923f8dnoens33

vnet0

 

virbr08000.525400d36c31yesvirbr0-nic

[root@ localhost opt]# brctl  addif br0 ens33  (执行此命令时,会导致xshell与宿主机断开连接)

所以以下命令在宿主机上执行:(删除ens33上面的ip地址,将br0上面添加上固定ip地址) 

[root@ CentOS7-200 ~]#  ip addr del dev ens33 10.0.0.200/24 //删除ens33上的IP地址

[root@ CentOS7-200 ~]# ifconfig br0 10.0.0.200/24 up //配置br0的IP地址并启动设备

[root@ CentOS7-200 ~]# route add default gw 10.0.0.254 //重新加载默认网关

连接xshell查看是否生效

[root@ localhost opt]# route -n

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

0.0.0.0         10.0.0.254      0.0.0.0         UG    0      0        0 br0

10.0.0.0        0.0.0.0         255.255.255.0   U     0      0        0 br0

169.254.0.0     0.0.0.0         255.255.0.0     U     1003   0        0 ens37

169.254.0.0     0.0.0.0         255.255.0.0     U     1009   0        0 br0

172.16.0.0      0.0.0.0         255.255.0.0     U     0      0        0 ens37

192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0

[root@ localhost opt]# ifconfig br0

br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

        inet 10.0.0.45  netmask 255.255.255.0  broadcast 10.0.0.255

        inet6 fe80::20c:29ff:fe92:3f8d  prefixlen 64  scopeid 0x20<link>

        ether 00:0c:29:92:3f:8d  txqueuelen 1000  (Ethernet)

        RX packets 216918  bytes 154098249 (146.9 MiB)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 151315  bytes 233554071 (222.7 MiB)

 

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

(临时配置下次重启时就会失效)

(2)永久生效桥接配置

[root@ localhost opt]# vim /etc/sysconfig/network-scripts/ifcfg-ens33

DEVICE=ens33

TYPE=Ethernet

ONBOOT=yes

BRIDGE=br0

NM_CONTROLLED=no

[root@ localhost opt]# vim /etc/sysconfig/network-scripts/ifcfg-br0

DEVICE=br0

TYPE=Bridge

ONBOOT=yes

BOOTPROTO=static

IPADDR=10.0.0.45

NETMASK=255.255.255.0

GATEWAY=10.0.0.254

NM_CONTROLLED=no

[root@ localhost opt]# systemctl restart network.service (重启网卡)

16.VNC连接KVM虚拟机修改网卡配置

[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33

DEVICE=ens33  (你的是ens33或eth0就修改成对应名称)

TYPE=Ethernet

BOOTPROTO=static

ONBOOT=yes

IPADDR=10.0.0.100  (此ip自定义即可)

PREFIX=24 

GATEWAY=10.0.0.254 (这个网关与宿主机一致)

DNS1=223.5.5.5  //此处配置后则不需要手动添加/etc/resolv.conf

DNS2=1.1.1.1

[root@localhost ~]# cat /etc/resolv.conf #必须有否则xshell连不上

nameserver 223.5.5.5

[root@localhost ~]# ifup ens33 (重启ens33或eth0)

17.KVM图形化管理工具(在宿主机上完成接下来步骤才能完成桥接,否则无法ping外网)

查看ssh是否开启x11转发

[root@ localhost opt]# grep X11Forwarding /etc/ssh/sshd_config --colour

X11Forwarding yes

#X11Forwarding no

安装xorg-x11

[root@ localhost opt]# yum install -y xorg-x11-font-utils.x86_64 xorg-x11-server-utils.x86_64 xorg-x11-utils.x86_64 xorg-x11-xauth.x86_64 xorg-x11-xinit.x86_64 xorg-x11-drv-ati-firmware

安装libvirt (libvirt是管理虚拟机的API库,不仅支持KVM虚拟机,也可以管理Xen等方案下的虚拟机)

[root@ localhost opt]# yum install virt-manager libvirt libvirt-Python python-virtinst libvirt-client virt-viewer qemu-kvm mesa-libglapi  -y

安装virt-manager,x-window。图形化界面

[root@ localhost opt]# yum install libXdmcp libXmu libxkbfile xkeyboard-config xorg-x11-xauth xorg-x11-xkb-utils -y

开启libvirt服务

[root@ localhost opt]# systemctl start libvirtd.service

[root@ localhost opt]# systemctl enable libvirtd.service

18.配置xshell(需要配合xming软件使用)

安装好xming不用管在后台挂起

19.

技术图片

 

 打开xshell,执行以下步骤:

技术图片

 

 技术图片

 

 技术图片

 

 3.4.启动virt-manager (注意一定要新开一个窗口输入指令,否则无法弹出窗口!!!)

断开xshell会话,重新连接,输入命令:virt-manager,就可以自动弹出kvm管理软件 (前提是你的xming开启了)

 

[root@ localhost opt]# virt-manager

技术图片

 

 技术图片

 

 技术图片

 

技术图片

 

技术图片

 

 技术图片

 

 

技术图片

 

技术图片

技术图片

注意看这里!!!!!kvm虚拟接也需要关闭防火墙,否则xshell无法连接!!!!

systemctl stop firewalld

setenforce 0

技术图片

 

 技术图片

以上是关于KVM虚拟化+桥接网络的主要内容,如果未能解决你的问题,请参考以下文章

KVM虚拟化+桥接网络

请问,kvm配置桥接网络,为何虚拟机与主机Ip网段不同?

kvm无线网卡设置桥接网络

CentOS 7.0 配置KVM虚拟机桥接物理网络

RHEL7 kvm虚拟机桥接网络配置

[Debian10]使用KVM虚拟机并配置桥接网络