36 张图详解 ARP :网络世界没有我,你哪也别想去
发布网友
发布时间:2024-10-11 16:20
我来回答
共1个回答
热心网友
时间:2024-10-13 06:21
从网络分层来看,二层网络使用MAC地址进行传输,MAC地址作为数据链路层的设备标识符。三层网络使用IP地址进行传输,IP地址作为网络层的设备标识符。我们知道,容易记忆的域名,通过DNS解析成IP地址,有了IP地址就可以在网络上找到目的地。IP地址通过ARP,获得MAC地址,有了MAC地址才能在物理网络上传输数据。
ARP,是地址解析协议。根据设备的IP地址来查询对应MAC地址的协议。主机通过ARP查询到MAC地址后,将在ARP缓存表中增加映射表项,即IP地址和MAC地址的映射表项。
举个栗子:我想去腾讯总部(IP地址),但不知道具体位置(MAC地址),这时我就可以通过导航软件(ARP)找到腾讯大厦。
ARP原理:ARP是通过ARP请求和ARP响应报文确定MAC地址的。假如主机A向同一网段上的主机B发送数据。主机A的IP地址为10.0.0.1,主机B的IP地址为10.0.0.2,主机C的IP地址为10.0.0.3。它们都不知道对方的MAC地址。ARP地址解析过程如下:
如果每发送一个IP报文就要进行一次ARP请求,来确定MAC地址,那将会造成不必要的网络流量,通常的做法是用ARP表记录IP地址和MAC地址的映射关系。主机发送报文时,首先会查看它的ARP表,目的是为了确定是否是已知的设备MAC地址。如果有,就直接使用;如果没有,就发起ARP请求获取。不过,缓存是有一定期限的。ARP表项在老化时间(aging time)内是有效的,如果老化时间内未被使用,表项就会被删除。
ARP表项分为动态ARP表项和静态ARP表项:
代理ARP:ARP广播报文会被路由器隔离,没有默认网关、网段不同的主机相互通信时,连接这两个网络的路由器可以响应这个ARP请求,这个过程叫做代理ARP(Proxy ARP)。
主机A与另一个网段的主机B通信,主机A直接发送ARP请求,解析主机B的MAC地址。运行了代理ARP的路由器收到ARP请求后,代替主机A在20.0.0.0网段发出ARP请求,解析主机B的地址。
主机B收到路由器发出的ARP请求,发出ARP响应报文,告知自己的MAC地址是2222-2222-2222。路由器收到ARP响应后,也向主机A发送ARP响应,但目的MAC地址是与10.0.0.0网段连接的端口MAC地址是1010-1010-1010。主机A收到报文后,在ARP表中添加IP地址是20.0.0.1和MAC地址是1010-1010-1010的映射表项。
因此主机A会将所有要发送给主机B的数据发送给路由器,路由器再将其转发给主机B。反之亦然。
代理ARP功能屏蔽了分离的网络,主机不用修改IP地址和子网掩码就可以和现有的网络互通。让用户使用起来,跟在同一个网络上一样。代理ARP使用在主机没有默认网络,或没有任何路由的网络上,通常是那些不支持设定子网掩码的老设备。但代理ARP会转发ARP广播报文,造成网络效率低,不适合用于大规模网络。
RARP:RARP是将ARP反过来,从设备MAC地址获取IP地址的一种协议。通常是打印机等小型嵌入式设备接入网络时会用得到。
使用RARP需要搭建一台RARP服务器,在服务器上注册设备的MAC地址及IP地址。
免费ARP:免费ARP是一种特殊的ARP请求,它并非通过IP找到对应的MAC地址,而是当主机启动的时候,发送一个免费ARP请求,即请求自己的IP地址的MAC地址。
与普通ARP请求报文的区别在于报文中的目标IP地址。普通ARP报文中的目标IP地址是其它主机的IP地址;而免费ARP的请求报文中,目标IP地址是自己的IP地址。
免费ARP的作用:
ARP报文:ARP报文分为ARP请求报文和ARP应答报文,它们的报文格式相同,但是各个字段的取值不同。
ARP报文中各个字段的含义如下。
网络实战:ARP可以动态地进行地址解析,因此网络中的设备无需配置,只要有IP地址就可以自动获得MAC地址。但是静态ARP和代理ARP等是需要单独配置。下面我们代理ARP的实验。
代理ARP网络拓扑实验要求操作步骤功能验证:配置完成后,下面就要进行验证,检查功能是否生效、配置是否正确。在PC1上ping PC2的IP地址,进行连通性测试。
还可以抓包查看完整的报文交互过程,同时验证下理论知识是否正确。