具体实施方式
为了实现本发明目的,本发明采用的核心思想为:通过在以太网设备中预先配置用以控制来自主机的DNS查询报文的ACL规则;当以太网设备监听到来机主机的DNS查询报文,模拟DNS报文的解析过程获取该DNS报文中携带的域名并判断是否为以太网设备自身的系统名称,如果是,则将所述以太网设备网管系统的可用IP地址作为主机的DNS域名查询的结果,向主机模拟发送DNS应答消息。通过本发明方案,用户只需记住以太网设备的系统名称即可实现对以太网设备的远程网络管理,不需要记录或者配置以太网设备的IP地址等参数,因而在实际网络管理中实现简单方便。
以下结合本发明具体实施例加以说明。在详细介绍本发明方案之前,先就本发明实施例中使用到的基本概念加以说明,以使所属技术领域的人员理解本发明技术方案更加清楚和容易:
DNS:DomainNameSystem,因特网的域名系统的缩写,是Internet网的一项核心服务。DNS实质上是一个可以将域名和IP地址相互映射的分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被网络设备直接读取的IP数字串。
ACL:AccessControlList,访问控制列表,是以太网设备(如路由器和交换机)接口的指令列表,用来控制端口进出的数据包。以太网设备为了处理特定的数据包,需要配置一系列的匹配规则,以识别需要处理的对象。在识别出特定的对象之后,才能根据预先设定的策略允许或禁止相应的数据包通过。ACL通过一系列的匹配条件对数据包进行分类,这些条件可以是数据包的源地址、目的地址、端口号、特征码等。对于这些特定的数据包,ACL可以根据用户需要进行不同的处理策略,例如Trap(标记)、Mirror(镜像)、DSCP设置(优先级置换)、Drop(丢弃)、流量统计,流量限制等。
系统名称:SystemName,网管系统通常允许用户使用限定长度的自定义字符串来给以太网设备命名,方便标识设备和日常管理。用户自定义字符串即为系统名称。
如图1所示,为本发明快速获取访问以太网设备网管系统的方法流程图。其中该方法应用于包括主机、以太网设备以及DNS服务器的网络系统中,所述方法具体包括如下步骤:
步骤11、在以太网设备中预先配置用以控制来自主机的DNS查询报文的ACL规则。
由于DNS协议运行在UDP协议之上,且使用端口号为53。因此,在本发明中,通过事先在以太网设备中配置用以控制该来自主机的DNS查询报文的ACL规则。
具体地,本步骤中在以太网设备内设置的控制来自主机的DNS查询报文的ACL的规则为:
UDP报文,UDP目的端口号=53;
DNS协议字段中,Flags=0x0100,以代表StandardQuery;
DNS协议字段中,TYPE=A,CLASS=IN;
DNS协议字段中,NAME字段从左至右获取特定字节内容用以匹配以太网设备的系统名称(systemname)。其中特定字节指以太网设备系统名ASCII字符串长度。
步骤12、以太网设备模拟DNS报文的解析过程获取DNS报文中携带的域名并判断是否为该以太网设备自身的系统名称,如果是,则进行步骤13,否则进行步骤14。
当以太网设备监听到来自主机的DNS查询报文时,模拟DNS域名的解析过程获取该DNS报文中的域名。
当以太网设备模拟DNS报文的解析过程获取DNS报文中携带的域名与自身的系统名称匹配时,则表示来自该主机的DNS报文需要访问其自身的网管系统,此时,则直接进入步骤13,否则,表明该DNS报文并非为访问自身的网管系统,直接按照普通报文的转发流程转发出去即可。
步骤13、将以太网设备网管系统的可用IP地址作为主机的域名查询的结果,向主机模拟发送DNS应答消息。
当以太网设备模拟DNS报文的解析过程获取DNS报文中携带的域名与自身的系统名称匹配时,则表示来自该主机的DNS报文需要访问其自身的网管系统,此时,以太网设备需要将对应端口所在VLAN虚接口IP地址修改为1个可用IP地址,并保证与主机的IP地址在相同网段。其中,
具体的修改方法可以是:
以太网设备分析主机发出的DNS报文中的源IP地址,记录为IPX;
以太网设备以其自身设备的当前IP地址为源IP地址,IPX为目的IP地址向主机发送ARP检测报文,如果主机能正常应答该ARP检测报文,则以所述以太网设备的当前IP地址作为该以太网设备网管系统的可用IP地址;反之,如果主机没有应答该ARP检测报文,则继续执行下面获取IP地址的步骤;
以太网设备尝试以IPX为目的IP地址,以IPX±N为源IP地址向主机发送ARP检测报文,其中N为正整数数列;同时,
以太网设备将IPX±N作为源IP地址和目的IP地址向局域网内其他节点发送免费ARP报文;
如果主机能正常应答ARP检测报文但局域网内其他网络节点未应答以IPX±N作为源IP地址和目的IP地址的ARP报文,则主机将虚接口可用IP地址修改为IPX±N。进一步地,为了提高切换效率,防止DNS查询超时,较佳地,在本发明实施例中,在执行上述步骤期间,当获取第一个可用IP地址时,即将该第一个可用IP地址作为以太网设备网管系统的可用IP地址。
当所述以太网设备获取其自身网管系统的可用IP地址后,该以太网设备进一步分析来自主机的DNS报文中的目的IP地址和目的MAC,并将该可用IP作为主机的域名查询的结果,向主机发送DNS应答消息。
具体地,DNS应答消息的源MAC地址填充为主机发出的DNS请求报文中的目的MAC地址,目的MAC地址填充为主机的源MAC地址。
DNS应答消息的源IP地址填充为主机发出的DNS请求报文中的目的IP地址,目的IP地址填充为主机的源IP地址,UDP源端口号为53。
以太网设备将其网管系统的可用IP地址作为主机的域名查询结果,在DNS应答消息的VLAUE字段填充该可用IP,向主机发送DNS应答消息。
随后,根据以太网设备发出的DNS应答消息,主机的DNS客户端生成以太网设备系统名称和以太网设备网管系统可用IP间的对应关系,主机浏览器创建目的IP地址为该可用IP的TCP连接,因而,可实现本发明对以太网设备WEB网管系统的远程访问。
另外,为了防止将设备虚接口IP地址修改为与主机在相同网段的可用IP地址尝试的次数过多以致占用网络系统的资源过多,较佳地,在本发明实施例中,以太网设备应内置尝试修改虚接口可用IP地址的上限次数,如果达到上限次数时,以太网设备仍然没有获得可用的可用IP地址,则应判断在局域网内可用IP地址资源已经耗尽。在这种情况下,以太网设备模拟DNS服务器应答DNS消息NOSuchName,或者将该DNS查询报文向上行以太网设备进行转发。
步骤14、按照普通报文转发流程,向上行以太网设备转发来自主机的DNS报文。
具体地,当以太网设备模拟DNS报文的解析过程获取DNS报文中携带的域名与自身的系统名称不匹配时,则表示来自该主机的DNS报文并非需要访问其自身的网管系统,因此,仍按照DNS报文的正常转发流程,进一步向上行以太网设备转发来自主机的DNS报文。
如图2所示,为本发明快速访问以太网设备网管系统的应用场景图,假设在该应用场景中,用户主机C需要访问以太网设备A的网管系统,系统名称为H3CA,在该网络系统中,另有1台以太网设备B位于以太网设备A上层,系统名称为H3CB。
需要说明的是,本发明方案适用于所有远程访问以太网设备网管系统的网络协议。在此,本发明仅以通过HTTP协议访问以太网设备网管系统为例,说明本发明的完整实现步骤,对于使用其他应用层的网络协议,例如TELNET和SNMP等访问的以太网设备网管系统,在实现方法和处理流程上与HTTP协议访问以太网设备网管系统的举例完全相同,为节约篇幅,此处不再赘述。
在本应用场景下,本发明方案的具体实现步骤如下:
步骤31、用户在主机C上使用浏览器直接请求以太网设备A的系统名称H3CA。
具体地,在本发明较佳的实施例中,主机C需要预先获取其自身的IP地址以及DNS服务器IP地址参数。此外,主机C还需要开启DNSClient服务,通常安装Windows或者Linux操作系统的主机均默认使能了该服务。
步骤32、浏览器从用户输入的URL中获取用户请求的域名H3CA,传递给主机DNS的应用客户端,所述DNS客户端向指定的DNS服务器发送一个包含H3CA域名的DNS查询消息。
具体地,由于DNS协议承载在UDP协议上,其特征是使用了UDPPORT53作为目的端口。所以当主机需要向DNS服务器发送1个DNS查询报文时,主机C的DNS客户端构造的DNS查询报文,使用主机C的IP地址和MAC地址填充该DNS报文的源IP和源MAC字段,使用DNS服务器的IP和MAC地址填充该DNS报文的目的IP和目的MAC字段。
进一步地,DNS报文结构如图4所示,其中Questions协议字段主要包含3条信息,以指定DNS服务器应该回答的问题,分别是:
指定的查询类型TYPE,它可根据类型指定资源记录,或作为查询操作的专门类型。当TYPE=A时,那么NAME是一个主机名并且请求VALUE是该主机名所对应的IP地址。这样,一个TYPEA的记录(Name,Value,Type,TTL)提供了标准主机名称到IP地址的映射。
指定的DNS域名NAME,表示为完全合格的域名(FQDN),即主机C需要查询的域名地址。在本发明方案的举例中,该字段应填充为H3CA。需要说明的是,当主机C加入域时,如果请求的域名中没有包含“.”,设备会自动添加域名后缀列表中的第一个域名后缀开始查询,即当主机加入.h3c.com域时,如果直接请求域名“H3CA”,那么主机C实际发出的DNSStandardQuery中,name协议字段内容填充为H3CA.h3c.com。如果直接请求域名“H3CA.”,那么主机C实际发出的DNSStandardQuery中,name协议字段内容填充为H3CA。
DNS域名的指定类别CLASS,在以太网DNS报文中,它始终应指定为Internet类别,即CLASS值为IN。
步骤33、以太网设备A默认配置用以控制来自主机C的DNS报文的ACL规则,并判断DNS协议字段请求的Name中是否为其自身的设备系统名称H3CA,type=A,如果是,则进入步骤34;否则,则按照正常流程,向上行以太网设备B转发该DNS查询消息。
在步骤中,本发明在以太网设备A内配置的ACL规则具体包括:
UDP报文,UDP目的端口号=53;
DNS协议字段中,Flags=0x0100,以代表StandardQuery;
DNS协议字段中,TYPE=A,CLASS=IN;
DNS协议字段中,NAME字段从左至右获取特定字节内容以匹配以太网设备A的系统名称(systemname)。其中特定字节指以太网设备A系统名称的ASCII字符串长度。
当主机C发送的DNS报文全部满足以上条件时,以太网设备A即可判断主机C请求以太网设备A的网管系统的IP地址,此时该报文转向以太网设备A的网管系统进行处理,进入步骤34。否则,以太网设备A按照正常的报文转发流程,处理该DNS查询请求报文。
需要说明的是,如果以太网设备A的配置变更,导致系统名称出现变化,以太网设备A还需要修改对应的ACL规则,修改NAME字段的匹配内容与以太网设备A的系统名称一致。
步骤34、以太网设备A分析来自主机C的DNS请求报文中的源IP地址,尝试将设备虚接口IP地址修改为与主机在相同网段的可用IP地址,如果修改成功则进入步骤35。
假如在该应用场景下,主机C的源IP地址为192.168.1.100;
以太网设备以其自身设备的当前IP地址(假如为:192.168.1.105)为源IP地址,192.168.1.100为目的IP地址向主机发送ARP检测报文,如果主机能正常应答该ARP检测报文,则以所述以太网设备的当前IP地址作为该以太网设备网管系统的可用IP地址;反之,如果主机没有应答该ARP检测报文,则继续执行下面获取IP地址的步骤;
以太网设备A以192.168.1.99为源IP地址,192.168.1.100为目的IP地址,向主机C发送ARP检测报文;
如果主机C能够正常应答,则以太网设备A向局域网发送源IP地址和目的IP地址均为192.168.1.99的免费ARP报文;
如果局域网内其他节点没有应答该ARP报文,则表示该IP地址没有以局域网内的其他节点占用,以太网设备A可以将虚接口可用IP地址修改为192.168.1.99,作为其网管系统的可用IP地址。
本步骤中,如果主机C未能正确应答(代表使用该IP地址不能与主机C通信),局域网中其他主机应答了免费ARP报文(代表该IP地址已经被占用),此时,以太网设备A将继续尝试192.168.1.101、192.168.1.98、192.168.1.102……以此类推,直到获取合适的可用IP地址。
步骤35、以太网设备A分析来自主机C的DNS请求报文中的目的IP地址和目的MAC,并将TEMPIP作为主机的H3CA域名查询结果,向主机C模拟发送DNS应答消息。
在本步骤中,以太网设备A将TEMPIP作为主机的H3CA域名查询结果,在DNS应答消息的VLAUE字段填充该TEMPIP,向主机C发送DNS应答消息。
DNS应答消息的源MAC地址填充为主机C发出的DNS请求报文中的目的MAC地址,目的MAC地址填充为主机C的源MAC地址。
DNS应答消息的源IP地址填充为主机C发出的DNS请求报文中的目的IP地址,目的IP地址填充为主机C的源IP地址,UDP源端口号为53。
步骤36、根据以太网设备A发出的DNS应答消息,主机C的浏览器创建一个目的IP为以太网设备A网管系统可用IP的TCP连接,实现与以太网设备A网管系统的远程访问。
在本步骤中,根据以太网设备A模拟的DNS应答消息,主机C的DNS客户端生成H3CA域名和以太网设备可用IP的对应关系,主机C浏览器创建目的IP地址为以太网设备可用IP的TCP连接,即可实现对以太网设备AWEB网管系统的远程访问。
一种快速访问以太网设备网管系统的装置,应用于包括主机、以太网设备以及DNS服务器的网络系统中,其中所述装置为以太网设备或者以太网设备中的独立部件,其中,所述装置包括如下模块:
配置模块,用以在所述装置中预先配置用以控制来自主机的DNS查询报文的ACL规则;
具体地,所述配置模块配置的ACL规则具体为:
UDP报文,UDP目的端口号=53;
DNS协议字段中,Flags=0x0100,以代表StandardQuery;
DNS协议字段中,TYPE=A,CLASS=IN;
DNS协议字段中,NAME字段从左至右获取特定字节内容用以匹配以太网设备系统名称,其中特定字节指以太网设备系统名称ASCII字符串长度。
解析模块,当所述装置监听到来自主机的查询报文时,解析该DNS报文以获取DNS报文中携带的域名,并判断是否为以太网设备自身的系统名称,如果是,则通知处理模块将其自身的网管系统的可用IP地址作为主机的域名查询的结果,向主机发送DNS应答消息;否则通知转发模块按照正常流程转发该DNS报文;
处理模块,接收到解析模块的通知后,将其自身的网管系统的可用IP地址作为主机域名查询的结果,向主机模拟发送DNS应答消息;
具体地,所述处理模块获取所述装置网管系统的可用IP地址,具体包括如下步骤:
所述处理模块分析主机发出的DNS报文中的源IP地址,记录为IPX;
所述处理模块以其自身设备的当前IP地址为源IP地址,IPX为目的IP地址向主机发送ARP检测报文,如果主机能正常应答该ARP检测报文,则以所述装置的当前IP地址作为该装置网管系统的可用IP地址;反之,如果主机没有应答该ARP检测报文,则继续执行下面获取IP地址的步骤;
所述处理模块继续尝试以IPX为目的IP地址,以IPX±N为源IP地址向主机发送ARP检测报文,其中N为正整数数列;同时,
所述装置将IPX±N作为源IP地址和目的IP地址发送免费ARP报文;
如果主机能正常应答该ARP检测报文,而局域网内其他网络节点未应答以IPX±N作为源IP地址和目的IP地址的ARP报文,则所述处理模块将IPX±N作为所述装置的网管系统的可用IP地址。进一步地,为了提高切换效率,防止DNS查询超时,较佳地,在本发明实施例中,在执行上述步骤期间,当获取第一个可用IP地址时,即将该第一个可用IP地址作为以太网设备网管系统的可用IP地址。
所述处理模块将所述装置网管系统的可用IP地址作为主机的域名查询的结果,向主机模拟发送DNS应答消息,具体包括:
DNS应答消息的源MAC地址填充为主机发出的DNS请求报文中的目的MAC地址,目的MAC地址填充为主机的源MAC地址;
DNS应答消息的源IP地址填充为主机发出的DNS请求报文中的目的IP地址,目的IP地址填充为主机的源IP地址,UDP源端口号为53;
所述处理模块将所述装置网管系统的可用IP地址作为主机域名的查询结果,在DNS应答消息的VLAUE字段填充该IP地址,向主机发送DNS应答消息。
进一步地,所述网管系统的可用IP地址与所述主机的IP地址在同一网段。
转发模块,接收到解析模块的通知后,按照正常流程,向上行以太网设备转发来自主机的DNS报文。
与现有的技术方案相比,通过在以太网设备中预先配置用以控制DNS查询报文的ACL规则;以太网设备模拟DNS报文的解析过程获取DNS报文中携带的系统名称并判断是否为以太网设备自身的系统名称,如果是,则将以太网设备网管系统的可用IP地址作为主机域名查询的结果,向主机发送DNS应答消息。通过本发明方案,用户只需记住设备的系统名称即可,不需要记录或者配置以太网设备的IP地址等参数,因而在实际网络管理中实现简单方便。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。