ARP(Address Resolution Protocol,地址解析协议)是将IP地址解析为以太网MAC地址(或称物理地址)的协议。在网络中,当主机或其它网络设备有数据要发送给另一个主机或设备时,它必须知道对方的网络层地址(即IP地址),由于IP数据报必须封装成帧才能通过物理网络发送,因此还需要知道对方的物理地址,所以设备上需要存在一个从IP地址到物理地址的映射关系。ARP就是实现这个功能的协议。
ARP报文结构:
·硬件类型:表示硬件地址的类型。它的值为1表示以太网地址;
·协议类型:表示要映射的协议地址类型。它的值为0x0800即表示IP地址;
· 硬件地址长度和协议地址长度分别指出硬件地址和协议地址的长度,以字节为单位对于以太网上IP地址的ARP请求或应答来说,它们的值分别为6和4;
· 操作类型(OP):1表示ARP请求,2表示ARP应答;
·发送端MAC地址:发送方设备的硬件地址;
· 发送端IP地址:发送方设备的IP地址;
· 目标MAC地址:接收方设备的硬件地址;
·目标IP地址:接收方设备的IP地址
ARP地址解析过程:
假设主机A和B在同一个网段,主机A要向主机B发送信息。如图所示,具体的地址解析过程如下:
(1) 主机A首先查看自己的ARP表(ARP表项保存在设备的内存中,不同的设备有不同的ARP表项老化时间),确定其中是否包含有主机B对应的ARP表项。如果找到了对应的MAC地址,则主机A直接利用ARP表中的MAC地址,对IP数据报进行帧封装,并将IP数据报发送给主机B。
(2) 如果主机A在ARP表中找不到对应的MAC地址,则将缓存该IP数据报,然后以广播方式发送一个ARP请求报文。ARP请求报文中的发送端IP地址和发送端MAC地址为主机A的IP地址和MAC地址,目标IP地址和目标MAC地址为主机B的IP地址和全0的MAC地址。由于ARP请求报文以广播方式发送,该网段上的所有主机都可以接收到该请求,但只有被请求的主机(即主机B)会对该请求进行处理。(所有的ARP请求只有广播的形式)
(3) 主机B比较自己的IP地址和ARP请求报文中的目标IP地址,当两者相同时进行如下处理:将ARP请求报文中的发送端(即主机A)的IP地址和MAC地址存入自己的ARP表中。之后以单播方式发送ARP响应报文给主机A,其中包含了自己的MAC地址。
(4) 主机A收到ARP响应报文后,将主机B的MAC地址加入到自己的ARP表中以用于后续报文的转发,同时将IP数据报进行封装(以太网封装)后发送出去。
当主机A和主机B不在同一网段时,主机A就会先向网关发出ARP请求,ARP请求报文中的目标IP地址为网关的IP地址(此时为广播)。当主机A从收到的响应报文中获得网关的MAC地址后,将报文封装并发给网关。如果网关没有主机B的ARP表项,网关会广播ARP请求,目标IP地址为主机B的IP地址,当网关从收到的响应报文中获得主机B的MAC地址后,就可以将报文发给主机B;如果网关已经有主机B的ARP表项,网关直接把报文发给主机B。
免费ARP报文是一种特殊的ARP报文(主要用于DHCP获取地址过程中),该报文中携带的发送端IP地址和目标IP地址都是本机的IP地址。设备通过对外发送免费ARP报文来确定其他设备的IP地址是否与本机的IP地址冲突,并实现在设备硬件地址改变时通知其它设备更新ARP表项。
开启了免费ARP报文发送功能后,设备可以在局域网内广播发送免费ARP报文。如果设备收到ARP应答报文,表示局域网中存在与该设备IP地址相同的设备,则设备不会使用此IP地址,并打印日志提示管理员修改该IP地址。如果设备未收到ARP应答报文,表示局域网中不存在与该设备IP地址相同的设备,则设备可以正常使用IP地址。
如果ARP请求是从一个网络的主机发往同一网段却不在同一物理网络上的另一台主机,那么连接它们的具有代理ARP功能的设备就可以回答该请求,这个过程称作代理ARP(Proxy ARP)。
代理ARP功能屏蔽了分离的物理网络这一事实,使用户使用起来,好像在同一个物理网络上。
ARP攻击防御
ARP攻击防御简介:
ARP协议有简单、易用的优点,但是也因为其没有任何安全机制而容易被攻击发起者利用。
1. 可以仿冒用户、仿冒网关发送伪造的ARP报文,使网关或主机的ARP表项不正确,从而对网络进行攻击。
2. 通过向设备发送大量目标IP地址不能解析的IP报文,使得设备试图反复地对目标IP地址进行解析,导致CPU负荷过重及网络流量过大。
3. 向设备发送大量ARP报文,对设备的CPU形成冲击。
目前ARP攻击和ARP病毒已经成为局域网安全的一大威胁,为了避免各种攻击带来的危害,设备提供了多种技术对攻击进行防范、检测和解决。
如果网络中有主机通过向设备发送大量目标IP地址不能解析的IP报文来攻击设备,则会造成下面的危害:
·设备向目的网段发送大量ARP请求报文,加重目的网段的负载。
·设备会试图反复地对目标IP地址进行解析,增加了CPU的负担。
为避免这种IP报文攻击所带来的危害,设备提供了下列两个功能:
·ARP源抑制功能:如果发送攻击报文的源是固定的,可以采用ARP源抑制功能。开启该功能后,如果网络中每5秒内从某IP地址向设备某接口发送目的IP地址不能解析的IP报文超过了设置的阈值,则设备将不再处理由此IP地址发出的IP报文直至该5秒结束,从而避免了恶意攻击所造成的危害。
配置ARP源抑制功能:
·ARP黑洞路由功能:无论发送攻击报文的源是否固定,都可以采用ARP黑洞路由功能。开启该功能后,一旦接收到目标IP地址不能解析的IP报文,设备立即产生一个黑洞路由,并同时发起ARP主动探测,如果在黑洞路由老化时间内ARP解析成功,则设备马上删除此黑洞路由并开始转发去往该地址的报文,否则设备直接丢弃该报文。在删除黑洞路由之前,后续去往该地址的IP报文都将被直接丢弃。用户可以通过命令配置ARP请求报文的发送次数和发送时间间隔。等待黑洞路由老化时间过后,如有报文触发则再次发起解析,如果解析成功则进行转发,否则仍然产生一个黑洞路由将去往该地址的报文丢弃。这种方式能够有效地防止IP报文的攻击,减轻CPU的负担。
配置ARP黑洞路由功能:
Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。
Telnet是位于OSI模型的第7层---应用层上的一种协议,是一个通过创建虚拟终端提供连接到远程主机终端仿真的TCP/IP协议。这一协议需要通过用户名和口令进行认证,是Internet远程登陆服务的标准协议。应用Telnet协议能够把本地用户所使用的计算机变成远程主机系统的一个终端。它提供了三种基本服务:
1)Telnet定义一个网络虚拟终端为远程系统提供一个标准接口。客户机程序不必详细了解远程系统,他们只需构造使用标准接口的程序;
2)Telnet包括一个允许客户机和服务器协商选项的机制,而且它还提供一组标准选项; .
3)Telnet对称处理连接的两端,即Telnet不强迫客户机从键盘输入,也不强迫客户机在屏幕上显示输出。
在本地cmd下使用本地Telnet:
Telnet+LAN口的IP
输入设备用户名和密码进行登录,登录之后和应串口控制是一样的效果,也可以进入debugshell 模式
在cmd下使用远Telnet登录:
Telnet+wan口IP +端口号
输入设备用户名和密码进行登录,登录之后和应串口控制是一样的效果,也可以进入debugshell 模式