NAT模式 桥接模式bridge原理理解

article/2025/8/26 18:05:52

桥接场景

无论现在的各种容器,还是我们之前常用的虚拟机,为了与局域网内其他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地址,但是对于我们说的桥接就可能是多个,另外也可能是接了另外一个交换机,也就是交换机可以级联,仍旧是一个局域网。


http://chatgpt.dhexx.cn/article/hFOG5hcG.shtml

相关文章

VMware虚拟机 之 NAT模式详解

如果你的网络ip资源紧缺,但是你又希望你的虚拟机能够联网,这时候NAT模式是最好的选择。NAT模式借助虚拟NAT设备和虚拟DHCP服务器,使得虚拟机可以联网。其网络结构如下图所示: 在NAT模式中,主机网卡直接与虚拟NAT设备相…

桥接模式、NAT模式和仅主机模式

目录 一、虚拟机的网络 二、桥接模式、NAT模式、仅主机模式 1、bridged(桥接模式) 2、NAT(网络地址转换模式) 3、host-only(仅主机模式) 三、使用 DHCP 自动分配地址 在 VMware 中,虚拟机…

虚拟服务器nat模式,nat模式虚拟机宿主机相互ping通

1、wmware设置 这篇记录下nat网络模式下虚拟机与主机的相互ping通。首先使用wmware建立一个ubuntu虚拟机,网络模式选择nat模式。然后点击虚拟网络编辑: 接下来点击nat设置: 看到如下: 上面红框是关键,记录这个值&#…

LVS——NAT模式

1、集群的含义 2、企业集群分类 3、负载均衡集群架构 4、负载均衡群集工作模式分析(LVS) 5、LVS的负载调度算法 6、ipvsadm工具 7、NAT模式 LVS负载均衡集群部署 1、集群的含义 Cluster,集群、群集,为解决某个特定问题将多台计算机组合起来形…

LVS-NAT模式部署

目录 一、环境准备 1、准备三台centos服务器 2、实验拓扑 3、NAT模式介绍 二、LVS-NAT模式部署 1、给lvs服务器安装LVS 2、新建LVS集群 3、添加Real Server服务器节点 4、开启路由转发 5、给后端web服务器配置网关 6、效果测试 一、环境准备 1、准备三台centos服务器…

虚拟机网络模式(NAT模式)

配置虚拟机网络 要使 主机 -> 虚拟机,虚拟机 -> 主机,虚拟机 -> 外网都连通,有三个地方要配置。 1. 配置虚拟网络编辑器 2. 配置VMnet8的地址和网关 3. 配置虚拟机的网络模式和IP地址和网关 不同系统配置网络的方式不一样。我用…

NAT模式详解(进阶篇)

再说NAT模式之前,我们先来复习一下桥接模式是怎样运行的。(这里我是用VMware来说的) 桥接模式是跟物理机在同一个网段,并且和物理机用的同一个路由器, 1、我们先看物理机的网段,然后再把虚拟机的网段配置成和物理机一…

虚拟机NAT模式和桥接模式分析

NAT模式 NAT模式:虚拟机借助NAT功能,使其通过主机访问外网。 NAT模式下的网络拓扑如下: 图中的ip地址可自行配置,也可选择自动分配。 虚拟网卡VMnet8: 虚拟网关 DHCP进行ip地址分配 在NAT模式下,虚拟…

NAT模式、桥接模式、主机模式简单介绍

一.NAT模式 NAT(Network Address Translation)网络地址转换,允许一个整体机构以一个公用IP地址出现在Internet上,即把内部私有网络地址翻译成合法网络IP地址的技术。家用路由器一般都是NAT模式。 让虚拟系统借助NAT(…

桥接模式、NAT模式、仅主机(Host Only)模式的区别

前情提要:新建虚拟机时的3种网络类型:①桥接模式、②NAT模式、③仅主机模式(Host Only)。下面来谈谈区别。 网络类型 1.桥接模式:虚拟机直接连接路由器,与物理机是对等地位 2.NAT模式:虚拟机借助物理机进行路由器联网…

Linux cJSON

1. 下载JSON源码,两个文件,分别为cJSON.h、cJSON.c; JSON源码下载路径 2. 这里直接使用JSON源码,不编译成库; 2.1 cJSON.c 、cJSON.h为第1中下载的源码,这里不贴出; 2.2 test.c源码&#xff…

初识cJSON

先把 cJSON的结构体定义po上来: 先讲怎么用,再讲每一步操作的作用,最后有可能的话再讲原理。 直接先po个简单示例,看看我们如何通过cJSON来解析一个JSON数据。 先试着能不能看懂(估计是看不懂了)&#x…

cJSON学习

最近在做数据上三大云平台的项目,用的是MQTT协议,阿里云、腾讯云、华为云那边解析数据用的是json格式,下发的也是json格式,所以特地学一下json的封装和解析过程,以及其API的使用,作了以下笔记。 文章目录 …

25cJSON

JSON介绍 JSON(JavaScript Object Notation,JS对象表示法) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。…

【万字详解】cJSON解析

目录 1、通过README文件,初步了解cJSON: 1.1、头文件的开头和结尾: 1.2、头文件关于cJSON类型的宏定义 1.3、头文件中的extern 2、阅读并且分析cJSON源码 2.1、结构体struct cJSON(算法设计思想): 2…

cJSON库用法详解

cJSON库用法详解 问题和需要注意的地方一、JSON、cJSON简介1. JSON 简介2. JSON 语法3. 开源库cJSON简介 二、使用cJSON构造JSON1. cJSON库函数介绍2. 使用cJSON构造JSON 三、使用cJSON解析JSON 由于c语言中,没有直接的字典,字符串数组等数据结构&#x…

cJSON使用详细教程 | 一个轻量级C语言JSON解析器

1. JSON与cJSON JSON —— 轻量级的数据格式 JSON 全称 JavaScript Object Notation,即 JS对象简谱,是一种轻量级的数据格式。 它采用完全独立于编程语言的文本格式来存储和表示数据,语法简洁、层次结构清晰,易于人阅读和编写&…

OSPF报文与LSA

1. OSPF报文 OSPF报文 Hello 报文、 DD 报文、 LSR 报文、 LSU报文、LSAck 报文 OSPF 头部 OSPF 用 IP来封装协议报文,协议号89,5种OSPF的报文具有相同OSPF 头部。 OSPF 头部中关注的字段主要有: version: IPv4 OSPFv2 值为2&…

OSPF中的LSA

LSA LSA的基本信息 LSA --- 链路状态通告 --- ospf协议在不同网络环境下产生的鞋带不同信息的载体 LSDB --- 链路状态数据库 SPF --- 最短路径优先算法 Type --- LSA的类型,在OSPFV2版本中,需要掌握的LSA类型一共有六中。 LinkState ID --- 链路状态…

OSPF中LSA相关内容

OSPF的LSA LSA — 链路状态通告 — OSPF协议在不同的网络环境下携带和传递的信息 LSDB — 链路状态数据库 SPF ---- 最短路径优先算法 [Huawei]dis ospf lsdb — 查看lsa信息 LSA头部(之后的每条lsa信息都要携带此头部) LSA头部内容: 1…