kvm:双网卡做bond+桥接
一,KVM基础
kvm是一种技术,云计算是一种模式,虚拟化是利用相应的技术方法在一台物理机器上将其按照不同的需求划分成多个相同或者不同的虚拟操作系统,并且各个虚拟系统可以同时运行,互不干扰,其中任何一个虚拟系统的损坏都不影响同一物理服务器上的其他虚拟系统。
虚拟化分类
服务器虚拟化-虚拟服务器
桌面虚拟化-瘦客户机连接win7 实现普通办公
存储虚拟化-SAN(基于磁盘)/NAS(NFS/Samba)/GlusterFS
应用虚拟化-将办公软件虚拟化,最典型的就是office
网络虚拟化-SDN
更多待补
二,KVM实验

1,网络
使用kvm 安装虚拟机后,需要为客户机设置网络接口,2种方式:
KVM 客户机网络连接有两种方式:
用户网络(User Networking):让虚拟机访问主机、互联网或本地网络上的资源的简单方法,但是不能从网络或其他的客户机访问客户机,性能上也需要大的调整。NAT方式
NAT方式是kvm安装后的默认方式。它支持主机与虚拟机的互访,同时也支持虚拟机访问互联网,但不支持外界访问虚拟机
由于虚拟接口和物理接口之间没有连接关系,所以虚拟机只能在通过虚拟的网络访问外部世界,无法从网络上定位和访问虚拟主机。virbr0是一个桥接器 ,使用 brctl show 及 route 查看
虚拟网桥(Virtual Bridge):这种方式要比用户网络复杂一些,但是设置好后客户机与互联网,客户机与主机之间的通信都很容易。
以网桥方式连接,客户机可以与子网里面的机器互相通信,可以使虚拟机成为网络中具有独立IP的主机,桥接网络(也叫物理设备共享)被用作把一个物理设备复制到一台虚拟机。网桥多用作高级设置,特别是主机多个网络接口的情况
网桥的基本原理就是创建一个桥接接口br0,在物理网卡和虚拟网络接口之间传递数据,适用于主机虚拟化
2,架构如上图
大坑:
实验用的是 CentOS Linux release 7.4.1708 (Core) :
1,yum 安装 libvirt 的版本 libvirt version: 4.5.0, package: 10.el7
systemctl start libvirtd 报错:
error : virModuleLoadFile:53 : internal error: Failed to load module '/usr/lib64/libvirt/storage-backend/libvirt_storage_backend_rbd.so': /usr/lib64/libvirt/storage-backend/libvirt_storage_backend_rbd.so: undefined symbol: rbd_diff_iterate2
处理:
mv libvirt_storage_backend_rbd.so{,.bk}
然后可以正常启动。
2,在做网络bond和桥接时总是出错,桥接配置地址后无法正常与外界公网连接
折腾了一天,后来换了系统,centos 7.6 后正常配置bond和桥,kvm 。
三,操做
1,宿主机准备
四个网卡,2个桥接,一个仅主机模式(可自动分配ip)
# 1,vmware 宿主机cpu开启虚拟化
# 2,确认指令集是否支持kvm
grep -E "vmx|svm" /proc/cpuinfo | wc -l
2
# 3,安装kvm 工具包
yum install qemu-kvm qemu-kvm-tools libvirt virt-manager virt-install acpid
systemctl start/enable libvirtd
ifconfig virbr0 #查看生成的网卡 grep "192.168.122.1" /etc/lib #查看ip 地址
grep "192.168.122.1" /etc/libvirt/ -R #查看ip所在文件,可以修改为指定内网ip
2,创建NAT模式虚拟机
## 提前上传镜像
ll /usr/local/src/CentOS-7-x86_64-Minimal-1810.iso ##创建磁盘
ll /var/lib/libvirt/images/ #默认保存虚拟机磁盘的路径 ##创建一个格式为raw大小为10G的裸磁盘
qemu-img create -f raw /var/lib/libvirt/images/CentOS-7-x86_64.raw 10G ##qcow2格式
qemu-img create -f qcow2 /var/lib/libvirt/images/centos.qcow2 10G
#创建默认网络虚拟机,默认为nat模式
virt-install --virt-type kvm --name centos7 --ram 1024 --vcpus 2 \
--cdrom=/usr/local/src/CentOS-7-x86_64-Minimal-1810.iso \
--disk path=/var/lib/libvirt/images/centos.qcow2 \
--network network=default \
--graphics vnc,listen=0.0.0.0 --noautoconsole #--network network=default 网络默认NAT模式
3,创建bond+桥接
#创建br0桥接网卡,双网卡绑定+ 桥接
#多个网卡绑定,高可用或带宽叠加 宿主机按装
yum -y isntall bridge-utlis
本机配置
外网:eth0 eth1
内网:eth2 eth3
cd /etc/sysconfig/network-scripts ##bond0配置
1,vim ifcfg-bond0
TYPE=Bond
BOOTPROTO=none
DEVICE=bond0
NAME=bond0
ONBOOT=yes
USERCTL=no
BONDING_MASTER=yes
BONDING_OPTS="mode=1 miimon=100"
BRIDGE=br0
#桥接到br0 2,vim ifcfg-br0
TYPE=Bridge
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=br0
DEVICE=br0
ONBOOT=yes
IPADDR=172.20.134.7
#宿主机ip
NETMASK=255.255.0.0
GATEWAY=172.20.0.1
DNS1=114.114.114.114 3,eth0 配置
vim ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=none
DEVICE=eth0
ONBOOT=yes
USERCTL=no
MASTER=bond0
SLAVE=yes 4,eth1配置
vim ifcfg-eth1
TYPE=Ethernet
BOOTPROTO=none
DEVICE=eth1
ONBOOT=yes
USERCTL=no
MASTER=bond0
SLAVE=yes #bond1 配置
1,vim ifcfg-bond1
BOOTPROTO=static
NAME=bond1
DEVICE=bond1
ONBOOT=yes
BONDING_MASTER=yes
BONDING_OPTS="mode=1 miimon=100"
BRIDGE=br1 2,vim ifcfg-br1
TYPE=Bridge
BOOTPROTO=static
NAME=br1
DEVICE=br1
ONBOOT=yes
IPADDR=10.20.200.4
#宿主机私网ip
NETMASK=255.255.255.0 3,eth2 配置
vim ifcfg-eth2
BOOTPROTO=static
NAME=eth2
DEVICE=eth2
ONBOOT=yes
NM_CONTROLLED=no
MASTER=bond1
USERCTL=no
SLAVE=yes 4,eth3配置
vim ifcfg-eth3
BOOTPROTO=static
NAME=eth3
DEVICE=eth3
ONBOOT=yes
NM_CONTROLLED=no
MASTER=bond1
USERCTL=no
SLAVE=yes ##第一个kvm虚拟机
#创建磁盘
qemu-img create -f qcow2 /var/lib/libvirt/images/centos7-bridge.qcow2 10G #创建桥接网络虚拟机
virt-install --virt-type kvm --name bridge-2 --ram 1024 --vcpus 2 \
--cdrom=/data/CentOS-7-x86_64-Minimal-1810.iso \
--disk path=/var/lib/libvirt/images/centos1.qcow2 --network bridge=br0 \
--graphics vnc,listen=0.0.0.0 --noautoconsole ##第二个虚拟机按步骤重复操做
注意第二台主机的网络模式为--network bridge=br1
或创建成功后使用virt-manager 图型化更改网卡模式。选择br1 ##对于第二台宿主机,可以将第一台的网卡配置文件及镜像复制过去,更改ip,启动虚机后立刻poweroff 后重新启动
笔记本承载不了,开第二台虚拟机kvm卡住。更多后补。
kvm:双网卡做bond+桥接的更多相关文章
- Linux双网卡绑定bond详解--单网卡绑定多个IP
Linux双网卡绑定bond详解 1 什么是bond 网卡bond是通过多张网卡绑定为一个逻辑网卡,实现本地网卡的冗余,带宽扩容和负载均衡,在生产场景中是一种常用的技术.Kernels 2.4.12及 ...
- Debian 16.04 配置双网卡绑定bond
Debian 16.04 配置双网卡绑定bond Debian 16.04 bonding多网卡配置 安装负载均衡软件 fenslave root@ubuntu:~# apt-get install ...
- virtualbox 最小化安装centos7 配置双网卡(nat和桥接)记录----已经过期
该文章已经过期 请参考另一篇文章:virtualbox 安装centos7 配置桥接网卡,实现主机和虚拟机互通,虚拟机可以访问外网,解决无法上网问题 先说明一下为什么要配置双网卡? 配置nat ...
- centos 7 服务器网卡做bond
前期环境准备 [root@ /root] alibaba cloud#cat /etc/redhat-releaseCentOS Linux release 7.4.1708 (Core)[root@ ...
- 网卡做bond 导致丢包
值班中发现一台服务器报到网关丢包,带宽200M. 用 ethtool bond0 查看网卡带宽信息,发现 Speed 为 3100M ,非 1000 的整数倍或10000的整数倍,感觉不对,因为是做 ...
- centos下多网卡做bond脚本
多网卡或者单网卡形式下的网卡bonding #! /bin/sh #获取当前网卡数 ethnum=`lspci | grep Ethernet | wc -l` echo $ethnum #如果网卡数 ...
- Linux下双网卡绑定bond配置实例详解
本文源自:http://blog.itpub.net/31015730/viewspace-2150185/ 一.什么是bond? 网卡bond是通过多张网卡绑定为一个逻辑网卡,实现本地网卡冗余,带宽 ...
- Linux双网卡绑定bond详解
参考资料: 1.https://blog.csdn.net/shengerjianku/article/details/79221886
- proxmox ve系统绑定上联外网出口bond双网卡
背景描述:一个客户搭建proxmox ve系统,要求上联出口双网卡绑定bond, proxmox ve下载地址:超链接 记录日期:2020/5/9 前期准备:服务器接好2个网卡 交换机:H3C 1.p ...
随机推荐
- 线性模型-线性回归、Logistic分类
线性模型是机器学习中最简单的,最基础的模型结果,常常被应用于分类.回归等学习任务中. 回归和分类区别: 回归:预测值是一个连续的实数: 分类:预测值是离散的类别数据. 1. 线性模型做回归任务 ...
- leetcode之53.最大子序和
题目详情 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和. 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4], 输出: 6 解释: ...
- 【Sass】常用知识点总结
如何编译Sass Partials Variables colors font stacks 全局变量 Mixins 全局mixin 推荐的mixin插件 Bourbon Extend/Inherit ...
- 运维日常之机房浪潮服务器硬盘红灯亮起,服务器一直响,raid磁盘红色。。。故障解决方法
按Ctrl+H进入到WebBIOS内,看见的错误如下所示: 错误是PDMissing,只不过维护的IBM服务器错误的磁盘不是第一块,而是第三块而已,不过坏哪块硬盘没有影响,重要的是错误的原因.这种错误 ...
- 使用fiddler 抓包app 网络连接不上的原因
https://blog.csdn.net/m0_37554415/article/details/80434477· 设置完记得关掉fiddler 重启 基于fiddler 4 windown 10 ...
- [转帖]教你如何修改运行中的docker容器的端口映射
教你如何修改运行中的docker容器的端口映射 在docker run创建并运行容器的时候,可以通过-p指定端口映射规则.但是,我们经常会遇到刚开始忘记设置端口映射或者设置错了需要修改.当dock ...
- stack的常见用法
stack的常见用法 栈是什么? 栈是一种先进后出的容器 栈的定义 引入头文件 # include <stack> using namespace std; 定义栈 可以定义任何类型的栈 ...
- 出大问题!webpack 多入口&&html模板在后端
新公司前后端不分离,后端用的是php的twig 我用webpack做多入口文件的打包,虽然成功了.但是引入js和css是在twig上写死的根据文件名. 一开始没问题,因为就定死了那么几个global. ...
- 【网络安全】window 快速搭建 ftp 及 多种访问方式
在局域网里面使用ftp传输文件比使用qq等软件传输速度快很多,但是搭建ftp很多时候需要下载相应的支持软件,其实不必下载相关的软件,因为window自带ftp功能. 演示操作系统:windows10 ...
- js,el表达式,<c:if>
<c:if>中只能有一个判断语句,但是可以在一个el表达式中写多个判断条件 例: <c:if test="${fn:length(item.work_detail.note ...