ARP与ARP代理的理解

2023-11-19

1.ARP

        首先讲到ARP,ARP是地址解析协议,它的作用是在以太网环境下,通过第3层的网络层IP地址来找寻2层数据链路层的MAC地址,得到一张ARP缓存表。转发数据的时候根据ARP缓存表来进行传输。下图详细说明数据传输时ARP是如何一步步操作的。在配置IP地址后,不做任何ping操作,ARP缓存表是这样的:



当PC去ping R1的时候,你会发现第一个丢包了。像这样
R1#ping 192.168.1.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.2, timeout is 2 seconds:
.!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 8/25/56 ms

第一个包其实是做ARP请求去了。PC发现ping的是本网段,会发出ARP广播,向R1请求192.168.1.2的MAC地址。得到回应后ARP表会添加ARP请求得来的相应内容。


PC:这个时候PC再去ping 10.1.1.3会发现ping的不是本网段,由于PC没有路由功能所以不知道该往哪里发送,会按照之前已经配好的默认网关发送出去,一般默认网关会配置成路由器的接口IP,在这里是192.168.1.2。查看ARP缓存表发现了192.168.1.2对应的MAC地址,就把包交给路由器处理了。

R1:路由器收到去往10.1.1.0网段的数据包会查询路由表,首先查看路由表发现数据该发往FastEthernet 0/1
#show ip route
C       10.1.1.0 is directly connected, FastEthernet0/1
然后查看ARP表是否有下一跳10.1.1.3的MAC地址信息,如果有则按MAC把数据发到下一跳;如果没有则发出ARP查询,查询后获得下一跳地址10.1.1.3的MAC地址,存到ARP缓存表中,然后转发。


数据包发送到R2(已做好静态路由)。同理数据包返回,成功ping通。


2.代理ARP
"什么是代理ARP?代理ARP就是通过使用一个主机(通常为router),来作为指定的设备对另一设备的ARP请求作出应答。"这个可以说是一个官方解释了。大家可以用同一个拓扑来验证一下,在这里我们最常使用Router关闭路由功能来模拟成PC完成这个实验(左方PC为路由器模拟,在做此实验前请把前一实验的ARP信息清除,建议重启):


PC上不配置默认网关,此时用PC去ping 192.168.1.2和10.1.1.3。会得到以下ARP表


由此可见,PC发出ARP请求10.1.1.3的MAC地址,R2以自己的FastEthernet0/0口地址代理R3去回应PC,告诉PC自己的FastEthernet0/0就是10.1.1.3的MAC地址。
结论:有默认网关的的时候PC按默认网关走,没有默认网关的时候路由器通过代理ARP完成通信。
到目前为止一切都看起来那么的合理,那么的顺利。这个实验是一些培训班常做的实验之一。其实,错了!

问题出在哪里?问题就出在我们是用一台路由器去模拟PC。不管是否关闭路由功能,它始终不是PC,它处理数据的方式与PC也不一样。请大家思考一下,如果是一台PC,在没有默认网关的情况下去ping一个非本网段地址,会出现什么情况?


在没有默认网关的情况下ping一个非本网段地址,显示目标网络不可达,然后直接丢包,根本不会发出ARP查询。
PC在什么时候会发出ARP查询呢?ping一个本网段地址的时候(大家可以抓包来验证一下)。其实就是思科文档的这种情况了:



看清楚了,PC-A的IP地址是/16位,PC-D的IP地址是/24位,所以当PC-A去ping PC-D的时候,PC-A认为是ping同一个网段,会发出ARP请求,这个时候ARP请求就到了路由器上了。路由器如果开启了代理ARP功能,会代替PC-D给PC-A回应,告诉PC-A路由器的e0口MAC地址00-00-0c-94-36-ab就是PC-D的MAC地址,完成代理ARP操作,保护了PC-D的MAC地址隐私。

