首页 > 其他分享 >《如果主机没有配置网关,ping不在同一网段的ip,主机会发送ARP吗?》

《如果主机没有配置网关,ping不在同一网段的ip,主机会发送ARP吗?》

时间:2024-10-16 09:43:51浏览次数:8  
标签:ARP 网关 子网 网段 主机 MAC IP地址

一、在开始实验前,我们得先深刻剖析理解ARP协议的含义。

1.1 ARP

1.1.1 ARP的定义

  1. ARP是“Address Resolution Protocol”(地址解析协议)的缩写。

1.1.2 ARP的作用及运行流程分析

  1. 泛谈:在同一子网中,数据包的传输都是依据MAC地址进行的(分组交换设备仅设置交换机),在跨子网通信时,需要先使用路由器(即所谓的“网关”)依据目的主机IP地址将数据包传输到目的主机IP地址所属的子网,在目的IP所属子网内部,再利用MAC地址进行数据包传输。MAC地址不具有层级结构,随着互联网中设备的指数级增加,为了使传输数据更加高效,人们因此发明了IP地址这种具有层级性的逻辑地址用于数据的传输。
  2. 同一子网内(假设该子网没有网关),考虑源主机向另一台在同一子网中(通过IP地址和子网掩码的“与”运算得知)的主机发送ping报文。
    1. 源主机将数据向下传递到网络层进行封装时,通过本机IP地址、目的主机IP地址和子网掩码的“与”运算得知目的主机IP地址与本机IP地址处于同一子网。
    2. 源主机继续将数据包向下传递至链路层,由于源主机与目的主机处于同一子网,ARP进程在ARP缓存表中查询该目的主机IP地址对应的MAC地址
    3. 如果在ARP缓存中查到目的主机IP地址对应的目的主机MAC地址,则将该目的主机MAC地址写入链路层帧头中,封装好后发送到网络,经由交换机根据目的主机MAC地址及交换机内部MAC地址与端口缓存表,将数据包发送到对应端口,最终使数据包到达目的主机。
    4. 如果在ARP缓存中没有查到目的主机IP地址对应的目的主机MAC地址,为了完成数据发送任务,源主机将待发送数据先行放入缓存,由ARP进程调用ARP协议,将目的主机IP地址、目的主机MAC地址(此时未知,设置为广播MAC地址)封装到ARP报文中并发送到网络。
    5. 交换机在接收到数据包后,发现目的主机MAC地址为广播地址,因此向除源主机所在端口的其余端口广播该ARP报文。
    6. 目的主机接收到此ARP请求后,首先判断源主机IP地址是否与自身IP地址处于同一子网下,如果处于同一子网则向源主机返回其MAC地址,方式近似与源主机发送ARP报文相同。源主机得到目的主机MAC地址后,顺利封装缓存中的待发送报文,并经由交换机顺利发送到目的主机。
    7. 如果不在同一子网且因为假设该子网不设置网关(路由器),则目的主机丢弃接收到的ARP报文。造成不在同一子网的原因如配置子网掩码错误等。
  3. 不在同一子网下,考虑源主机向另一台不在同一子网中(通过IP地址和子网掩码的“与”运算得知)的主机发送ping报文。
    1. 源主机将数据向下传递到网络层进行封装时,通过本机IP地址、目的主机IP地址和子网掩码的“与”运算得知目的主机IP地址与本机IP地址不处于同一子网。
    2. 因此源主机的任务变成只需将ping数据包封装发送给网关,由网关负责跨子网传输(网关是路由器,具有IP地址)。
    3. 源主机将目的主机IP地址(即另一个子网的主机)封装到IP头中,将ping数据包向下传递至链路层。
    4. ARP进程在ARP缓存表中查询网关IP地址(已设置存储在源主机内)对应的MAC地址,如果查到网关IP地址对应的MAC地址,则将该MAC地址作为目的主机MAC地址写入链路层帧头中,封装好后发送到网络,经由交换机根据目的主机MAC地址及交换机内部MAC地址与端口缓存表,将ping数据包发送到交换机对应端口,使ping数据包到达网关(交换机对IP层来说是透明的,即交换机只有两层协议层)。
    5. 如果没查到网关的MAC地址,又由于网关与源主机处于同一子网下,故可通过上文ARP方式查询到网关的MAC地址,再将网关MAC地址放入链路帧头进行数据封装并将ping数据包发送到源主机所在子网网关即可。
    6. 源主机所在子网网关接收到ping报文后,根据网关内部路由表等信息定位到目的主机IP地址所在子网,将目的主机IP地址写入IP报文头,将网关自身的MAC地址封装到链路层帧头一并打包发送到目的主机所在子网。
    7. 目的主机所在子网的网关接收到源主机所在子网的网关发来的ping数据包,利用网关内部ARP缓存,得到目的主机IP地址对应的目的主机MAC地址,将其写进链路层帧头后封装ping数据包并发送到子网内部交换机中。
    8. 经过目的主机所在子网内的交换机依据ping报文内MAC地址及交换机内的MAC地址端口缓存信息转发ping数据包,目的主机得以接收到ping报文。
    9. 目的主机查看ping报文后开始准备回复,此时目的主机身份转变成源主机,按照上文分析过一模一样的方式回传ping相关报文。
  4. 综上所述,ARP的作用正如其名:将IP地址解析为对应的MAC地址。现假设源主机ARP缓存中已有目的主机和网关的MAC地址(注意:只会有同一子网的主机MAC地址,不可能有不同子网目的主机的MAC地址,不同子网目的主机的MAC地址在经过该子网网关时都被该子网网关的MAC地址取代了):
    1. 源主机将目的主机IP地址封装到IP头中,将数据包向下传递至链路层。
      1. 当源主机通过子网掩码的“与”运算得知目的主机和自身处在同一子网时,本机ARP进程利用目的主机IP地址与ARP缓存查询得到目的主机MAC地址,封装并向目的主机发送ping数据包。
      2. 当源主机通过子网掩码的“与”运算得知目的主机和自身不处在同一子网时,本机ARP进程利用子网网关IP地址与ARP缓存查询得到该子网网关MAC地址,封装并向网关发送ping数据包。
    2. 如果源主机ARP进程在ARP缓存中未查到MAC地址时,依据IP地址(同一子网目的主机的或同一子网网关的)在子网中发送广播报文获取MAC地址,更新ARP缓存并将MAC地址封装进数据包并向网络中发送。

