上次介绍了在模拟器上的实验,今天我使用真机做客户端,来重复上述实验,比较下得到的实验结果<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
我的实验环境和拓扑如下
 
 
PC未设置网关,路由器默认开启代理ARP ,在R2上添加一条到达192.168.1.0/24网段的静态路由,此时在PC上ping 192.168.2.2 ,查看实验结果
 
 

 
在R1上开启debug ,没有捕获到任何信息 ,在PC上使用arp –a显示PC的ARP缓存表为空。
 
 

 
从ping 所返回的信息,并结合上面的结果,我的结论是PC 没有发送ARP请求去请求192.168.2.2的MAC地址,而是由PC自己返回了目的主机不可达的信息。不知大家发现没有,此ICMP报文信息返回非常迅速,比路由器返回的目的主机不可达的信息的延迟要小的多。
由此我认为PC在没有设置默认网关的情况下,去ping一外网地址,首先是查看自己有没有路由,如果有路由的话,就相当于设置了默认网关的情况。如果没有路由,则直接丢弃数据包,并返回一个目的主机不可达的信息。
大家可以在windows的命令行界面使用netstat –r查看主机的路由表,对比未设置网关和设置网关时路由表的情况,就会发现其中的变化。
未设置网关时PC的路由表
设置网关后PC的路由表
 
 
通过对比可以发现设置网关后,PC的路由表中多出了一条默认路由,也就是我们设置的默认网关。
同样我们可以在未设置默认网关的情况下试着去手工添加一条 route add 192.168.3.0  mask 255.255.255.0 192.168.1.4  metric 1
此时我尝试着去ping 192.168.3.0网段的任意一个IP地址,会得到什么回应呢?如果大家没有猜错的话,是请求超时的信息,看看结果吧。
 
 
我们来分析下为什么会产生这个结果呢?PC在ping 192.168.3.3的过程中,通过查找路由表发现有到该网段的路由,于是会将数据包发送给192.168.1.4 ,而PC的ARP缓存中是没有192.168.1.4的MAC地址的,于是就会ARP广播请求192.168.1.4的MAC地址,这一点可以通过R1上的debug信息看到
 
 
由于PC得不到192.168.1.4的回应信息,所以请求不到192.168.1.4的MAC地址,数据封装不成功,得到的结果自然就是请求超时了。
现在我们来看看另外一种情况,先删除先前添加的路由条目,重新添加一条route add 192.168.3.0 mask 255.255.255.0 192.168.1.2 metric 1 ,注意此时指定的网关地址是正确的,再来看看结果如何。
R1返回给PC一个目的主机不可达的信息,跟上个实验不同的是,这次能够请求到192.168.1.2的MAC地址,数据包从PC发送到路由器R1 ,而R1没有到达192.168.3.0的路由,所以数据包被路由器丢弃,并返回一个目的主机不可达的信息。
从这个实验可以看出,PC和路由器有许多相同之处 ,在发送数据包到不同网段的时候,都会去查找自己的路由表,如果没有路由的话,PC丢弃数据包并返回目的主机不可达的信息。
同时也可以看出,PC在ping 外网IP时,不会发送ARP请求外网IP的MAC地址,而是先查找路由表,然后通过路由表来查找网关的MAC地址。
代理ARP是针对PC未设置网关的情况下,对PC请求外网IP的MAC地址做出的回应。那么这里就有一个问题,PC在何时会请求外网IP的MAC地址,在上面的实验当中,我们知道PC在发到外网的数据包时,查找路由表,根据路由表查找网关,而没有设置网关就意味着数据包不能发送出去,就会被PC直接丢弃。看似十分矛盾,那么代理ARP又用在什么环境中呢?
欲知后事如何,请听下回分解。

转载于:https://blog.51cto.com/scorpion/222295

