桥接场景

无论现在的各种容器,还是我们之前常用的虚拟机,为了与局域网内其他IP通讯通常需要用到『桥接』。

Bridge桥接方式


Bridge 将虚拟机桥接到host机器的网卡上,guest和host机器都通过bridge上网.对外不同的ip。

NAT

想要理解Bridge首先要理解NAT.
NAT是虚拟机借助宿主机的IP上网的,外人看来并不知道虚拟机的存在。

家用路由器一般都是NAT模式。

用户通过路由器发送数据

内网用户默认都是192.168.1.x网段,而路由器充当默认网关的角色,所有内网发出的包都将经过路由器,路由器在公网有唯一的IP,所有的包经过路由器修改其源IP都改为了公网IP了,并且会随机映射一个对外端口。

用户通过路由器接收数据

当应答回到路由器时,路由器会根据此前的映射关系,将目标IP和PORT改为原先发送请求的内网用户的IP和PORT,这样对于内网用户来说是感知不到路由器的存在的,大家共用路由器的对外IP访问外网。当然,因为大家都在内网同一个网段(路由器基于DHCP分配),所以内网用户互相通讯也没有问题。

NAT在虚拟领域

当NAT用在虚拟机领域的时候,原理是类似的。只不过一台PC上的若干虚拟机相当于若干内网用户,而宿主机PC充当路由器的角色,虚拟机会在PC上虚拟化一个网络环境:也就是每个虚拟机通过一个无形的网线连接到了无形的路由器上,仅此而已。

每个虚拟机实例会通过PC上的虚拟路由器获取DHCP分配的局域网IP,但是这只是本机虚拟出来的局域网,并不是物理局域网。那么,现在虚拟机想访问外网,只需要配置默认网关为PC上虚拟路由器,那么数据包经过虚拟路由器的时候,会将源IP修改为PC的物理网卡的物理局域网IP,发送给物理路由器,之后的事情和之前描述的一样。

上面的虚拟路由器其实是宿主机上一张虚拟的网卡,而虚拟机则将默认网关指向了这张网卡,从而有机会进行IP篡改。

NAT模式结论

1个PC上的若干虚拟机之间,可以互相通讯,中介就是虚拟路由器。

虚拟机可以访问外网,也可以访问物理局域网,但是无法访问其他PC上的虚拟机。

外人(物理局域网其他PC)无法直接访问虚拟机,这和物理路由器外网的用户无法直接访问内网用户一个道理。

虚拟机可以访问宿主机的物理IP,流程是先经过宿主NAT修改源IP和源PORT,通过物理网卡发出到局域网络中,又被物理网卡接收处理。

宿主机无法访问虚拟机,这是因为宿主机的物理网卡和内网其他网卡的角色一样,对于虚拟路由器来说都是”外人”,不可能进入到虚拟局域网的内网用户。不过(在虚拟机起一个web服务器 通过端口转发一样可以访问对应的web服务 也可以Ping通的。)

桥接bridge

桥(虚拟交换机)

回到上面的图片,桥接和NAT可以说是大不相同,在图中的br0相当于虚拟交换机,物理网卡eth0和虚拟机网卡vnet0都通过虚拟的网线连接到br0上,这样eth0和vnet0之间可以互相交换数据。

我们把br0叫做桥,其实在宿主机上也是一张虚拟的网卡,作为虚拟交换机角色,而传统交换机本身就是按mac目标地址的将数据转发到正确的网线出口上,并不会做什么事情。

理解数据流向

配置虚拟机采用桥接模式并指定br0后,数据从虚拟机的网卡vnet0发出到br0,br0会将数据转发给另一端的eth0,源mac是虚拟机的随机MAC地址,源IP是虚拟机的IP地址,桥并没有做中间修改,数据仅仅通过eth0网卡直接发到链路上,eth0只是充当一个发送的物理介质。

当应答回来的时候,物理网卡eth0会在混杂模式捕获包并交给br0处理,如果目标mac地址等于eth0或者vnet0,则进一步处理。如果是eth0的包那么直接宿主机处理,如果是vnet0的包则转发给虚拟机处理,整个过程无需对包做出修改,因为br0仅仅是一个交换机,而eth0和vnet0是连在上面的2个网卡而已。

简单理解

更加简单的去理解的话,br0是一个交换机,eth0是连在br0交换机上某个插槽的另外一台特殊交换机(它在混杂模式工作,监听的是来自物理交换机发来的各类包),而vnet0是连在br0交换机上的一台普通服务器。

Bridge结论

无论是虚拟机还是物理机,大家都在一个网段里,都指向同一个默认网关(物理路由器)。

虚拟机通过桥,可以向物理路由器申请dhcp,分配得到局域网IP。

挂在桥上的虚拟机,可以直接被局域网其他用户访问,因为eth0混杂模式+桥可以转发到虚拟机。

混杂模式的网卡只是一个物理介质,它监听所有的包,只留下自己关注的包(比如目的mac地址是eth0h或者vnet0的包),也可以发送任意的包,无论包的源mac地址到底是不是物理网卡自身的(vnet0的假mac地址)

可见,桥接更加适合于虚拟机对外提供服务,因为它是可以被外部访问到的,和一个正常的局域网用户没有什么区别。

