在上一篇博客中,我画了一张图来解说桥接模式下kvm的网络是什么样子的。那今天我就仔细来解释一下这方面的内容,让大家学会配置桥接网络。

还是这样的一张图,我们知道bridge就是桥接网卡的名称。让虚拟机在桥接模式下联网,没有它是实现不了的,更实现不了虚拟机与物理机的网络环境并相结合。

桥接模式的物理网卡也只能有一个,我自己在做实验搭环境的时候把他命名为br0,实际上桥接模式下的虚拟机与物理机保持通信的时候,也就依靠这一张网卡来实现。早期的网桥其实也就是二层交换机(这种交换机没有路由功能),仅仅负责把虚拟机的网络信号转发到同一个网段的其他的主机。

我画了下面的这样的一张图来表示桥接实现的过程。可以看出来,不管多少个虚拟机,他们使用的都是同一个网卡br0。他们都在同一个局域网内,不管是物理机还是虚拟机都各自拥有独立的IP。说到这里大家可能对虚拟机的桥接有了稍微的认识,那我们再来看看具体是怎么实现的:

在我安装了3台虚拟机之后,结果如下图所示:

你会发现原来的物理网卡eth0(centos7上是ens33)的IP不显示了,改换成了br0,这是因为在桥接下,br0桥接网卡绑定了物理网卡eth0,这说白了就是在桥接模式下,br0就是物理网卡eth0,此时我们看到的br0网卡上的172.16.0.50这个IP地址,就是物理网卡eth0的地址。感觉很神奇。可能你还会有疑问,那么下面的virbr0和vnet0等等又是什么呢?

在上面的网卡信息中,以“vir”开头的网卡是NAT模式下的网卡信息,nat模式下自己又路由出来了一个网段的ip。nat是负责做转发的。与物理机不在同一个网络环境中。我们这里不对nat模式的网卡做过多说明,大家可以自己百度看看。而接下来的虚拟网卡vnet0、vnet1是很重要的设备。这些设备代表着一个个的虚拟机的网卡。大家可能有疑问,他怎么看不到IP呢?

通过这张图,你可以看出,vnet0是与第一台虚拟机的的网卡eth0绑定在一起的,vnet2是与第二台虚拟机的网卡eth0绑定在一起的。实际上在桥接网络中,网桥br0并不是直接与虚拟机的网卡eth0进行通信,中间需要一个虚拟网卡vnet#(此处的#表示数字序号)来进行通信。但是我们在物理机上又是看不到vnet#的ip地址信息的,这是因为虚拟机的ip地址信息是要在虚拟机里面来查看的,在物理上机上是看不到的。但是vnet#这中虚拟网卡是必不可少的,比如br0离开了ens33照样不能存活,同样的道理,虚拟机里面的eth0网卡离开了vnet#也照样不能通信。所以说在虚拟机里面配置网卡有时候也要考虑vnet#。如何配置呢?有几点大家要明白。

1、虚拟网卡vnet#是创建虚拟机的时候自动创建的。我们要做的就是将br0关联到虚拟网卡vnet#上。

2、虚拟网卡vnet#,#代表数字序号,比如0,1,2,3.....这个顺序是你先后创建虚拟机的次序排出来的,从0开始计数。

3、一般上,我们创建虚拟机好之后,无需关心vnet#虚拟网卡。你只要在虚拟机里面配置网卡eth0即可,这样就可以上网了。、

但是有些情况下,比如物理机网络故障了,这时候你再重启物理网卡,会对虚拟机的网络造成影响。这是因为br0没有与vnet#绑定的缘故,此时你需要重启虚拟机来解决,但是我们不可能总是重启虚拟机,很麻烦。所以你需要设置vnet#来达到上网的目的。

在安装好虚拟机的时候,输入以下命令:你会看到网络是这样子的:

在interfaces上,你会看到一个物理网卡eth0和三个虚拟网卡vnet0、vnet1、vnet2,我这里是按照了三台虚拟机。这就是正常的网络情况。但是如果网络出现故障不正常的话,比如我重启一下物理网卡,那么此时虚拟机也上不去网了,而且你也看不到后面的vnet#这些虚拟网卡,此时你应该这样做,就是重新将br0绑定到vnet#(interfaces)上。

网桥配置命令brctl:

1)查看网桥连接状况

[root@centos6-chaofeng ~]# brctl show
bridge name bridge id STP enabled interfaces
br0 .00e04a682faf no     eth0
            vnet0
            vnet1
            vnet2
virbr0 .525400dd5574 yes virbr0-nic

2)添加接口

#brctl addif br0 vnet0

这个命令就是将br0绑定到vnet0。这时我们就可以好好的上网了。

关于这个命令的使用还有许多需要我们了解的,所以我们往后还要继续研究。