通过实验来理解代理ARP(二)相关推荐

  1. 对代理ARP技术的误读、无法完成代理ARP实验的故障分析

    对代理ARP技术的误读.无法完成代理ARP实验的故障分析 问题的提出:     网络工程技术人员和或者学习者面对ARP代理技术时,通常能理解ARP代理的作用和技术要点是什么,但是无法根据技术描述去实现 ...

  2. 交换机的基本原理(特别是动态ARP、静态ARP、代理ARP)

    第六章:交换机的基本配置 二层交换设备工作在OSI模型的第二层,即数据链路层,它对数据包的转发是建立在MAC(Media Access Control )地址基础之上的.二层交换设备不同的接口发送和接 ...

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

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

  4. 代理ARP(Proxy ARP)实验

    1.测试R2 ping R3,观察ARP表. 配置命令: R2#configure terminal R2(config)#no ip routing //关闭路由 R2(config)#interf ...

  5. 图解ARP协议(四)代理ARP原理与实践(“善意的欺骗”)

    一.代理ARP概述 我:当电脑要访问互联网上的服务器,目标MAC是什么? 很多小伙伴在刚学习网络协议的时候,经常这样直接回应:不就是服务器的MAC嘛! 这时我会反问:那电脑怎么拿到这个服务器的MAC地 ...

  6. 代理ARP原理与实践(“善意的欺骗”)

    一.代理ARP概述 我:当电脑要访问互联网上的服务器,目标MAC是什么? 很多小伙伴在刚学习网络协议的时候,经常这样直接回应:不就是服务器的MAC嘛! 这时我会反问:那电脑怎么拿到这个服务器的MAC地 ...

  7. 图解ARP协议(四)代理ARP:善意的欺骗

    首发于 跟杰哥学网络与安全 写文章 登录 图解ARP协议(四)代理ARP:善意的欺骗 拼客学院陈鑫杰 24 天前 一.代理ARP概述 我:当电脑要访问互联网上的服务器,目标MAC是什么? 很多小伙伴在 ...

  8. 路由交换技术之代理ARP

    目录 1.介绍 2.继续上篇文章的实验操作 - Vlan隔离技术 3. 代理思路详解 4.ARP代理常用命令 5.补充:想一想? 1.介绍 Proxy ARP :如果ARP请求是从一个网络的主机发往同 ...

  9. 深入理解C/C++二维数组

    深入理解C/C++二维数组 前言 本来以为自己对二维数组的理解还可以,没感觉有什么,但是今天小伙伴问了一个问题感觉迷惑了好久,于是决定细致的记录一下,一步一步的探究各种关于二维数组的问题,巩固基础. ...

最新文章

  1. 向深度学习三剑客学习四种科研精神(上)
  2. 牛客练习赛70 重新排列
  3. grub shell 错误_各种情况GRUB损坏进不了系统的解决方案
  4. 【华为云技术分享】云图说 | 华为云智能边缘平台IEF:智能边缘 让AI触手可及
  5. ROS中阶笔记(六):机器人感知—机器语音
  6. 专注于元宇宙后 Meta今年将取消举办F8开发者大会
  7. 滴滴升级“极速拼车”:未拼成可享折扣 拼成更便宜
  8. float占多少字节 java,Java语言中,float类型所占存储空间为()个字节。
  9. python中文字体奇怪_“matplotlib”中对字体设置的奇怪响应
  10. 鸿蒙系统图标大小怎么调节,华为手机桌面图标大小怎么调?用华为手机的朋友这些技巧需要了解...
  11. 系统性谈谈软件可靠性——第3讲:软件可靠性设计方法
  12. 什么是建站程序,建站程序有哪些?
  13. 对主流网络威胁情报标准应用的比较研究
  14. 京东历史价格查询的方法是?
  15. 《林肯传》--[美]戴尔·卡耐基
  16. 一阶电路暂态响应的结果分析。_第七讲 线性电路的过渡过程分析一
  17. 51单片机开发实例 基于51单片机的万年历
  18. 全同态加密研究资源汇总
  19. 将实验数据用matlab连成平滑的曲线图
  20. centos命令行安装matlab2016b

热门文章

  1. mysql读写分离实现事务_Mysql读写分离后的事务ce
  2. go json tag 字符串 整数_json:你或许还不知道的序列化操作(一)
  3. recv java_Java与Python的recv()网络函数的等价性
  4. jQuery滚动数字
  5. matlab动态图最新存储文件,MATLAB 动图绘制、保存
  6. 20190815:(leetcode习题)两数之和(2种方法)
  7. java的io中replace咋么使用_Java.io.ObjectOutputStream.replaceObject()方法实例
  8. VB中窗体模块、标准模块、类模块的区别
  9. 对接海外faceid
  10. 机房收费系统个人重构版:软工文档中那些图