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/

ARP与ARP代理的理解相关推荐

  1. HCIA—代理ARP (路由式代理ARP+vlan内代理ARP+vlan间代理ARP) [理论+实验验证]

    衷心感谢三位大佬的博客 ! ! ! ! 这篇博客主要是为了记录笔记方便查看而整理, 主要内容整理来源: (58条消息) 代理ARP实验_在下小黄的博客-CSDN博客_arp代理实验 (58条消息) 代 ...

  2. ARP家族--ARP,代理ARP,Gratuitous ARP

    ARP背景: 当思考主机A和主机B互相通信,人们更关注的是域名或者IP地址,但是在内核层面,机器更关注的链路层地址(MAC地址),而不关注上层的应用.主机之间如何获取MAC地址,那么就引入了ARP的概 ...

  3. 什么是代理ARP(proxy ARP)?

    Proxy ARP yUmi#sh start ! Written by yUmis(牛奶咖喱) a.k.a. 红头发 Description 欢迎转po,请保留作者信息 Homepage http: ...

  4. 什么是代理ARP(proxy ARP)

    proxy ARP yUmi#sh start ! Written by yUmis(牛奶咖喱) a.k.a. 红头发 Description 欢迎转po,请保留作者信息 Homepage  [url ...

  5. 7月个人:Windows和Linux绑定和解绑ARP 了解ARP命令的用途。 掌握ARP命令的使用。...

    Windows和Linux绑定和解绑ARP 了解ARP命令的用途. 掌握ARP命令的使用. ARP地址解析协议是一个重要的TCP/IP协议,可以用于确定对应ip地址的网卡物理地址.也可以使用人工方式输 ...

  6. 服务器上运行arp,服务器ARP病毒的特征及防护说明

    服务器ARP病毒的特征及防护说明 更新时间:2008年01月29日 15:50:33   作者: 服务器ARP病毒的特征及防护说明 近期有些用户反映服务器上所有网站被插入了病毒代码,但是这些病毒代码 ...

  7. 如何嗅闻交换网络和ARP骗子-ARP解释的原则

    在嗅探以太网(一般指嗅探器可以对流经的网络数据包窃听)(sniff)不为网络安全是好事,虽然网络管理员能够跟踪数据包,发现 互联网问题,但前提是,如果破坏者使用.在整个网络带来了严重的安全威胁. 至于 ...

  8. Anti Arp Sniffer ARP病毒专杀工具

    Anti Arp Sniffer ARP病毒专杀工具 Anti Arp Sniffer ARP病毒专杀工具 下载地址:http://www.ixpub.net/attachment.php?aid=4 ...

  9. java面试题之个人对正向代理和反向代理的理解

    为什么使用代理? 提高响应速度: 因为我们发送给代理服务器的请求,目标主机(真正的服务器)返回的数据会储存在代理服务器主机的硬盘上,当下一次同样的请求访问时,直接从硬盘读取,加快访问速度,尤其是对一些 ...

最新文章

  1. Algorithm——最长公共前缀
  2. Bash 文件夹操作
  3. Linux环境下Redmine的安装(一)
  4. [云炬创业基础笔记]第四章测试20
  5. 【论文研读】【医学图像】【R2UNet】Recurrent residual U-Net for medical image segmentation
  6. 【BZOJ1124】[POI2008]枪战Maf(基环树_构造)
  7. 好用的抖音视频剪辑软件推荐
  8. mac免费CAD模型设计软件FreeCAD怎样设置中文模式
  9. SAP 工单报工批次确定自动带出批次并拆分
  10. 2022年全球与中国GPS天线模块市场现状及未来发展趋势
  11. 有开始边DOTA边博客了
  12. vue m3u8格式 实现监控直播
  13. 佛教哲学 学习笔记-07-新旧唯识-唯识学-中
  14. 十大Web压力测试工具
  15. 实例分割研究综述总结
  16. initpki.dll加载失败 找不到指定的模块的解决办法
  17. 读书笔记 来自网络
  18. 23最新《Android音视频开发进阶指南》,音视频开发者速领
  19. qt通过Tcp和SQL实现仿qq的聊天软件
  20. iOS程序启动原理---iOS-Apple苹果官方文档翻译

热门文章

  1. 易语言c s 上传多张图片,hbuilder如何上传多张图片?
  2. 礼帽黑帽操作,开闭运算
  3. C语言volatile类型限定符详解
  4. 看透HiPiHi,不再是游戏
  5. 黑马52期学后总结笔记(三)
  6. 【我的Android进阶之旅】Android的Gson解析库解析报错:class com.xxx.xxx declares multiple JSON fields named xxx
  7. 16个必备的JavaScript代码片段
  8. 设计一个文件系统,需要考虑哪些因素?
  9. 纯C语言用Windows api写画函数图像
  10. GIS空间分析 三维分析4 制作飞行动画