计算机网络协议分析 第四课
注:老师说明,本课基于计算机网络基本原理,在计算机网络中详细介绍过后的,这里将简单带过或不再提及
第3章 地址解析协议ARP
问:为何需要ARP?
答:作为链路层协议,它肩负着把目标IP地址转化为物理地址,为数据投递提供支撑的任务。
3.1 ARP工作原理
本网络中ARP的应用
- 主机A要向主机B发送数据。首先A广播发送ARP请求分组,请求分组中包含主机A的IP、MAC地址,B的IP地址,此时目的MAC为ff:ff:ff:ff:ff:ff。
- 主机X,Y收到请求分组后,因为不是目标主机,所以不会响应,但会把主机A的IP、MAC存入自己的ARP表中。主机B收到后,也会添加到ARP表中,同时将会向A发送ARP响应分组,其中包含主机A、B的IP、MAC。
跨网使用ARP
- A发出ARP请求分组,其中包含A的IP、MAC,B、R1都收到了分组
- R1发送ARP应答分组,A获得了R1 的MAC,同时R1的ARP缓存上记录了A的IP、MAC
- A收到ARP应答分组,在自己的ARP缓存中记录了R1的F0/0接口的IP和MAC。发送IP包和帧头给R1,其中目的IP地址为C的IP,但目的MAC地址是F0/0的MAC。
- R1向C的网络中发送ARP请求分组
- C收到了ARP请求分组,在自己的ARP缓存中记录了接口F0/1的IP和MAC。并发出了ARP应答分组
- R1收到了ARP应答分组,将C的IP和MAC记录在自己的ARP缓存中。然后将数据报转发给C。此时数据报的源IP地址是A的,但源MAC地址是F0/1
3.2 ARP分组
ARP分组
- ARP分组封装在以太网帧中
- 需要注意目的MAC在前,源MAC在后
- 类型中0x0806代表随后的数据字段是ARP报文,相对的0x0800h代表数据字段是IP数据报
- ARP请求分组(广播)的目的MAC为FF:FF:FF:FF:FF:FF,源MAC为:请求方MAC地址
- ARP应答分组(单播)的目的MAC为:请求方MAC地址,源MAC为:应答方MAC地址
ARP分组格式
- 物理网络类型:以太网,所以为1
- 协议类型:网络层的协议类型,IP协议为:0x0800
- 物理地址长度:6,协议地址长度:4,单位都是字节
- 操作码:1为ARP请求;2为ARP应答
要求:1. 能够通过各个部分看出目的地址,源地址,操作码,请求还是应答等数据
2. 能够通过图中数据反编出ARP应答分组的全部内容(答案放最后)
3.3 ARP欺骗
计算机网络基本原理中已经介绍较为详细,这里不做过多补充
问:如何使得A发送给B的数据,全部发送到C?
答:1. C发送一个伪造ARP请求(源IP是B的IP,但是源MAC是C的MAC)
2. A收到后更新自己的ARP缓存表
思考:如果B是A的网关,结果会如何?
答:A将不能正常上网,如果查出,可以通过清空ARP缓存表,再设置静态网关MAC。
3.4 免费ARP
- 免费ARP:向所在网络请求自己IP所对应的MAC地址
- 正常情况下,发送免费ARP请求不会收到ARP应答
- 免费ARP的作用:
- 判断其他设备的IP地址是否与本机IP地址冲突
一般设备在网卡地址加载阶段都会想网络中发送免费的ARP报文,当我们想知道某些设备的接口地址但又没有相应的记录可查时,我们就可以利用免费ARP报文,分析出其接口使用的IP地址 - 更换网卡时更新MAC地址
- 可利用免费ARP进行ARP攻击
在实际环境中,如果构造网关地址的免费ARP报文,并将ARP的源MAC地址设为任何非网关的MAC地址,再把构造的这个虚假网关免费ARP报文向网络中发送,那么所有接收到这个免费ARP报文的主机都会更新自己的ARP表中的网关地址对应的MAC地址,导致这些主机的数据报文全部会被转发到错误的MAC地址上,从而实现了ARP欺骗的攻击 - 网关设备利用免费ARP防止ARP攻击
有些网关设备为了防止内部中毒机器对内部其他机器实施网关的ARP欺骗攻击,其会在一定的时间间隔内向网络汇总主动发送免费ARP报文,让网络中的主机更新ARP表中网关的MAC地址信息,从而达到防止或缓解ARP攻击的效果。
- 判断其他设备的IP地址是否与本机IP地址冲突
3.5 代理ARP
- 代理ARP:ARP请求从一个主机发往同一IP网段却不在同一物理网络上的另一台主机
- 问题一:主机A发送ARP请求,请求谁的MAC地址?
答:主机B的MAC地址,因为主机A和主机B的IP地址为同一网段,但是收到的却是路由器的MAC,因为路由器不能转发广播包,于是用自己的MAC和B的IP来应答 - 问题二:主机B能否收到主机A的ARP请求报文?
答:不能,因为二者处于不同广播域。
3.6 反向地址解析协议RARP
无盘计算机获取IP
- 计算机获取IP地址的两种方式:
- 固定分配(硬盘)
- 动态获取DHCP(内存)
- 无硬盘计算机启动时,用RARP向RARP服务器请求它的IP地址
- 无硬盘计算机必须和RARP服务器位于同一个局域网中
- 类似于DHCP,但DHCP拥有DHCP中继,所以DHCP的客户端和服务端不需要在同一个网络中
RARP工作原理
- 无盘计算机广播发出RARP请求,其中源MAC是A的MAC,目的MAC为FF:FF:FF:FF:FF:FF,源IP地址和目的IP地址都是0
- RARP收到A的请求报文,于是给A发应答报文,其中源MAC,IP是服务器的MAC,IP,目的IP,MAC是A的MAC,IP。于是A就可以得到自己的IP地址。
RARP分组
- 注意这里的类型为0x0835
- RARP请求分组(广播):目的MAC:FF:FF:FF:FF:FF:FF;源MAC:请求方MAC地址
- RARP应答分组(单播):目的MAC:请求方的MAC地址;源MAC:RARP服务器的MAC地址
RARP分组格式
类比上面ARP分组格式,不同点在于操作码
- 操作码:3为RARP请求;4为RARP应答
- 问:RARP请求分组的源IP和目的IP是什么?
- 答:都是0
ARP应答分组对应答案:
习题:注意题目有错,希望能自己找出错误在哪
上一课:第三课 PAP,CHAP
下一课:第五课 IP