二、开始实验

2.1 构建网络拓扑及配置各子网主机IP、子网掩码、网关IP、配置路由器端口IP及子网掩码

如图所示:
alt text

2.2 由主机PC0向主机PC1发送ping报文,Packet Tracker开启模拟模式,捕获网络中报文

  1. Packet Tracker开启模拟模式
    alt text
  2. 由主机PC0向主机PC1发送ping报文:
    alt text
  3. 开始自动捕获:
    alt text
  4. 等到模拟面板出现STP类型报文后停止自动捕获。
    alt text
  5. 大家捕获好以后就从头开始,单击每个包的信息字段,弹出左侧页面后可点击各协议层查看每层中的具体设备操作,尝试自己从头分析每个包,这样学习的收获一定会非常之大!
    alt text

标签:ARP,网关,子网,网段,主机,MAC,IP地址
From: https://www.cnblogs.com/Yu-Xing-Hai/p/18469058/ping~packets~trip

相关文章

  • AI网关在应用集成中起到什么作用?
    现在,国内外几乎每个SaaS服务商都找到办法把大型语言模型(LLM)集成到自己的产品里。印证了那句话“每款SaaS都值得用AI重做一遍”我们暂且不讨论是否值得用AI重做,但是增加AI的功能,确实能让产品有更多的卖点。通过整合各个软件应用中的数据和工作流程,组织能够实现应用集成,从而给基础......
  • keepalived跨网段主备切换
    1.主节点(192.168.1.10/24)配置,/etc/keepalived/keepalived.confvrrp_scriptchk_nginx{  script/opt/test.sh  interval2  weight-20}vrrp_instanceVI_1{stateMASTERinterfaceeth0virtual_router_id51priority100nopreempt......
  • 【华三】【华三】VXLAN典型组网-集中式网关配置实验
    【华三】VXLAN典型组网-二层组网静态配置实验VXLAN的相关术语VTEP(VXLANTunnelEndPoint)VXLAN隧道核心设备VSI(VirtualSwitchInstance)VSIinterfaceVXLANsegmentVNI(VXLANNetworkIdentifier)AC(AttachmentCircuit)VXLAN隧道工作模式L2Gateway:二层转发模式IPGateway:......
  • PROFINET 转 EtherCAT, EtherCAT/Ethernet/IP/Profinet/ModbusTCP协议互转工业串口网关
    EtherCAT/Ethernet/IP/Profinet/ModbusTCP协议互转工业串口网关https://item.taobao.com/item.htm?ft=t&id=822721028899协议转换通信网关PROFINET转EtherCATGW系列型号 MS-GW31概述简介MS-GW31是PROFINET和EtherCAT协议转换网关,为用户提供两种不同通讯协议......
  • SpringCloud网关聚合knife4j方案
    微服务开发中想将Spring-Cloud-Gateway网关聚合knife4j,形成一个统一入口方便查阅的开发辅助接口文档,并且将Swagger抽取成一个公共模块,那么我们可以参考以下的做法约定:JavaVersion:11.0.24SpringBoot:2.7.18knife4j:4.4.0Swagger公共模块抽取依赖<dependencies><!--Sp......
  • 什么是AI网关?AI网关在企业系统中承担什么角色?
    AI大模型的发展正在推动各行业的增长,据有关报告显示:“未来十年内预计年均增长率将达到37.3%,全球企业预计在2027年之前将在AI领域投入8000亿美元"。这一迅猛发展促使许多企业进行战略转型,技术团队也需要调整其构建、运行、扩展及保护AI应用、网络和基础设施的方式。为了帮助企业......
  • 华为交换机配置-GARP配置
    一.GARP1.前置知识GARP是一种通用属性注册协议,包括GVRP和GMRP两种应用,其中GVRP类似于思科的VTP协议2.注册模式1.Normal模式:允许此端口动态注册,注销vlan,传播动态vlan和静态vlan的信息。最常用的模式2.Fixed模式:禁止此端口动态注册、注销vlan,只传播静态VLAN的信息3.Forbidden......
  • 一文详述:AI 网关与 API 网关到底有什么区别?
    近年来AI发展火热,大模型已经成为推动各行各业业务创新和增长的关键力量。随之而来问题是“企业该如何安全管理和部署AI应用的挑战?”AI基础架构的设计不仅要支持现有的业务需求,还要能够适应未来技术的快速发展。在这样的背景下,AI网关的概念应运而生,AI网关在AI应用的集成、管理和......
  • C221110C. SolarPea与网格
    C221110C.SolarPea与网格是怎么想到dp定义的?思考下面这个情景:如果一个人在\(x\),另一个人在\(y\(x\lty)\),那么在\(x\)的人会把\(x\lti\lty\)的所有\(i\)全走一遍,走完之后\(x+1=y\)。对于这个情景,我们想到记\(f[i]\)表示一个人在\(i-1\),一个人在......
  • Spring Cloud Netflix Zuul 网关详解及案例示范
    1.引言在微服务架构中,API网关作为服务间通信的入口,扮演着重要的角色。NetflixZuul是一个提供动态路由、监控、安全等功能的API网关服务器,它可以为微服务系统提供统一的入口,简化服务间的交互。在业务系统中,Zuul可以有效地管理和路由多个微服务的请求,并通过自定义过滤......