很多网络的结构图喜欢把一个局域网的用户关联到一条线上,体现出大家都在一个链路上的感觉,其实这是很大的误导,真实的局域网用户都是接在一个交换机上面的,交换机知道每个插槽上有哪些mac地址,一般来说一个插槽就一个mac地址,但是对于我们说的桥接就可能是多个,另外也可能是接了另外一个交换机,也就是交换机可以级联,仍旧是一个局域网。

NAT模式 桥接模式bridge原理理解相关推荐

  1. vmware虚拟机 配置动态 静态 固态IP 三种模式: 桥接模式 nat模式和仅主机模式 Host-only模式

    目录 目录 一. 安装了图形化桌面操作系统时 一.桥接模式 二.nat模式 三.host-only模式 二.没有桌面操作系统时(centos 7) 1.Bridged模式(桥接模式) 2.Nat模式( ...

  2. 《设计模式详解》结构型模式 - 桥接模式

    桥接模式 5.4 桥接模式 5.4.1 概述 5.4.2 结构 5.4.3 案例 5.4.4 使用场景 完整的笔记目录:<设计模式详解>笔记目录,欢迎指点! 结构型模式描述如何将类或对象按 ...

  3. 设计模式 — 结构型模式 — 桥接模式

    目录 文章目录 目录 桥接模式 应用场景 代码示例 桥接模式 桥接模式,希望能够将一个事物的两个维度分离(解耦),使其都可以独立地变化,并通过桥梁连接起来. (类)抽象部分(Abstraction): ...

  4. 组合模式 桥接模式 java_java设计模式5.组合模式、门面模式、享元模式、桥接模式...

    组合模式 在面向对象的语言中,树结构有着巨大的威力,一个基于继承的类型的等级结构便是一个数结构,一个基于合成的对象结构也是一个数结构.组合模式将部分与整体的关系用树结构表示出来,使得客户端把一个个单独 ...

  5. vm虚拟机安装debian NAT模式 桥接模式 究竟是什么意思

    之前很早之前写过一篇文章想讲明白桥接和NAT模式,现在再看的话发现那篇文章有很多细节没讲明白..那么这篇就来总结一下桥接和NAT方式的不同点,以及我们应该怎么去理解这2种模式 首先看vm虚拟机中的虚拟 ...

  6. 结构型模式 - 桥接模式Bridge

    学习而来,代码是自己敲的.也有些自己的理解在里边,有问题希望大家指出. 桥接模式的定义与特点 桥接(Bridge)模式的定义如下:将抽象与实现分离,使它们可以独立变化.它是用组合关系代替继承关系来实现 ...

  7. 虚拟机下NAT 和 桥接模式 联网操作

    1:========NAT 模式[主机IP,vm8IP, ifcfg-eth0 都设置为 DHCP]======== 主机IP ,vmnet8的IP 和DNS 都设置DHCP: ----------- ...

  8. 不得不说的结构型模式-桥接模式

    桥接模式(Bridge Pattern)是一种结构型设计模式,它可以将抽象部分与实现部分分离,使得它们可以独立地变化.桥接模式的核心思想是将一个系统分成两个独立的部分,抽象部分和实现部分,并且让它们可 ...

  9. 安卓适配器类中怎么调用intent_设计模式:代理模式/中介者模式 / 桥接模式/适配器 - 七星望...

    模式某种角度上来讲就是对象组合.不要看他们都是对象组合就好像是一样的.模式的动机,意图,使用场合,组合方式,这些都是模式的一部分.其中细微的不同足以区分不同的模式. 行为模式的主要特点就是处理的是对象 ...

最新文章

  1. Apache检查配置文件语法
  2. flex4.6 图表 在module中 x轴旋转正确的做法
  3. 网页加载的不同的方式、点击按钮显示一句话、jQuery中获取元素的方法
  4. Oracle 中间件云服务器系统 ExaLogic X2 - 2 和 T3-1B概述
  5. 有上下界网络流问题汇总
  6. ASP.NET Web开发框架之七 开发流程与模式
  7. Google是否投资你,得看AI支持不支持
  8. css3之 谜灯卡片_纯css3灯泡开关特效代码
  9. 新手必须要注意的编程范式
  10. linux查看445端口状态,linux和Windows如何查看端口占用情况
  11. 史上最全破解安卓APK和反编译
  12. 关于未来几年的发展,闰土有话要说
  13. 《万历十五年》的读后感作文4000字
  14. 电脑无法进入睡眠的解决方法
  15. Breast Cancer Wisconsin (Diagnostic) Data Set
  16. OpenAI的API key获取方法
  17. moveit和gazebo的联合抓取仿真
  18. 渗透测试 ( 3 ) --- Metasploit Framework ( MSF )
  19. 可达编程 单源最短路
  20. CSS一级导航-天蓝色(带阴影)

热门文章

  1. 软件工程毕业设计 SSM旅游信息分享管理平台(源码+论文)
  2. mysql中时间加1怎么弄,mysql 日期加减
  3. uipath 中有专用的wps 库吗?
  4. YAHFA--ART环境下的Hook框架
  5. 原来我一直在踩雷区,这才是MySQL 使用索引的正确方式
  6. Quartus中移位寄存器的使用以及计算均值
  7. 虚拟机中Linux的安装教程
  8. mysql的左联、右联、内联查询
  9. numpy学习笔记-花哨的索引
  10. 转的心服口服,工程郎难道真的单身?