1. 网络层

1.1. ARP协议

1.1.1. 前言

1.1.2. ARP的基本概念

Address Resolution Protocol,地址解析协议

通过对方的IP地址去解析对方的MAC地址

1.1.3. ARP的报文

ARP报文格式


硬件类型:标识硬件地址的类型,值为1表示以太网地址

协议类型:表示要映射的协议地址类相关。0x0080表示IP地址类型

硬件地址长度和协议地址长度,对于以太网上的IP地址的ARP请求或应答来说,他们的值分别为6和4

操作类型(op):1表示ARP请求,2表示ARP应答,3表示RARP请求,4表示进行RARP应答

发送方的硬件地址:发送方设备的硬件地址

发送方的协议地址:发送方设备IP地址

目标硬件地址:接收方设备硬件地址

目标协议地址:接收方设备IP地址

ARP请求报文

ARP应答报文

1.1.4. ARP的工作过程

假设主机A和C在同一个网段,主机A要向主机C发送信息,具体的地址解析过程如下:

主机A首先查看自己的ARP表,确定其中是否包含有主机C对应的ARP表项。如果找到了对应的MAC地址,则主机A直接利用ARP表中的MAC地址,对IP数据包进行帧封装,并将数据包发送给主机C

如果主机A在ARP表中找不到对应的MAC地址,则将缓存该数据报文,然后以广播方式发送一个ARP请求报文。ARP请求报文中的发送端IP地址和发送端MAC地址为主机A的IP地址和MAC地址,目标IP地址和目标MAC地址为主机C的IP地址和全0的MAC地址。由于ARP请求报文以广播方式发送,该网段上的所有主机都可以接收到该请求,但只有被请求的主机(即主机C)会对该请求进行处理

主机C比较自己的IP地址和ARP请求报文中的目标IP地址,当两者相同时进行如下处理:将ARP请求报文中的发送端(即主机A)的IP地址和MAC地址存入自己的ARP表中。之后以单播方式发送ARP响应报文给主机A,其中包含了自己的MAC地址

主机A收到ARP响应报文后,将主机B的MAC地址加入到自己的ARP表中以用于后续报文的转发,同时将IP数据包进行封装后发送出去




1.1.5. ARP表

设备通过ARP解析到目的MAC地址后,将会在自己的ARP表中增加IP地址到MAC地址的映射表项,以用户后续到同一目的地报文的转发



当然我还有很多整理好的资料文档和视频文件,【点这里】 获得更多资料文档 往期教学视频,主要也是想给新手小白少走点弯路。


动态ARP表

动态ARP表项由ARP协议通过ARP报文自动生成和维护,可以被老化,可以被新的报文更新,可以被静态ARP表项覆盖。

当到达老化时间、接口down时会删除相应的动态ARP表项

静态ARP表

静态ARP表项通过手工配置和维护,不会被老化,不会被动态ARP表覆盖

配置静态ARP表项可以增加通信的安全性。静态ARP表项可以限制和指定IP地址的设备通信时只使用指定的MAC地址,此时***报文无法修改此表项的IP地址和MAC地址的映射关系,从而保护了本设备和指定设备之间的正常通信

ARP表的更新和老化

ARP表的更新条件

在实际环境中,只有同时满足两个条件时,设备的ARP表项才会更新

1. 设备收到来自某IP的ARP请求包或免费ARP包

2. 设备的现有ARP表项中已经存在该IP对应的ARP表项

ARP表的老化时间

不同的系统对ARP表项的老化时间设定不太一样,在Windows2000/xp环境中,ARP表项的老化时间是2分钟;大部分Cisco交换机中,该值为5分钟,华为的设备一般是20分钟。

ARP表老化时间定时器

满足以下任一条件时,设备的ARP表项的老化时间定时器会充值

1. 设备响应的ARP表项更新时

2. 设备调用ARP表项转发数据后

1.1.6. 免费ARP

免费ARP的概念

免费ARP指主机发送ARP查找自己的IP地址,通常发生在系统引导期间进行接口配置时,与标准ARP的区别就是免费ARP将目的IP地址封装为自己的IP地址,即向网络中请求自己的MAC地址

免费ARP的作用

检测地址冲突

正常情况下发送免费ARP请求不会收到ARP应答,如果收到一个ARP应答,则说明网络中存在与本机相同的IP地址的主机,发生了地址冲突

更新其他主机高速缓存中旧的硬件地址

如果发送免费ARP的主机正好改变了硬件地址,如更换了接口卡