我认同这种说法,是合情合理的。但是不禁有个问题,谁会用这么脑残的方法配置IP地址呢?好吧,就当是有。
以下转自鸟哥的Linux私房菜:

"如果你一開始設計的網路環境就是同一個 C class 的網域,例如 192.168.10.0/24 , 後來因為某些因素必須要將某些主機搬到比較內部的環境中,例如圖一的 PC2 ~ PC4 。 然後又因為某些因素,所以你不能變更 PC2 ~ PC4 的 IP ,也就是說,有點像底下這樣的圖示:"


代理ARP作为这种特殊情况的解决方案是无可厚非的,但是按道理说这种情况万中无一。既然这种情况出现的概率那么低,为什么要把代理ARP设置为默认启动?这不是浪费资源吗?还存在ARP欺骗等安全隐患,完全可以把代理ARP功能设置为默认关闭。个人意见,有朋友知道原因请告知。


转载地址:

http://ciscoexpert.blog.163.com/blog/static/20783231120130237524660/


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ARP与ARP代理的理解 的相关文章

  • k8s之nginx-ingress做tcp或udp的4层网络负载

    检查nginx ingress是否开启tcp udp转发 test test02 ingress kubectl get pod n ingress nginx o yaml grep i configmap configmap POD N
  • DNS 解析一个地址的时候会返回多个 IP 吗?

    这是一个或许对你有用的社群 一对一交流 面试小册 简历优化 求职解惑 欢迎加入 芋道快速开发平台 知识星球 下面是星球提供的部分资料 项目实战 视频 从书中学 往事上 练 互联网高频面试题 面朝简历学习 春暖花开 架构 x 系统设计 摧枯拉
  • socket局域网测试是可以的,但是在腾讯云/阿里云上报错“[Errno 99] Cannot assign requested address”

    现在云服务器一般都是只有内网地址 通过公网IP访问时 由云服务器运营商映射到内部网络的 因此 如果部署socket服务时 配置server ip应该是内网IP 解决方法 服务端的ip填服务器的私网ip 客户端填公网ip
  • Google的TCP BBR拥塞控制算法深度解析

    原作者 dog250 授权发布 重新整理 极客重生 hi 大家好 今天推荐一篇我认为在TCP BBR技术里面分析非常透彻的文章 希望大家可以学习到一些真正的知识 理解其背后的设计原理 才能应对各种面试和工作挑战 宏观背景下的BBR 1980
  • 在校学生如何白嫖黑群辉虚拟机和内网穿透,实现海量资源的公网访问?(小白专用)

    文章目录 前言 本教程解决的问题是 按照本教程方法操作后 达到的效果是 前排提醒 1 搭建群辉虚拟机 1 1 下载黑群辉文件 vmvare虚拟机安装包 1 2 安装VMware虚拟机 1 3 解压黑 群辉虚拟机文件 1 4 虚拟机初始化 1
  • Go渗透测试笔记(二)---TCP,扫描器和代理

    Go渗透测试笔记 二 TCP 扫描器和代理 0x00 前言 TCP是面向连接协议的主要标准 也是现代网络的基础 作为攻击者 我们应当了解TCP的工作原理 并且能够开发可用的TCP结构体 以便可以识别 打开 关闭 的端口 找出错误的结果 如误
  • TCP/IP协议栈及网络基础,协议栈原理及实现

    1 TCP IP协议栈及网络基础 推荐这个在B站几千观看的视频讲解 底层原理到徒手实现 TCP IP网络协议栈 tcp协议栈 如何实现 C C Linux服务器开发高级架构学习视频点击 C C Linux服务器开发高级架构师 Linux后台
  • 如何快速检测代理IP质量?方法与工具全干货

    一直以来 IP代理都是出海跨境业务的刚需 质量好的IP代理 除了在跨境业务产生巨大作用 在SEO监控 爬虫抓取 市场研究等领域也发挥着很大的作用 但是 对于IP代理的质量检测是我们选择高标准IP代理的一句 我们一般都会建议在使用IP代理前
  • 网络通信TCP协议三次握手

    TCP是什么 TCP Transmission Control Protocol 传输控制协议 是一种面向连接 连接导向 的 可靠的 基于IP的传输层协议 TCP在IP报文的协议号是6 TCP是一个超级麻烦的协议 而它又是互联网的基础 也是
  • 在外远程登录局域网下的象过河ERP管理系统,无需公网IP

    文章目录 概述 1 查看象过河服务端端口 2 内网穿透 3 异地公网连接 4 固定公网地址 4 1 保留一个固定TCP地址 4 2 配置固定TCP地址 5 使用固定地址连接 转发自CSDN远程穿透的文章 公网远程访问公司内网象过河ERP系统
  • DHCP的配置(以华为eNSP为例)

    如有错误 敬请谅解 此文章仅为本人学习笔记 仅供参考 如有冒犯 请联系作者删除 基础知识介绍 络组建步骤 1 拓扑设计 2 IP地址规划 按照拓扑中划分的 络范围 规划 络位不同的IP地址 3 配置 1 配置各个节点的IP地址 2 路由 全
  • time_wait的快速回收和重用

    问题现象 PC与工控机之间通信 工控机发送SYN PC一直回复FIN或者RST 问题解释 1 time wait产生的原因及作用 下面我们先来简单回顾一下TCP连接关闭动作 在Linux环境下我们可以如下的方式来统计TCP连接的情况 net
  • [Ubuntu 20.04] 使用Netplan配置网络静态IP

    Netplan 是一个在 Ubuntu 系统中进行网络配置的工具 它提供了一种简单和统一的方式来管理网络配置 包括网络接口 IP 地址 网关 DNS 设置等 以下是 Netplan 的特点和功能 声明性配置 Netplan 使用 YAML
  • 传输层协议

    目录 UDP协议 如何向上交付 如何解包 UDP协议的特点 UDP是全双工的 UDP面向数据报 TCP协议 如何向上交付 如何解包 4位首部长度 TCP的可靠性 序号与确认序号 16位窗口大小 6位标记 为什么需要6位标记 ACK SYN
  • AUTOSAR从入门到精通-面向服务的中间件SOME/IP(二)

    目录 前言 几个高频面试题目 基于信号的通信和面向服务的通信特点和差异
  • 工业RFID读写器性能参数解析

    工业RFID读写器的性能参数主要有以下几项 工作频率 输出功率 输出接口 读写器类型 工作方式 读写器优先或电子标签优先等 1 工作频率 RFID读写器的工作频率是指其工作的频率范围 通常由读写器的工作频率决定 同时要与电子标签的工作频率保
  • 鉴赏 tcp vegas

    优秀的 vegas 之后 再鉴赏一下迄今唯一像那么回事的拥塞控制算法 vegas 从下图可看出所有的 对 所有的 aimd 都毫无伸缩性 z 吞吐 x rtt y 丢包率 由 buffer size 直接决定 一下就可看出 rtt 和 bu
  • linux下查看所有tcp端口情况

    netstat ntlp
  • 分辨公网IP和内网IP的方法

    公网IP一般就是对外的访问地址 内网IP就是对内的访问地址 两者的使用范围是不一样的 那如果区分客户网络的IP地址是公网IP地址还是内网IP地址呢 公网IP的地址范围是很广泛的 我们可以先了解下内网IP 因为内网IP的地址段相对是局限的 一
  • 搞懂 三次握手四次挥手

    计算机网络体系结构 在学习TCP 三次握手四次挥手之前 让我们先来看下计算机网络分层 主要分为OSI模型和TCP IP模型 OSI模型比较复杂且学术化 所以我们实际使用的TCP IP模型 以连接Mysql服务器为例理解这五层 应用层 应用层

随机推荐