官网地址

程序猿升级课

热爱开源,喜欢摸索


隐藏在网络层及物理链路层下面的ARP欺骗

本文主要通过实际操作及生活中路由器的使用,谈谈对 OSI(Open System Interconnection)中链路层和网络层的认识

目录

  • 举例说明IP和Mac地址的使用
    • 同一局域网
    • 非同一网络下
  • 以生活中实例,解析
  • 扩展ARP的好处和隐藏的危险
    • 扩展-ARP缓存
    • 隐藏的危险-ARP欺骗
  • 总结

网络分层的原则:每一层独立于其他层完成自己的工作,而不需要相互依赖,上下层之间通过标准接口来互相通信,简单易用又具有扩展性。

理解:

对此我们还要看OSI 开放系统互联模型

1344351176_4808.jpg
  • IP : 属于网络层(同网络下唯一)
  • Mac : 属于数据链路层(全球唯一)

也就是说所有的网络解析都是要把ip解析为mac地址的,以为ip相对于同一个网络下是唯一的,但是相对于其他局域网下,就肯定不是唯一的

这里面临两种情况:

  • 1.当在同一个网络下面可以直接通过通过ip查找到对应的mac地址然后进行网络交互
  • 2.当非同一个网络下,就要通过IP把一个 A 网络下的请求发送到 B 网络,然后在 B 网络下把 IP地址在解析为Mac地址

举一个?栗子

一、同一局域网

4279695-5d7494f2e389cbe6.png
  • 当PC0和PC1能正常通信时,在PC0上查看ARP表如下:

    4279695-42cba7785a12dfae.png

可以看出,到目标主机的IP地址映射为对应的MAC地址了,此时PC0就可以将目标主机的IP地址转换为对应的MAC地址封装在数据帧中发给交换机。

交换机有那么多端口,它怎么就知道你发送的这个数据帧的目的地址该从自己的哪个端口转发出去呢?因此,交换机自己还要维护一张“MAC地址表”,用来记录目的MAC地址-端口的映射关系,如下图

4279695-96ae817db066fdbd.png

现在交换机看到0004.9a2e,3ad1的MAC,就知道要从F0/2把数据帧发送出去啦O(∩_∩)O二层数据帧的通信基本原理就是这

二、非同一网络下

4279695-0d865a797fe12c5a.png
  • 现在路由器的两端分别为两个网络。数据想要从PC0到PC1

    因为不是在同一个网络下,所以要把报文,发给网关,让网关代发。

    在本地找到网关的IP和Mac地址

    PC0 :

    4279695-8ca7ce50919e98c3.png

数据想从PC0到路由器,依然必须经历从IP地址到MAC地址的转换过程,然后在根据路由器维护的Mac地址找对对应的端口,这个就从Fa0/24端口出去,发送到目标网络环境下

4279695-8843d9f4aee7e5bc.png

但是发送到哪里呢?这个时候就要解析目标的IP地址了,因为已经从 A 网络到 B 网络,在B 网络就又相当于是局域网下,可以直接找到Mac地址了

IP地址和Mac地址什么时候用

  • 我们可以把两台电脑连起来,然后这两台电脑就可以直接使用数据链路层(OSI 第二层)的 PPP 协议(Point to Point Protocol) 收发数据了,这个时候每个数据包都会直接使用这两台电脑的 MAC 地址(源地址和目标地址)。在这种场景下我们没用到 IP 地址就实现了设备之间的数据交换。
  • IP 可以用于更长距离的设备之间的互联。假设你在中国有一台电脑 A,想访问美国的一台电脑 B,你不可能直接从中国拉一条网线连接到美国,理论上说得通,但是不具可行性。所以在中国和美国之间需要众多的中转路由器,电脑 A 每发一个数据包,都要经过这些路由器,才能到达电脑 B,在这种情况下,你不可能直接使用 PPP 协议,因为两台电脑不是直连的。

1. 我们每个人家里都有一个无线路由器,Windows 下叫 Gateway(网关)Mac 下叫 Router(路由器),这个路由器的这个路由器的地址一般都是192.168.*.1

2. 现在我们想访问百度,但是我们不知道百度的ip地址,所以我们要先发给我们的路由器,但是根据OSI模型我们知道,要想发送数据必须要有 IPMac 地址,此时我们会向当前网络,发送一个 ARP 广播 : ''请问谁的 IP 地址是 192.168.1.1?麻烦你告诉我你的 MAC 地址"

3.这个时候路由器收到这个 ARP 广播,就会直接给电脑 A 发送一个 ARP 响应,在里面包含自己的 MAC 地址 ,至于其他的收到这个ARP广播的设备,直接就抛弃了

4. 电脑 A 知道了路由器的 MAC 地址,就可以直接向路由器发送它的数据包了。这个时候数据包里面包含了电脑 A 的 MAC 地址、本地路由器的 MAC 地址、电脑 A 的 IP 地址和电脑 B 的 IP 地址

5. 路由器会把数据包传给你的 ISP,方式跟上面说的大同小异,而 ISP 与 ISP 之间则需要根据数据包中指定的目标 IP 和路由器存的路由表(Routing Table)来确定把数据包传给接下来的哪个路由器,直到数据包被传到跟电脑 B。

扩展-ARP缓存

为使广播量最小,ARP维护IP地址到MAC地址映射的缓存以便将来使用。ARP缓存可以包含动态和静态项目。动态项目随时间推移自动添加和删除。每个动态ARP缓存项的潜在生命周期是10分钟。新加到缓存中的项目带有时间戳,如果某个项目添加后2分钟内没有再使用,则此项目过期并从ARP缓存中删除;如果某个项目已在使用,则又收到2分钟的生命周期;如果某个项目始终在使用,则会另外收到2分钟的生命周期,一直到10分钟的最长生命周期。静态项目一直保留在缓存中,直到重新启动计算机为止。

隐藏的危险

ARP(Address Resolution Protocol)地址解析协议是建立在网络中各个主机互相信任的基础上的,网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存;由此攻击者就可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗

总结

  • IP地址最后还是要解析成Mac地址
  • IP地址可以分配,但是Mac地址是刻录在硬件下具有全球唯一性,可以定位到任何地点
  • IP是分层的,具有的好处就是,每个设备存储最小的信息量
  • MAC是身份证号码,用来识别网络设备本身。IP地址是居住地。
posted @ 2017-07-03 21:41  chinesszz  阅读(295)  评论(0编辑  收藏  举报
ヾ(≧O≦)〃嗷~