数据通信——网络层(ARP协议)

引言

还是有必要说一下。当我们从主机跨网络通信时,数据会先到达与其相连的交换机,通过交换机到达相应的路由器,路由器对数据匹配后判断是否间接交付给其它路由器还是直接交付给其它交换机。

这个时候就奇怪了?我怎么知道接收者在哪?就好比我送快递,交换机和路由器都是路途中的站点,可是我怎么知道收件人的具体信息呢?有人说你寄快递不得知道收件人的具体信息?当然,网络通信自然也需要知道目的端的信息!

    我们在通信的的过程中,IP地址好比是电话号码,我们并不是为了打这个电话号而打电话,而是为了和接电话的人通信(也就是mac地址)因此通信是两个mac之间进行通信,只不过我们通过IP地址作为通信的媒介。在上述解释后,就可以谈论ARP协议了。

 ARP协议(地址解析协议)

注:以下只是在三层交换机下讨论的情况,二层交换机没有ARP表,它是通过直接查询MAC地址表来完成转发的,他也叫傻瓜交换机。

先直接拍个图片

    上述是一个仅由交换机连接的网络拓扑。当PC1向PC2进行通信时,PC1不知道PC2的mac地址,这时候会发送请求报文来请求获取PC2的mac地址,PC2设备接收到以后就会以单播的形式应答给PC1。PC1,PC2和沿途的交换机都会将收到的信息形成ARP表项。但注意,在这个网络区间内的所有终端都会收到ARP的请求,只有PC2才会相应这个请求

    网络中如果有大量的主机,那么这些主机都会收到ARP请求报文,它们会检查发来的ARP请求中的目的端IP字段是否与自己的IP字段一致。如果不一致则不会理会,如果发现匹配了,就会将ARP请求报文中的发送端的mac地址和IP地址加入到ARP缓存表中。随后它会返回一个单播的ARP应答,这个应答告诉发送我在哪里。

    在这个过程中,交换机担任了一个中转的角色,这个交换机可机灵得很!发送端和接收端报文中的MAC地址和IP地址都会被交换机“偷偷”记录下来,形成ARP映射表。下次在发送到达同样地方的信息时,交换机就能在ARP表项中查到,这个IP地址所对应的MAC地址是要发给谁的?以此就能得知该怎么去往目的端了。

 

路由器缺省网关的代理ARP

    你想想,ARP的请求是广播形式发送的,如果一个区域内的设备太多,每个机子都进行一次ARP请求,这CPU,带宽和ARP表的长度可遭不住啊!因此我们通过路由器进行网络划分,路由器的一大作用也展现出来了!

    对于配置了默认网关的路由器,它可以通过自己路由器中的路由表项清楚的知道这个IP地址要发给谁(路由器转发的问题后续文章我会提到)

    但是对于没有配置网关的路由器而言,上图这个样子的话,首先路由器因为没有配置缺省网关,它无法通过路由表查看目的端方位。而且因为ARP只能在一个广播域内广播,因此路由器起到了隔离的作用。路由器不会接受广播报文,因此发来的广播ARP请求路由器不会理会。如果我想发送的目的端IP在其它网段,那该怎么办呢?

这个时候就需要用代理ARP!

代理ARP

    我们可以在路由器上开启代理ARP协议,当发送端发出了ARP请求后,开启了代理ARP的路由器会发现发送端的ARP请求是发给与该路由器相连的其他网段的。这个时候,路由器会将自身的MAC 地址与目标计算机的IP地址作为映射并对源计算机进行应答。这个时候,发送端会认为我已经联系上了对方,但其实,这个IP所对应的mac地址是开启代理ARP路由器的mac地址,不过发送端对此并不知情。

    简单来说,接下来的发送的快递,发件人以为收件人的信息没有问题。但其实这个收件人是个中介,它假冒乙方收到了快递随后再将快递发给了真正的收件人。

ARP欺骗

    除非你是中介,否则你应该不会喜欢中介吧!你也不希望自己的包裹被别人拿到后再转手发走吧!这就是大家一直在纳闷,代理ARP有什么用?因为它会引发网络安全中经典的攻击——ARP欺骗。

    ARP欺骗的原理是攻击者发送假的ARP数据包送到网关上。其目的是要让送至特定的IP地址的流量被错误送到攻击者所取代的地方,思考一下,如果开启了代理ARP,你甚至不知道自己的快递被发到了哪个中介手里。

    攻击者可以窥视这些流量后再另行转送到真正的网关,最怕的是篡改后再转送。攻击者亦可将ARP数据包导到不存在的MAC地址上,让你的一直无法访问目的网络。

后续

ARP这个协议属于IP协议簇中的一员,无论在网络通信还是网络安防中,他都是一个不可避开的问题。后续我会另开文章讲述网络安全的知识,到时会提及应对ARP欺骗的防御方式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

咕噜跳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值