Linux中KVM桥接的配置
Linux中KVM桥接的配置
1. 原理
1.1 说明
在安装一个拥有虚拟化功能的Linux操作系统(此处以CentOS为例),一般我们有两种方法:
.在光盘安装的时候安装好虚拟化包或者PXE服务器上配置好虚拟化包 .手动在没有安装虚拟化组件的系统中安装虚拟化组件
1.2 目的
如果我们搭建的环境是必须使用虚拟化的,或者说虚拟化是我们搭建这套环境的主要目的之一,那么我们在进行系统安装的时候将所有的虚拟化组件全部安装上,避免后期出现安装不全或者某些服务依赖关系没有解决好,这样排错的时间远远高于安装时候多装几个包的时间。 在我们安装好虚拟化组件(RHEL6.0之后,系统自带的均是KVM,已经没有XEN虚拟化的支持了),会自动生成一个virbr0这样的桥接设备
1.3 查看桥接情况
[root@clovemzone ~]# brctl show bridge name bridge id STP enabled interfaces virbr0 .5254007543ce yes virbr0-nic
按照这篇文中所说:http://www.linuxidc.com/Linux/2013-08/88720.htm ,virbr0默认使用的是NAT方式跟虚拟机网卡进行通讯,在实际生产环境中我们多数情况下面使用桥接Bridge的方式进行物理机跟虚拟机的通讯,删除这个virbr0的方法在上面给出的链接中已经说明,这篇文章主要讲述Bridge的简单实现原理以及实际配置方法。
2. 相关阅读:
RHEL6 KVM虚拟化创建桥接网卡-网桥 http://www.linuxidc.com/Linux/2013-08/88517.htm RedHat Linux KVM虚拟机桥接 http://www.linuxidc.com/Linux/2013-02/79934.htm CentOS .6下KVM的安装/桥接设置/虚拟机创建及运行 http://www.linuxidc.com/Linux/2012-12/76883.htm
3. 网桥
假设我们的物理机上有一块有线网卡,在系统中显示为eth0,我们搭建将其配置成桥接设备br0 我们经常所说的Bridge设备其实就是网桥设备,也就相当于想在的二层交换机,用于连接同一网段内的所有机器,所以我们的目的就是将网络设备eth0配置成br0,此时br0就成为了所谓的交换机设备,我们物理机的eth0也是连接在上面的。
[root@clovemzone ~]# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.0025903afe42 no eth0
4. 查看桥接设备
我们创建两个虚拟机之后,所有的虚拟机网卡均连接br0,此时查看br0上面连接的设备
[root@clovemzone ~]# brctl show
bridge name bridge id STP enabled interfaces
br0 .0025903afe42 no eth0
vnet0
vnet1
为了让大家了解的更加透彻,可以通过下图并结合实际操作进行简单分析
5. 查看物理机网卡设备信息 图1所示
[root@master ~]# ip addr show
: lo: <LOOPBACK,UP,LOWER_UP> mtu qdisc noqueue state UNKNOWN
link/loopback ::::: brd :::::
inet 127.0.0.1/ scope host lo
inet6 ::/ scope host
valid_lft forever preferred_lft forever
: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc pfifo_fast state UP qlen
link/ether :::a7:b7: brd ff:ff:ff:ff:ff:ff
inet 192.168.3.176/ brd 192.168.3.255 scope global eth0
inet6 fe80:::ff:fea7:b756/ scope link
valid_lft forever preferred_lft forever
6. 配置桥接设备br0
[root@master ~]# rpm -q bridge-utils //查看桥接软件是否安装 bridge-utils-1.2-.el6.x86_64 [root@master ~]# brctl show bridge name bridge id STP enabled interfaces
6.1 手动添加
[root@master ~]# brctl addbr br0 [root@master ~]# brctl show bridge name bridge id STP enabled interfaces br0 8000.000000000000 no [root@master ~]# brctl addif br0 eth0 [root@master ~]# brctl show bridge name bridge id STP enabled interfaces br0 8000.000000000000 no eth0
删除eth0上面的ip地址,将br0上面添加上固定ip地址
[root@master ~]# ip addr del dev eth0 192.168.3.176/ //删除eth0上的IP地址 [root@master ~]# ifconfig br0 192.168.3.176/ up //配置br0的IP地址并启动设备 [root@master ~]# route add default gw 192.168.3.1 //重新加入默认网关
6.1 查看配置是否生效
[root@master ~]# route //查看默认网关 Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.3.0 * 255.255.255.0 U br0 default 192.168.3.1 0.0.0.0 UG br0
6.3 查看网卡信息
[root@master ~]# ip addr show //查看eth0跟br0的IP信息
: lo: <LOOPBACK,UP,LOWER_UP> mtu qdisc noqueue state UNKNOWN
link/loopback ::::: brd :::::
inet 127.0.0.1/ scope host lo
inet6 ::/ scope host
valid_lft forever preferred_lft forever
: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc pfifo_fast state UP qlen
link/ether :::a7:b7: brd ff:ff:ff:ff:ff:ff
inet6 fe80:::ff:fea7:b756/ scope link
valid_lft forever preferred_lft forever
: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc noqueue state UNKNOWN
link/ether :::a7:b7: brd ff:ff:ff:ff:ff:ff
inet 192.168.3.176/ brd 192.168.3.255 scope global br0
inet6 fe80:::ff:fea7:b756/ scope link
valid_lft forever preferred_lft forever
6.4 测试同一网段连接是否成功
[root@master ~]# ping 192.168.3.1 -w2 //测试同一网段连接是否成功,判断网卡IP是否绑定正确 PING 192.168.3.1 (192.168.3.1) () bytes of data. bytes from 192.168.3.1: icmp_seq= ttl= time=3.45 ms bytes from 192.168.3.1: icmp_seq= ttl= time=4.20 ms --- 192.168.3.1 ping statistics --- packets transmitted, received, % packet loss, time 2000ms rtt min/avg/max/mdev = 3.457/3.832/4.208/0.380 ms
6.5 测试不同网段连接是否成功
[root@master ~]# ping 192.168.1.1 -w2 //测试不同网段连接是否成功,判断网关是否添加成功 PING 192.168.1.1 (192.168.1.1) () bytes of data. bytes from 192.168.1.1: icmp_seq= ttl= time=2.38 ms bytes from 192.168.1.1: icmp_seq= ttl= time=7.64 ms --- 192.168.1.1 ping statistics --- packets transmitted, received, % packet loss, time 2000ms rtt min/avg/max/mdev = 2.381/5.011/7.642/2.631 ms
上面是通过命令进行的手动配置方法,但是大家都清楚,这些命令配置的结果在服务器重启之后就不能生效了,要想使得所有配置永久生效,我们还是需要通过配置文件进行配置,然后重启网卡设备,让系统帮我们配置,然后重启之后也是生效的。
通过上面的手动配置方法,大家可以清楚得看到一个桥接设备的配置流程,这个在你写到配置文件里面,然后让系统帮你配置的时候是看不到的 :) ,那么下面我们将所有的配置还原,通过配置文件进行相关自动化配置吧。
7. 还原原始配置
7.1 删除网关
[root@master ~]# route delete default //删除默认网关 [root@master ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.3.0 0.0.0.0 255.255.255.0 U br0
7.2 查看桥接情况
[root@master ~]# brctl show bridge name bridge id STP enabled interfaces br0 .525400a7b756 no eth0
7.3 删除br0上的eth0设备
[root@master ~]# brctl delif br0 eth0 //断开/删除br0上的eth0设备
7.4 让br0停止活动
[root@master ~]#ifconfig br0 down //让br0设备停止活动
7.5 删除br0
[root@master ~]#brctl delbr br0 //删除br0
7.6 查看br0是否依然存在
root@master ~]# brctl show //查看br0是否依然存在 bridge name bridge id STP enabled interfaces
7.7 重新给eth0分配IP地址
[root@master ~]# ifconfig eth0 192.168.3.176/ //重新给eth0分配IP地址
7.8 重新加入默认网关
[root@master ~]# route add default gw 192.168.3.1 //重新加入默认网关
7.9 查看网卡
[root@master ~]# ip addr show
: lo: <LOOPBACK,UP,LOWER_UP> mtu qdisc noqueue state UNKNOWN
link/loopback ::::: brd :::::
inet 127.0.0.1/ scope host lo
inet6 ::/ scope host
valid_lft forever preferred_lft forever
: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc pfifo_fast state UP qlen
link/ether :::a7:b7: brd ff:ff:ff:ff:ff:ff
inet 192.168.3.176/ brd 192.168.3.255 scope global eth0
inet6 fe80:::ff:fea7:b756/ scope link
valid_lft forever preferred_lft forever
--------------------------------------------------------------------------------
8. 通过配置文件配置桥接设备
配置文件请自行备份
8.1 查看eth0文件
[root@master ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 TYPE=Ethernet ONBOOT=yes BRIDGE=br0
8.2 查看br0文件
[root@master ~]# cat /etc/sysconfig/network-scripts/ifcfg-br0 DEVICE=br0 TYPE=Bridge ONBOOT=yes BOOTPROTO=static IPADDR=192.168.3.176 NETMASK=255.255.255.0 GATEWAY=192.168.3.1
9. 网卡文件参数详解:
9.1 ifcfg-eth0
Device 指定网卡设备名 TYPE 指定网卡的类型为以太网卡 ONBOOT 指定网卡是否开机启动,切记要设置为yes BRIDGE 指定桥接设备,此处指定为br0设备 建议:以上变量(非变量值)均为大写。
9.2 ifcfg-br0
Device 指定网卡设备名 TYPE 指定网卡的类型为桥接 ONBOOT 指定网卡是否开机启动,切记要设置为yes BOOTPROTO 指定网卡启动如何获取IP地址,设置静态 IPADDR 设置br0绑定的IP地址 NETMASK 设置子网掩码地址 GATEWAY 设置网关
建议: TYPE变量的变量值按照第一个字母大写,其余字母小写的原则,如Ethernet,Bridge
配置完成之后,重启网络服务
如担心干扰,建议停止NetworkManager 服务,这个服务挺讨厌
9.3 停止NetworkManager
[root@master ~]# service NetworkManager stop [root@master ~]#chkconfig NetworkManager off [root@master ~]# service network restart
9.4 查看网卡
[root@master ~]# ip addr show
: lo: <LOOPBACK,UP,LOWER_UP> mtu qdisc noqueue state UNKNOWN
link/loopback ::::: brd :::::
inet 127.0.0.1/ scope host lo
inet6 ::/ scope host
valid_lft forever preferred_lft forever
: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc pfifo_fast state UP qlen
link/ether :::a7:b7: brd ff:ff:ff:ff:ff:ff
: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc noqueue state UNKNOWN
link/ether :::a7:b7: brd ff:ff:ff:ff:ff:ff
inet 192.168.3.176/ brd 192.168.3.255 scope global br0
inet6 fe80:::ff:fea7:b756/ scope link
valid_lft forever preferred_lft forever
10. 查看桥接设备信息
[root@master ~]# brctl show bridge name bridge id STP enabled interfaces br0 .525400a7b756 no eth0
11. 查看路由
[root@master ~]# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.3.0 * 255.255.255.0 U br0 link-local * 255.255.0.0 U br0 default 192.168.3.1 0.0.0.0 UG br0
- 由此,桥接设备br0已经配置成功,当创建虚拟机的时候选择虚拟网卡接口的时候选择br0即可

12. 进行虚拟机安装
开始安装虚拟机,此时查看桥接设备br0上面的网卡连接情况:
[root@master ~]# brctl show
bridge name bridge id STP enabled interfaces
br0 .0025903afe42 no eth0
vnet0
Linux中KVM桥接的配置的更多相关文章
- linux中KVM桥接网卡br0
在centos虚拟化当中需要增加一个桥接网卡,然后将虚拟化当中的机器的网卡桥接到桥接网卡,下面将描述设置方法: 查看现有网卡 [root@zb ~]# vim /etc/sysconfig/netwo ...
- Linux中vim的简单配置
本文主要分享Linux中vim的简单配置 ★配置文件的位置 在目录/etc.下面,有个名为vimrc的文件,这就是系统中公共的vim配置文件,对所有用户都开放.而在每个用户的主目录下,都可以自 ...
- Linux:Vmware安装linux虚拟机,桥接方式配置静态IP后重启网卡,提示:Error,some other host already uses address 10.252.252.21...
问题: Vmware安装linux虚拟机,桥接方式配置静态IP后重启网卡,提示:Error,some other host already uses address 10.252.252.21... ...
- Linux中Nginx安装与配置详解
转载自:http://www.linuxidc.com/Linux/2016-08/134110.htm Linux中Nginx安装与配置详解(CentOS-6.5:nginx-1.5.0). 1 N ...
- Linux中的网络管理——网络配置及命令
Linux网络配置 在Linux中配置IP地址的方法有以下这么几种: 图形界面配置IP地址(操作方式如Windows系统配置IP,但在实际生产中,我们并不建议在我们的服务器上安装Linux的图形界面, ...
- linux中kvm的安装及快照管理
一.kvm的安装及状态查看 1.安装软件 yum -y install kvm virt-manager libvirt2.启动libvirtd 报错,升级device-mapper-libs yum ...
- [Intel Edison开发板] 06、Edison开发在linux中烧写、配置、搭建开发环境
1.前言 linux上烧写.配置.搭建Edison环境,千万不要用默认的setup tool for ubuntu!!! (即使,你用的就是ubuntu) 因为,其默认的工具会从一个坏链接下载配置文件 ...
- linux中Samba服务器的配置
Samba简介 Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成.SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件 ...
- Linux中的yum的配置以及常见报错的处理
一. 今天登录服务器的时候,误把yum所在的cache文件夹中的文件删除掉了,导致yum不能够使用,解决的方法: 显示错误如下: Loaded plugins: fastestmirror Deter ...
随机推荐
- Intellij IDEA 导入Maven项目
本人一直使用的eclipse, 但都说IDEA 是java界中最好使用的编辑器 ,所以开始了IDEA的学习,最近使用到了 IDEA 但是,既然编辑器有所差别,所以在使用过程中也难免遇到一些费劲的事情. ...
- 利用div+css实现九宫格,然后用js实现点击每个格子可以随机更改格子(div)的背景颜色
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- this.$nextTick()作用
当data中的某个属性改变的时候,这个值并不是立即渲染到页面上,而是先放到watcher队列上(异步),只有当前任务空闲的时候才会去执行watcher队列上的任务.所以导致,改变的数据挂载到dom上会 ...
- Angular 2/4/5+ 重复点击菜单刷新界面
记一下,网上没找到方法 自己搞了好久 通过跳转到别的界面在跳回来的方式进行实现 //再次点击刷新界面 if (this.router.url == item.ur ...
- 在Linux系统使用VMware安装虚拟机
首先到VMware官网上www.vmware.com下载相应的版本 我这边用的是 VMware-Workstation-Full-12.5.0-4352439.x86_64.bundle 上传到Lin ...
- git怎么fork一个仓库并pull request
一.使用git push <-----------就是这个玩意 1.设置用户信息 当安装完 Git 应该做的第一件事就是设置你的用户名称与邮件地址. 这样做很重要,因为每一个 Git 的提交都会 ...
- 安装Java8以后,Eclipse运行异常解决方案
再输入cmd,java后提示运行环境配置中,安装的是jdk1.7,但要求是jdk1.8,也就是说Java8. 网上删除注册表,下载彻底清除软件均不能解决问题的,请按照下边提示完成操作即可. 1.在文件 ...
- 06_java基础知识——break/continue和标签的配合使用
package com.huawei.test.java03; /** * This is Description * * @author * @date 2018/08/29 */ public c ...
- spring cloud gateway的stripPrefix配置
序 本文主要研究下spring cloud gateway的stripPrefix配置 使用zuul的配置 zuul: routes: demo: sensitiveHeaders: Access-C ...
- NS3可视化及动画工具(PyViz和NetAnim)
一.PyViz安装 1.安装依赖包 sudo apt-get install python-dev python-pygraphviz python-kiwi python-pygoocanvas p ...