图解ARP协议(四)代理ARP原理与实践(“善意的欺骗”)
一、代理ARP概述 我: 当电脑要访问互联网上的服务器,目标MAC是什么? 很多小伙伴在刚学习网络协议的时候,经常这样直接回应: 不就是服务器的MAC嘛! 这时我会反问: 那电脑怎么拿到这个服务器的MAC地址呢? 小伙伴一般都自信的抛出下面两个点: ①根据网络通信中数据封装的原则,通信双方需要封装源目IP和MAC地址; ②如果要拿到目标MAC地址,就需要通过ARP协议进行交互。 我:好,确实没毛病,你是指的下面这个意思吧 ==> 小伙伴:对对对,是这个意思的。 我:好,你再看看下面这个图,再确认下。 小伙伴:好像不太对唉,刚才没注意看...... 互联网这么多路由器,根据之前学过的: ①路由器隔离广播域,每个接口/网段都是独立的广播域; ②ARP请求是二层广播包,广播包没法过路由器, 这样的话,ARP请求广播包根本没法穿越互联网到达目标服务器。 我:那我们平常上微博逛知乎去京东剁手基本都依据上面这张图, 通过DNS协议将域名解析为IP地址,通过ARP协议将IP解析为MAC地址 。现在ARP请求无法穿越过去,电脑便无法获取目标服务器的MAC地址,怎么跟它通信呢? 小伙伴: 。。。。。。 上面这个疑惑,我相信每个学习网络协议的初学者经常会问到,更普遍的情况是,很多工作多年的工程师,也未必能够将下面这几个问题完全搞清楚: ①电脑访问互联网服务器的时候,ARP询问的内容,真的是问服务器的吗