同一交换机下不同网段的终端通信

文章目录

  • 一个有趣的实验

大家都知道不同网段的IP地址要想通信需要通过网关进行路由转发,而一般通过路由器来做默认网关。

一个有趣的实验

一台二层交换机下,连接两个不同网段的PC,实现彼此之间的通信。
一台S3700交换机,两台PC。
在这里插入图片描述
在这里插入图片描述
拓扑图如下:
在这里插入图片描述
显然 PC1-1和PC2-1的IP地址不是同一网段的。此时 通过PC1-1 ping PC2-1会发生什么?
在PC1-1上 首次ping 192.168.2.10 时,首先 PC1-1 会根据自己的子网掩码来计算192.168.2.10的网段,得到的网段为192.168.2.0。
和自己IP地址的网段192.168.1.0不是同一网段,那么PC1-1会先查看自己PC上配置的网关地址。然后根据网关地址再查看自己本地ARP表中,是否有此网关IP地址及MAC映射 记录。如果PC主机没有配置网关地址,那么也就不会查看PC主机的ARP表。PC1-1不会对ping命令发送任何的数据帧。
注意:即使PC主机上有网关地址的ARP表缓存,但是 我们手动把IPv4配置里的网关去掉了,同样PC1-1不会对ping命令发送任何的请求数据
帧。
因为PC主机要先看网关地址是否有配置,若有配置,再看ARP表缓存。没有配置网关地址也就不会看ARP表,不会发送任何的数据
帧。

如上图PC1-1中,我们没有配置PC1-1的网关地址。那么PC1-1不会对ping命令发送任何的数据帧。
下面给PC1-1配置上网关地址,网关地址配置成多少呢?我们这里把PC1-1主机的网关地址,配置成PC2-1主机的地址。
在这里插入图片描述
然后,再通过PC1-1 ping PC2-1 。此时 PC1-1 会发送 ARP广播帧,目标MAC地址为广播地址,目标IP地址(PC1-1的网关地址):192.168.2.10。
交换机收到 ARP广播帧后,会先学习源MAC地址及入数据端口记录到MAC地址表中,然后对ARP广播帧进行广播。当PC2-1收到ARP广播帧后,将源IP地址及源MAC地址缓存到ARP表中,然后发送ARP响应报文,注意在发送PC2-1ARP响应报文时,虽然目标IP地址为192.168.1.10,和PC2-1不是同一网段,但是不会查看PC2-1的网关地址是否有配置。所以ARP响应报文是否能正常发送和PC2-1是否配置网关地址无关。PC2-1的ARP单播响应报文,到达交换机后,交换机同样学习源MAC地址及入数据端口。然后根据已有MAC地址表,将数据转发到PC1-1上。PC1-1在收到ARP单播响应报文后,将源IP地址及源MAC地址缓存到ARP表中。
此时PC2-1的MAC地址及IP地址在PC1-1的ARP表中有缓存。
交换机上也有PC1-1/PC2-1 对应的MAC地址表。
PC1-1的MAC地址及IP地址在PC2-1的ARP表中也有缓存。

此时PC1-1 开始送ICMP请求报文,因为是跨网段通信,所以PC1-1先查看自己主机上的网关地址(必须要配置上),网关地址为192.168.2.10,然后根据此地址,再去本机ARP表中查找对应的MAC地址,因为此前经过ARP报文的请求和响应,所以已经有对应的ARP缓存信息。那么ICMP请求报文中,会把PC1-1网关地址对应的MAC地址,做为目标MAC地址,目标IP地址为 ping命令后的地址,这里也就是PC1-1的网关地址,两者相同了。当交换机收到ICMP请求报文时,先学习MAC地址表,然后根据目标MAC地址 ,在MAC地址表,找到转发的端口,进行转发。此时PC2-1会收到ICMP请求报文。PC2-1拆开三层报文,获得目标IP地址,和自己的IP地址相同则接收,然后准备发送ICMP响应报文,此时查看到源IP地址为192.168.1.10,和自己不是同一个网段。那么PC2-1会查看自己的网关地址,发现网关IP没有设置(如上图PC2-1中IPv4设置里)。
则不会PC2-1发送响应报文。
所以出现了以下报文:
在这里插入图片描述
下面给PC2-1配置上,网关地址,网关地址配置多少呢,因为是要和PC1-1通信,这里就设置为PC1-1的IP地址。
如下图:
在这里插入图片描述
配置好PC2-1的网关之后,那么再收到来自PC1-1的ICMP请求报文时,因为是不同网段,PC2-1 首先根据设置的网关地址(而不是根据ICMP请求报文的源IP地址),去自己本地的ARP表中去找网关地址对应的MAC地址,如果没有找到那么 PC2-1 会发送一个ARP广播包,通过这个来获得到网关的MAC地址,存储到本地ARP表中,然后把网关地址对应的MAC地址做为ICMP响应报文的里的目标MAC地址,ICMP请求报文中的源IP地址做为目标IP地址。源MAC地址和源IP地址 就是原ICMP请求报文中目标MAC地址和目标IP地址。然后进行ICMP报文的响应。
注意:因为我们这里设置的PC2-1的网关地址正好是PC1-1的IP地址,因为之前的PC2-1收到PC1-1的ARP请求报文时,已经把对应的IP地址和MAC地址的映射关系缓存到ARP表里了,所以这里PC2-1没有再发送ARP请求报文获取自己网关的MAC地址。
在这里插入图片描述

