在上一篇博客中,我画了一张图来解说桥接模式下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. 串口USB单一映射及重命名

    本文针对在开发过程中有时会出现用到多个串口设备,usb端口号会发生变化,如设备的灯指示信号和其他控制器都是ttyUSB* .其序号与控制接入的顺序有关,对于写好的launch每次修改串口连接名很麻烦. ...

  2. 从零开始学 Web 之 jQuery(五)操作元素其他属性,为元素绑定事件

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

  3. 使用Java代码自定义Ribbon配置

    很多场景下,需要实现不同的微服务采用不同的策略,例如修改Ribbon的负载均衡规则等.Spring Cloud允许使用Java代码自定义Ribbon的配置. 在Spring Cloud中,Ribbon ...

  4. go map的使用

    欢迎关注go语言微信公众号 每日go语言 golang_everyday go中map用于存储健值对.map格式: map[KeyType]ValueType 声明一个map,键为字符型,值为int型 ...

  5. 【awesome-dotnet-core-learning】(2)-Sprache.Calc-表达式计算器

    [awesome-dotnet-core-learning](2)-Sprache.Calc-表达式计算器 示例代码托管在GITHUB上, 欢迎STAR! 严格来说, Sprache.Calc只是上一 ...

  6. AOP技术基础(转)

    1.引言 2.AOP技术基础 3.Java平台AOP技术研究 4..Net平台AOP技术研究 2.1 AOP技术起源 AOP技术的诞生并不算晚,早在1990年开始,来自Xerox Palo Alto ...

  7. 【转载】Sqlserver的SQL语句实现分页查询

    在应用程序的开发中,如果数据库中的数据量过于的庞大,则需要针对查询数据做分页处理,取出对应分页中的数据,在Sqlserver分页的语句写法中,有两种比较常用,一种是数据表中含有自增量Id的情况,可以根 ...

  8. 【RabbitMQ】3、win7下安装RabbitMQ

    RabbitMQ依赖erlang,所以先安装erlang,然后再安装RabbitMQ; erlang,下载地址:http://www.erlang.org/download RabbitMQ,下载地址 ...

  9. 140 - The 12th Zhejiang Provincial Collegiate Programming Contest(第三部分)

    Earthstone Keeper Time Limit: 4 Seconds      Memory Limit: 65536 KB Earthstone Keeper is a famous ro ...

  10. canvas学习和滤镜实现

    最近学习了 HTML5 中的重头戏--canvas.利用 canvas,前端人员可以很轻松地.进行图像处理.其 API 繁多,这次主要学习常用的 API,并且完成以下两个代码: 实现去色滤镜 实现负色 ...