KVM网络桥接模式解说的更多相关文章

  1. CentOS7网络桥接模式下配置-经典完备

    原文地址:http://blog.csdn.net/youzhouliu/article/details/51175364 首先要将Vmware设置为桥接模式: 并选择宿主机连接的网路进行桥接: Ce ...

  2. VMware网络桥接模式与NAT模式共存

      对虚拟机有时我们会有一种需求,即需要虚拟机可以作为单独的主机拥有自己的独立IP,也希望宿主机可以通过NAT模式映射端口到虚拟机. 那么此时怎么办那,其实很简单,虚拟机是支持多网卡设置的,只要在虚拟 ...

  3. 设计模式学习之桥接模式(Bridge,结构型模式)(15)

    参考地址:http://terrylee.cnblogs.com/archive/2006/02/24/336652.html 概述 在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化, ...

  4. .NET设计模式(9):桥接模式(Bridge Pattern)(转)

    概述 在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维度的变化”?如何利用面向对象的技术来使得该类型能够轻松的沿着多个方向进行变化,而又不引入额外的复杂度?这就 ...

  5. NET设计模式 第二部分 结构性模式(8):桥接模式(Bridge Pattern)

    桥接模式(Bridge Pattern) ——.NET设计模式系列之九 Terrylee,2006年2月 概述 在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维 ...

  6. KVM/QEMU桥接网络设置及kvm资料

    KVM/QEMU桥接网络设置 配置kvm的网络有2种方法.其一,默认方式为用户模式网络(Usermode Networking),数据包由NAT方式通过主机的接口进行传送.其二,使用桥接方式(Brid ...

  7. kvm 虚拟化技术 1.2 之配置网络桥接

    实验一:配置网路桥接模式 默认kvm的网络是NAT模式,一般生产环境用桥接模式,把虚拟机改成桥接模式 1.查看是否安装网桥设备 [root@kibana opt]# rpm -qa|grep brid ...

  8. vmware在桥接模式下配置centos7网络,并使用xshell连接虚拟主机(总结篇)

    虚拟机系统:centos7 mini版本 1.虚拟安装成功之后,首先我配置的是桥接模式,因为我使用的是网线,配置完桥接模式之后我的linux虚拟机就可以访问网络了 2.因为我安装的是centos7的迷 ...

  9. bridged(桥接模式)、NAT(网络地址转换模式)和host-only(主机模式)-VMware下三种网络配置方式

    VMWare提供了三种工作模式,它们是bridged(桥接模式).NAT(网络地址转换模式)和host-only(主机模式).要想在网络管理和维护中合理应用它们,你就应该先了解一下这三种工作模式. 1 ...

随机推荐

  1. thymeleaf 的使用

    thymeleaf 语法详解1.变量输出: th:text :在页面中输出某个值 th:value :将一个值放到input标签中的value中.2.判断字符串是否为空 ①:调用内置对象一定要用# ② ...

  2. Git学习系列之Windows上安装Git详细步骤(图文详解)

    前言 最初,Git是用于Linux下的内核代码管理.因为其非常好用,目前,已经被成功移植到Mac和Windows操作系统下. 鉴于大部分使用者使用的是Windows操作系统,故,这里详细讲解Windo ...

  3. 从零开始学 Web 之 Ajax(五)同步异步请求,数据格式

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...

  4. Hadoop项目实战-用户行为分析之应用概述(二)

    1.概述 本课程的视频教程地址:<项目整体概述> 本节给大家分享的主题如下图所示: 下面我开始为大家分享第二节的内容——<项目整体概述>,下面开始今天的分享内容. 2.内容 从 ...

  5. 解决Android Studio 3.x版本的安装时没有SDK,运行时出现SDK tools错误

    好久没更新了,最近手机上的闹钟APP没一个好用的,所以想自己写个. 那Android开发环境搭起来,注意先装好jdk. 1.安装Android Studio google的Android开发网站已经有 ...

  6. Docker---Run命令

    docker运行在一个独立的隔离的进程中. 当用户执行dockerrun,它将启动一个有着独立的文件系统,独立的网络和独立的进程树的进程. 基本的docker run命令的格式: docker run ...

  7. JWT 从入门到精通

    什么是JWT Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点 ...

  8. cJSON填坑记

    1. 艰辛的过程 最近做了一个嵌入式的项目,需要与服务器进行连接.为了方便服务器处理数据,经商定后统一采用JSON形式进行数据的传输. 以前没有用过JSON格式进行数据处理,所以上网搜索了一下,很多人 ...

  9. MVC架构介绍—查询功能的开发

    select和from语句 注意:select和from可以不设置,默认情况下: select获取映射表的所有字段: from获取实体映射表的表名:如果设置select则必须设置frorm,但是允许仅 ...

  10. jQuery文档操作方法对比和src写法

    jQuery文档操作方法对比 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> ...