如果我们加一台PC3-1,来充当PC2-1的网关会怎样呢?
此时的拓扑如下:
在这里插入图片描述
在这里插入图片描述
其他保持不变
然后清空PC上的ARP表及交换机上MAC地址表,
在PC1-1 上 ping PC2-1
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
所以,最终 在 PC2-1上抓取报文看似请求和响应正常,其实 PC2-1把PC1-1对其发送的ICMP请求报文,对应的响应报文却发送到了PC3-1上了。这样显然不合理,所以跨网段的通信一定要配置正确的网关。

注意:虽然上面配置的主机网关和主机的IP地址不是同一个网段,但是也通信正常。但是我们需要在作为网关的主机上还需要给网关ip配置网关才能互相通信。但是实际场景中,没人这么配置。实际场景中一个网关下,会接一个交换机,交换机下接入多台设备终端。所有终端的网关地址都配成同一个。而且网关ip地址和终端设备的IP地址保持同一个网段。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/529618.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

办公技巧分享:如何更新二维码的内容,并重新设计二维码样式?

怎样修改已经打印(或发布)的二维码的内容?还有能不能重新设计二维码的样子、颜色?即使二维码已经发布了,打印了。 其实,这都很容易实现。 今天的这篇教程就来详细说明如何更新二维码的内容?以…

基于物联网的智能辅助泊车系统设计与实现

目 录 摘 要 I Abstract II 引 言 1 1 相关技术 3 1.1 物联网技术 3 1.2 JFinal框架技术 3 1.3 uni-app技术 4 1.4 本章小结 4 2 智能辅助泊车系统的分析 5 2.1 需求分析 5 2. 1.1 系统的功能需求 5 2. 1.2 系统的非功能需求 5 2. 1.3 系统业…

配置nvm管理nodejs版本的环境详细教程【window版】

nvm( node.js version management) 是 Windows 系统下的一个 Node.js 版本管理工具,它是 Node Version Manager(nvm)的 Windows 版本,它是基于GO语言开发的工具。该工具允许你在 Windows 系统上轻松地安装、切换和管理多个 Node.j…

解决Iterm2升级后遇到“Stashed changes“的问题

<<<<<<< Updated upstream ...... >>>>>>> Stashed changes冲突标记符的代码如题,最近有升级Item2…

Tab组件的编写与动态日期的函数封装

src\components\Tab\Icon.vue 底部导航栏子组件。 <template><router-link :to"path" class"tab-icon"><i class"icon">{{iconText}}</i><p class"text"><slot>{{ tabText }}</slot></…

医学图像分析算法的原理

医学图像分析算法的实现原理涉及数据准备、特征提取、模型选择与训练、模型评估与优化以及部署与应用等多个步骤和技术。通过这些步骤&#xff0c;可以利用机器学习和深度学习技术来帮助医生更准确、更高效地进行医学图像诊断和分析。北京木奇移动技术有限公司&#xff0c;专业…

学习JAVA的第十九天(基础)

目录 File 成员方法&#xff08;判断和获取&#xff09; 成员方法&#xff08;创建和删除&#xff09; 成员方法&#xff08;获取并遍历&#xff09; IO流 FileOutputStream FileInputStream 文件拷贝 前言&#xff1a;学习JAVA的第十八天&#xff08;基础&#xff09;…

【Windows】VMware虚拟机应用(一):下载安装 VMware Workstation

目录 一、下载 二、注意事项 三、安装 四、密钥激活 4.1 密钥 4.2 激活 一、下载 进入官网下载页 VMware Customer Connect | The All-In-One VMware Product Support Portal 先登录&#xff0c;下载时要求登录。 点【Downloads】 进入产品下载页面&#xff0c;切换到…

maven运行spring boot项目

我用idea想跑一个整合flowable的spring boot项目&#xff0c;但是跑不起来&#xff0c;原因是jdk版本不够高。但是我的idea是2018版本&#xff0c;最高只能支持到jdk11。就想办法不用idea编译、打包、运行项目。因为spring boot是maven项目&#xff0c;所以可以用maven进行打包…

算法——滑动窗口之找到字符串中所有的字母异位词,串联所有单词的子串

6.找到字符串中所有的字母异位词 题目:. - 力扣&#xff08;LeetCode&#xff09; 6.1如何快速判断两个字符串是否是异位词 假设现在有s1 aabca,s2 abaca,那么这两个就是异位词,容易想到的判断方法就是将两个字符串按照字典序排序,再依次比较,但是时间复杂度很高;我们看看…

javascript实现解决浮点数加减乘除运算误差丢失精度问题【收藏点赞】

相信程序都会遇到这样的问题&#xff0c;有时需要在js上做运算合计等浮点数加减乘除&#xff0c;但会有些浮点数会有误差问题。下面用js来解决浮点数加减乘除运算误差丢失精度这个请 【收藏点赞】。 是程序都会在浮点数加减乘除上有误差问题&#xff0c;这是计算机二进制生成的…

Node.Js编码注意事项

Node.js 中不能使用 BOM 和 DOM 的 API&#xff0c;可以使用 console 和定时器 APINode.js 中的顶级对象为 global&#xff0c;也可以用 globalThis 访问顶级对象 浏览器端js的组成 Node.js中的JavaScript组成 相比较之下发现只有console与定时器是两个API所共有的&#xff…