在上一篇博客中,我画了一张图来解说桥接模式下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. 【Java基本功】很多人经常忽视的Java基础知识点

    *.Java文件 问题:一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 答案:可以有多个类,但只能有一个public的类,并且public的类名必须与文件 ...

  2. transformer 源码

    训练时: 1. 输入正确标签一次性解码出来 预测时: 1. 第一次输入1个词,解码出一个词 第二次输入第一次输入的词和第一次解码出来词一起,解码出来第3个词,这样依次解码,解码到最长的长度或者< ...

  3. [转]Angular 4|5 Material Dialog with Example

    本文转自:https://www.techiediaries.com/angular-material-dialogs/ In this tutorial, we're going to learn ...

  4. IdentityServer4关于多客户端和API的最佳实践【含多类型客户端和API资源,以及客户端分组实践】【下】

    经过前两篇文章你已经知道了关于服务器搭建和客户端接入相关的基本资料,本文主要讲述整个授权系统所服务的对象,以ProtectApi资源为演示 目标: 1)实现多资源服务器针对请求的token校验,接入I ...

  5. [PHP] 算法-合并两个有序链表为一个有序链表的PHP实现

    合并两个有序的链表为一个有序的链表: 类似归并排序中合并两个数组的部分 1.遍历链表1和链表2,比较链表1和2中的元素大小 2.如果链表1结点大于链表2的结点,该结点放入第三方链表 3.链表1往下走一 ...

  6. Java 图形化界面设计(GUI)实战练习(代码)

    关于Java图形化界面设计,基础知识网上可搜,下面简单介绍一下重点概念,然后就由浅入深代码实例. 程序是为了方便用户使用的,Java引入图形化界面编程. 1.JFrame 是容器类 2.AWT 是抽象 ...

  7. Java 雇员管理小练习(理解面向对象编程)

    在学习集合框架的时候,初学者很容易练习到学生管理系统.雇员管理体统等练习题.在学习集合框架之前,基本上Java基本语法都学完了,集合框架也从侧面的检验对前面学习的理解.下面用一个曾经做过的练习题,回顾 ...

  8. IOC容器的创建

    一.IOC容器创建方式 Ioc容器的创建时通过ApplicationContext接口的相关实现类进行的. 如上图所示:有三种创建IOC容器的方式. ClassPathXmlApplicationCo ...

  9. TestOps - 最健壮性的测试角色

    一十一 发表于 2018-03-02 09:10:08 TestOps   最具影响力的测试运维一体化综合平台. DevOps实现了从代码到服务的快速落地,而TestOps集成了DevOps效率,更是 ...

  10. Python 线程同步锁, 信号量

    同步锁 import time, threading def addNum(): global num num -= 1 num = 100 thread_list = [] for i in ran ...