其他主机接收到这个ARP请求的时候,发现自己的ARP高速缓存表中存在对应的IP地址,但是MAC地址不匹配,那么就需要利用接收到的ARP请求来更新本地的ARP高速缓存表项

网关利用免费ARP防止ARP***

有些网关设备在一定的时间间隔内向网络主动发送免费的ARP报文,让网络内的其他主机更新ARP表项中的网关MAC地址信息,以达到防止或缓解ARP***的效果

利用免费ARP进行ARP***

ARP协议并不只在发送了ARP请求才接收ARP应答,计算机只要收到ARP应答数据包,就会使用应答包中的IP和MAC地址对本地的ARP缓存进行更新

主机可以虚构免费ARP应答,将ARP的源MAC设置为错误的MAC地址,并把这个虚假的免费ARP应答发送到网络中,那么所有接收到这个免费ARP应答的主机都会更新本地ARP表项中相应IP地址对应的MAC地址

更新成功后,这些主机的数据报文就会被转发到错误的MAC地址,从而实现了ARP欺骗

1.1.7. 代理ARP

代理ARP的概念

代理ARP(Proxy)就是通过使用一个主机(通常为Router),来作为指定的设备使用自己的MAC地址来对另一台设备的ARP请求作出应答

通俗来说就是由中间设备来代替其他主机响应arp请求


为什么需要代理ARP

先要了解,路由器的重要功能之一就是把局域网的广播报限制在该网段内,阻止其扩散,否则会造成广播风暴

ARP请求是广播报,他询问的对象如果在同一个局域网内,就会收到ARP应答。如果询问对象不在一个局域网内如何处理?路由器就提供了代理ARP为这个问题提供了解决方案

代理ARP的工作机制

两台主机A和B处于同一网段但不同的广播段(不在同一物理网络)时,主机A发送ARP请求主机B的MAC地址时,因为路由器不转发广播报的原因,ARP请求只能达到路由器。

如果路由器使用了ARP代理功能,并知道主机B属于它连接的网络,那么路由器就用自己接口MAC地址代替主机B的MAC地址来对主机A进行ARP应答。主机A接收ARP应答,但并不知道代理ARP的存在

代理ARP的优缺点

优点

代理ARP能在不影响路由表的情况下添加一个新的Router,使子网对该主机变得透明化。

一般代理ARP应该使用在主机没有配置默认网关或没有任何路由策略得网络上

缺点

从工作过程可以看到,这其实是一种ARP欺骗

通过两个物理网络之间的路由器的代理ARP功能其实互相隐藏了物理网络,这导致无法对网络拓扑进行网络概括

代理ARP增加了使用它的那段网段的ARP流量,主机需要更大的ARP缓存空间,也不会为不使用ARP进行地址解析的网络工作

1.1.8. ARP***

ARP***的原理

ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的进行。基于ARP协议的这一工作特性,***向对方计算机不断发送有欺诈性质的ARP数据包,数据包内包含有与当前设备重复的Mac地址,使对方在回应报文时,由于简单的地址重复错误而导致不能进行正常的网络通信


受到ARP***产生的现象

不断弹出“本机的XXX段硬件地址与网络中的XXX段地址冲突”的对话框。

计算机不能正常上网,出现网络中断的症状

注:因为这种***是利用ARP请求报文进行“欺骗”的,所以防火墙会误以为是正常的请求数据包,不予拦截。因此普通的防火墙很难抵挡这种***

当然我还有很多整理好的资料文档和视频文件,【点这里】 获得更多资料文档 往期教学视频,主要也是想给新手小白少走点弯路。


©著作权归作者所有:来自51CTO博客作者mb5fcf3d80e40fa的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 「网工收藏必备」100个路由基础知识大全,掌握了秒变大神
  2. 「网工小白必备」全网最详细的网络基础知识之数据链路层
  3. 华为认证HCIA】适合网工小白看懂的超详细DHCP原理
  4. 【华为认证HCIA】NAT实验配置完整文档
  5. 「网工必备」华为设备网络基础配置命令总结,收藏党福利(下)
  6. Linux下使用Rinetd来实现端口转发
  7. 利用Dnsmasq部署DHCP服务
  8. vivado ram核同时读写疑问
  9. 如何为 Web 主机做预算

随机推荐

  1. Android Studio 简单设置
  2. 利用HTML5开发Android应用程序 PPT
  3. Android.Essentials[精要]
  4. Eclipse for Android开发环境设置
  5. 错误收集
  6. android蓝牙BLE(一) —— 扫描
  7. Handler: Service中使用Toast
  8. Android多线程(一)
  9. Android 主题切换/换肤方案 研究(一) -
  10. ListView常用属性、方法