CN107911249A - 一种网络设备的命令行发送方法、装置和设备 - Google Patents

一种网络设备的命令行发送方法、装置和设备 Download PDF

Info

Publication number
CN107911249A
CN107911249A CN201711213919.9A CN201711213919A CN107911249A CN 107911249 A CN107911249 A CN 107911249A CN 201711213919 A CN201711213919 A CN 201711213919A CN 107911249 A CN107911249 A CN 107911249A
Authority
CN
China
Prior art keywords
command line
order
line parameter
network equipment
device configuration
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201711213919.9A
Other languages
English (en)
Other versions
CN107911249B (zh
Inventor
冯敬伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
New H3C Technologies Co Ltd
Original Assignee
New H3C Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by New H3C Technologies Co Ltd filed Critical New H3C Technologies Co Ltd
Priority to CN201711213919.9A priority Critical patent/CN107911249B/zh
Publication of CN107911249A publication Critical patent/CN107911249A/zh
Application granted granted Critical
Publication of CN107911249B publication Critical patent/CN107911249B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/084Configuration by using pre-existing information, e.g. using templates or copying from other elements
    • H04L41/0843Configuration by using pre-existing information, e.g. using templates or copying from other elements based on generic templates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0893Assignment of logical groups to network elements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请提供一种网络设备的命令行发送方法、装置和设备,该方法包括:获取网络设备的设备信息、命令行参数;判断适配设备列表中是否存在与所述设备信息、所述命令行参数对应的命令行模板;若不存在,则从所述网络设备获取所述网络设备的设备配置,并根据所述设备配置提取与所述设备信息、所述命令行参数对应的命令行模板;根据所述命令行模板和所述命令行参数对应的命令行参数值构造命令行;将构造的命令行发送给所述网络设备。通过本申请的技术方案,每次有新厂商的网络设备加入时,不需要用户在管理设备的代码中,额外的开发针对新厂商的命令行,从而避免额外的代码开发,减轻开发工作量,节省人力开销,提高用户使用体验。

Description

一种网络设备的命令行发送方法、装置和设备
技术领域
本申请涉及通信技术领域,尤其是一种网络设备的命令行发送方法、装置和设备。
背景技术
在对网络设备进行业务配置时,需要对网络设备下发大量命令行,以通过这些命令行实现网络设备的业务配置。但是实际组网环境中,包含不同厂商的网络设备,而不同厂商的网络设备的命令行不同,导致管理出现很大困难。例如,对于厂商A的管理设备,在向厂商A的网络设备下发命令行时,网络设备支持该命令行,可以基于该命令行完成业务配置。但是,在向厂商B的网络设备下发命令行时,网络设备不支持该命令行,无法基于该命令行完成业务配置。
为了使厂商B的网络设备也支持管理设备下发的命令行,则管理设备不仅需要支持厂商A的命令行,还需要支持厂商B的命令行。为了支持厂商B的命令行,则用户需要在管理设备的代码中,额外开发出针对厂商B的命令行。
随着厂商类型的增多,每次有新厂商的网络设备加入时,就需要额外开发新代码,带来了大量开发工作量,增加了用户的人力开销,用户使用体验较差。
发明内容
本申请提供一种网络设备的命令行发送方法,所述方法包括:
获取网络设备的设备信息、命令行参数;
判断适配设备列表中是否存在与所述设备信息、所述命令行参数对应的命令行模板;
若不存在,则从所述网络设备获取所述网络设备的设备配置,并根据所述设备配置提取与所述设备信息、所述命令行参数对应的命令行模板;
根据所述命令行模板和所述命令行参数对应的命令行参数值构造命令行;
将构造的命令行发送给所述网络设备。
本申请提供一种网络设备的命令行发送装置,所述装置包括:
获取模块,用于获取网络设备的设备信息、命令行参数;
判断模块,用于判断适配设备列表中是否存在与所述设备信息、所述命令行参数对应的命令行模板;
所述获取模块,还用于当判断结果为不存在时,从所述网络设备获取所述网络设备的设备配置,并根据所述设备配置提取与所述设备信息、所述命令行参数对应的命令行模板;
构造模块,用于根据所述命令行模板和所述命令行参数对应的命令行参数值构造命令行;
发送模块,用于将构造的命令行发送给所述网络设备。
本申请还提供一种适配设备,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器执行所述机器可执行指令,以实现权利要求上述的方法步骤。
基于上述技术方案,本申请实施例中,适配设备可以从网络设备的设备配置中获取命令行模板,并根据该命令行模板构造命令行,并将构造的命令行发送给该网络设备。这样,可以支持各种设备信息的命令行,如支持不同厂商的网络设备的命令行。在上述方式中,每次有新厂商的网络设备加入时,可以从该网络设备的设备配置中获取命令行模板,并根据该命令行模板构造命令行,而不需要用户在管理设备的代码中,额外的开发针对新厂商的命令行,从而避免额外的代码开发,减轻开发工作量,节省人力开销,并提高用户使用体验。
附图说明
为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其他的附图。
图1是本申请一种实施方式中的应用场景示意图;
图2A是本申请一种实施方式中的网络设备的命令行发送方法的流程图;
图2B是本申请另一种实施方式中的网络设备的命令行发送方法的流程图;
图2C是本申请另一种实施方式中的网络设备的命令行发送方法的流程图;
图2D是本申请另一种实施方式中的网络设备的命令行发送方法的流程图;
图3是本申请一种实施方式中的网络设备的命令行发送装置的结构图;
图4是本申请一种实施方式中的适配设备的硬件结构图。
具体实施方式
在本申请使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本申请实施例中提出一种网络设备的命令行发送方法,该方法可以应用于包括管理设备、适配设备、网络设备(如路由器、交换机等)的系统。其中,管理设备和适配设备可以是独立的两个设备,也可以是两个功能模块,部署在同一个设备。
参见图1所示,为本申请实施例的应用场景示意图,以管理设备和适配设备为两个独立设备为例。在图1中,不同的网络设备可以具有相同的设备信息,也可以具有不同的设备信息,以不同的网络设备具有不同的设备信息为例。
其中,上述设备信息可以包括但不限于:网络设备的厂商信息、型号信息、版本信息等。例如,在图1中,网络设备101的设备信息可以为厂商A、型号123、版本V1.0,此外,网络设备102的设备信息可以为厂商A、型号146、版本V2.0,网络设备103的设备信息可以为厂商B、型号245、版本V1.0。
其中,针对同一业务配置,不同设备信息的网络设备支持的命令行可以相同,也可以不同,后续以不同设备信息的网络设备支持的命令行不同为例。例如,针对向接口下发vlan(Virtual Local Area Network,虚拟局域网)这一业务配置,网络设备101、网络设备102、网络设备103支持的命令行可以各不相同。
其中,通过向网络设备发送命令行,使得网络设备能够实现该命令行对应的业务配置。对于该命令行,可以包括一行内容,也可以包括多行内容,对此命令行不做限制,只要通过命令行,能够使网络设备实现业务配置即可。
在上述应用场景下,参见图2A所示,为本申请实施例中提出的网络设备的命令行发送方法的流程图,可以应用于适配设备,该方法可以包括:
步骤201,获取网络设备的设备信息、命令行参数。
在一个例子中,当管理设备需要对网络设备进行业务配置时,可以获取该网络设备的设备信息、命令行参数,如接收管理员发送的设备信息、命令行参数,对此获取过程不做限制。当然,在实际应用中,管理设备还可以获取到其它内容,如该命令行参数对应的命令行参数值,对此不做限制。例如,针对向网络设备101的接口(interface)1011下发vlan100这一业务配置,设备信息为厂商A、型号123、版本V1.0,命令行参数为interface和vlan,命令行参数interface对应的命令行参数值为1011,命令行参数vlan对应的命令行参数值为100。
然后,管理设备查询自身支持的设备信息,若管理设备支持的设备信息包括上述网络设备的设备信息,则说明管理设备向该网络设备发送命令行时,该网络设备支持该命令行,可以基于该命令行完成业务配置;若管理设备支持的设备信息不包括上述网络设备的设备信息,则说明管理设备向该网络设备发送命令行时,该网络设备不支持该命令行,无法基于该命令行完成业务配置。
其中,若管理设备支持的设备信息包括网络设备的设备信息,则采用传统流程处理,在此不再赘述。若管理设备支持的设备信息不包括网络设备的设备信息,则管理设备可以将网络设备的设备信息、命令行参数发送给适配设备。当然,还可以将其它信息发送给适配设备,如命令行参数对应的命令行参数值,对此不做限制。以将设备信息、命令行参数、命令行参数值发送给适配设备为例,这样,适配设备就可以获取到设备信息、命令行参数、命令行参数值。
其中,管理设备支持的设备信息可以与管理设备的厂商有关,例如,当管理设备属于厂商B时,则管理设备支持的设备信息是厂商B的设备信息,如管理设备支持“厂商B、型号245、版本V1.0”;当管理设备属于厂商A时,则管理设备支持的设备信息是厂商A的设备信息,如管理设备支持“厂商A、型号123、版本V1.0”、以及“厂商A、型号146、版本V2.0”,对此不做限制。
步骤202,判断适配设备列表中是否存在与该设备信息、该命令行参数对应的命令行模板;如果否,执行步骤203;如果是,从适配设备列表中获取与该设备信息、该命令行参数对应的命令行模板,基于该命令行模板执行步骤204。
在一个例子中,适配设备可以维护适配设备列表,该适配设备列表用于记录设备信息、命令行参数和命令行模板的对应关系。参见表1所示,为适配设备列表的一个示例,该适配设备列表是以表格形式为例,实际应用中,适配设备列表还可以为其它数据结构,对此不做限制。此外,适配设备列表还可以记录其它内容,对此不做限制。在初始状态下,适配设备列表可以为空。
基于表1可以看出,适配设备在为设备信息是“厂商A、型号123、版本V1.0”的网络设备配置IP地址时,则可以使用命令行模板A构造命令行。需要说明的是,本实施例中仅以厂商、设备型号、软件版本作为设备信息为例进行说明,但是设备信息还可以是其他的参数,本实施例不再一一列举。
表1
设备信息 命令行参数 命令行模板
厂商A、型号123、版本V1.0 IP地址 命令行模板A
综上所述,适配设备在获取到网络设备的设备信息、命令行参数后,可以通过该设备信息和该命令行参数查询适配设备列表。若该适配设备列表中不存在与该设备信息、该命令行参数对应的命令行模板,则可以执行步骤203;若该适配设备列表中存在与该设备信息、该命令行参数对应的命令行模板,则可以从该适配设备列表中获取该设备信息、该命令行参数对应的命令行模板。
例如,适配设备在通过设备信息(如厂商A、型号123、版本V1.0)和命令行参数(interface和vlan)查询表1时,则适配设备列表中不存在与该设备信息、该命令行参数对应的命令行模板。适配设备在通过设备信息(如厂商A、型号123、版本V1.0)和命令行参数(IP地址)查询表1时,则适配设备列表中存在与该设备信息、该命令行参数对应的命令行模板。
步骤203,从该网络设备获取该网络设备的设备配置,并根据该设备配置提取与该设备信息、该命令行参数对应的命令行模板。
在一个例子中,针对“适配设备从该网络设备获取该网络设备的设备配置”的过程,其实现流程图可以参见图2B所示,该过程可以包括:
步骤20311,通过设备信息查询命令表,得到与该设备信息对应的设备配置获取命令。该命令表用于记录设备信息与设备配置获取命令的对应关系。
在一个例子中,不同设备信息对应的设备配置获取命令可能相同,也可能不同,适配设备可以预先获取每种设备信息对应的设备配置获取命令,例如,获取到设备信息(厂商A、型号123、版本V1.0)对应的设备配置获取命令1,设备信息(厂商A、型号146、版本V2.0)对应的设备配置获取命令2,设备信息(厂商B、型号245、版本V1.0)对应的设备配置获取命令3。然后,适配设备可以在命令表中记录设备信息与设备配置获取命令的对应关系,如表2所示。其中,通过向网络设备发送设备配置获取命令,可以从网络设备获取到设备配置。例如,向网络设备1发送设备配置获取命令1时,由于配置获取命令1是针对“厂商A、型号123、版本V1.0”的,且网络设备1的设备信息是“厂商A、型号123、版本V1.0”,因此,网络设备1能够正确识别设备配置获取命令1,并返回自身的设备配置。但是,若向网络设备1发送设备配置获取命令2,则网络设备1无法正确识别设备配置获取命令2,不会返回自身的设备配置。
表2
设备信息 设备配置获取命令
厂商A、型号123、版本V1.0 设备配置获取命令1
厂商A、型号146、版本V2.0 设备配置获取命令2
厂商B、型号245、版本V1.0 设备配置获取命令3
综上所述,适配设备可以通过上述设备信息(如厂商A、型号123、版本V1.0)查询表2所示的命令表,得到与该设备信息对应的设备配置获取命令1。
在一个例子中,适配设备通过上述设备信息查询命令表时,若没有得到与该设备信息对应的设备配置获取命令,则适配设备还可以将该设备信息显示给用户,由用户输入与该设备信息对应的设备配置获取命令,对此不再赘述。
步骤20312,适配设备向网络设备发送该设备配置获取命令。
步骤20313,适配设备接收该网络设备针对该设备配置获取命令返回的设备配置。
在一个例子中,设备配置获取命令是用于获取设备配置的命令,网络设备在接收到该设备配置获取命令后,可以通过响应消息将自身的设备配置返回给适配设备,以使适配设备从该响应消息中获取到该网络设备的设备配置。
在一个例子中,针对“适配设备根据该设备配置提取与该设备信息、该命令行参数对应的命令行模板”的过程,可以参见图2C所示,该过程可以包括:
步骤20321,适配设备将该设备配置划分成多个配置片段。
在一个例子中,适配设备可以从该设备配置中查询到特定标记,如分隔符(例如“#”)等,对此特定标记不做限制,后续以分隔符“#”为例进行说明。然后,适配设备可以根据该特定标记将设备配置划分成多个配置片段。
其中,网络设备的设备配置可以包括多个配置片段,不同配置片段之间通过分隔符分开,如分隔符“#”等,即配置片段的上下各有一个分隔符“#”。基于此,从第一个分隔符“#”开始到第二个分隔符“#”之间的内容,就是一个配置片段,从第三个分隔符“#”开始到第四个分隔符“#”之间的内容,就是另一个配置片段,依次类推。综上所述,适配设备可以通过识别分隔符“#”,将该设备配置划分成多个配置片段。
例如,下面给出了配置片段的一个示例,对此配置片段的内容不做限制。
当然,上述方式只是将设备配置划分成多个配置片段的一个示例,对此划分方式不做限制。例如,在实际应用中,还可以通过分隔符和缩进信息将该设备配置划分成多个配置片段。具体的,适配设备通过分隔符“#”将该设备配置划分成多个整段,在每个整段中,确定第一行的缩进,假设该整段有M行。若第二行至第M行的缩进与第一行的缩进不同,则将该整段确定为一个配置片段;若第N(N小于M)行的缩进与第一行的缩进相同,第二行至第(N-1)行的缩进与第一行的缩进不同,且第(N+1)行至第M行的缩进与第一行的缩进不同,将第一行至第(N-1)行确定为一个配置片段,将第N行至第M行确定为另一个配置片段;以此类推,可以基于各行的缩进确定整段中的配置片段。
步骤20322,适配设备从多个配置片段中提取包括命令行参数的配置片段。
在一个例子中,针对得到的多个配置片段,判断第一个配置片段是否包括命令行参数,如果是,将第一个配置片段确定为包括该命令行参数的配置片段,结束处理,如果否,判断第二个配置片段是否包括命令行参数,以此类推。
在另一个例子中,针对得到的多个配置片段,依次判断多个配置片段中的每个配置片段是否包括命令行参数,从而得到所有包括该命令行参数的配置片段。然后,从所有包括该命令行参数的配置片段中随机选择一个配置片段,将选择的配置片段确定为包括该命令行参数的配置片段(即步骤20322的结果)。
例如,假设适配设备获取到的命令行参数为interface和vlan,则上述示例中的配置片段就是包括命令行参数(如interface和vlan等)的配置片段。
步骤20323,适配设备从提取的配置片段(即包括命令行参数的配置片段,后续过程均是该配置片段)中删除所有的命令行参数值,得到命令行模板。
在一个例子中,在从提取的配置片段中删除所有的命令行参数值时,适配设备可以将配置片段中的所有数值(如上述配置片段中的1012、320to 330等)确定为命令行参数值,并删除该命令行参数值。和/或,适配设备可以通过命令行参数查询参数表,得到该命令行参数对应的通用关键字;该参数表用于记录命令行参数与通用关键字的对应关系。确定该通用关键字是否为命令行参数值;若是,则从该配置片段中删除该通用关键字;若否,则不从该配置片段中删除该通用关键字。
其中,适配设备可以获取命令行参数对应的通用关键字,并在参数表中记录命令行参数与通用关键字的对应关系,如表3所示,为参数表的示例,对此不做限制。不同命令行参数对应的通用关键字可能相同,也可能不同。在表3中只是示出了命令行参数vlan对应的通用关键字trunk,实际应用中,其它命令行参数可以对应show、display、undo、no、config、ip address等通用关键字。
表3
命令行参数 通用关键字
vlan trunk
有一些通用关键字也可以作为命令行参数值,为了避免在删除命令行参数值误把通用关键字也删除,因此需要确定通用关键字是否为命令行参数值,在该过程中,可以根据该通用关键字在该配置片段中的位置,确定通用关键字是否为命令行参数值。
在“适配设备根据该通用关键字在该配置片段中的位置,确定该通用关键字是否为命令行参数值”的过程中,可以包括但不限于:当该配置片段的某一行包括该通用关键字时,若该通用关键字位于与该通用关键字预设的位置时,则可以确定该通用关键字在该行是命令行参数值;若该通用关键字不位于该通用关键字的预设位置,则可以确定该通用关键字在该行不是命令行参数值。
例如,针对与vlan有关的配置片段,通常包括trunk,且当trunk是某一行的最后一个字段时,trunk是命令行参数值,当trunk不是某一行的最后一个字段时,trunk不是命令行参数值,因此可以将trunk确定为命令行参数vlan对应的通用关键字。当然,其它通用关键字的确定方式与此类似,根据实际需要,用户可以在适配设备设置命令行参数与通用关键字的对应关系,对此不做限制。
综上所述,对于上述配置片段,1012、320to 330是命令行参数值,由于第三行中的trunk是最后一个字段,因此第三行中的trunk是命令行参数值,由于第四行中的trunk不是最后一个字段,因此第四行中的trunk不是命令行参数值。
综上所述,在适配设备从该配置片段中删除所有命令行参数值(如1012、320to330、第三行中的trunk等)后,得到的命令行模板可以如下所示。
在一个例子中,上述配置片段,实际上是已经下发给网络设备的命令行,因此,基于上述配置片段得到命令行模板后,若根据该命令行模板构造命令行,则这个命令行也是网络设备支持的命令行。
步骤204,根据上述命令行模板和上述命令行参数对应的命令行参数值构造命令行。
在一个例子中,针对“根据上述命令行模板和上述命令行参数对应的命令行参数值构造命令行”的过程,可以包括但不限于:适配设备判断该命令行模板的每行中是否存在上述命令行参数;如果是,则将上述命令行参数对应的命令行参数值添加到该行(如添加到该命令行参数的后面,且命令行参数值与该命令行参数相邻)中;如果否,则不在该行中添加命令行参数值。
例如,判断命令行模板的第一行是否存在命令行参数;如果是,则将该命令行参数对应的命令行参数值添加到第一行,然后判断命令行模板的第二行是否存在命令行参数;如果否,则直接判断命令行模板的第二行是否存在命令行参数。以此类推,对命令行模板的每行进行上述处理,直到所有行处理完成。
例如,假设命令行参数为interface和vlan,且命令行参数interface对应的命令行参数值为1011,命令行参数vlan对应的命令行参数值为100。
针对命令行模板的第一行“interface”,由于存在命令行参数interface,因此可以将命令行参数interface对应的命令行参数值1011添加到第一行,如添加到第一行的“interface”的后面。针对命令行模板的第二行“port link-mode bridge”、以及第三行“port link-type”,由于不存在命令行参数,因此不在第二行和第三行添加命令行参数值。针对命令行模板的第四行“port trunk permit vlan”,由于存在命令行参数vlan,因此,可以将命令行参数vlan对应的命令行参数值100添加到第四行,如添加到第四行的“vlan”的后面。至此,适配设备可以构造出如下的命令行,该命令行只是一个示例,对此不做限制。
步骤205,将构造的命令行发送给网络设备。
其中,适配设备将命令行发送给网络设备后,若网络设备支持该命令行,网络设备向适配设备返回成功消息,表示命令行下发成功,若网络设备不支持该命令行,网络设备向适配设备返回失败消息,表示命令行下发失败。
若适配设备接收到成功消息,则表示已经成功将命令行发送给网络设备,因此,适配设备在适配设备列表中记录设备信息、命令行参数、命令行模板的对应关系,如在适配设备列表中记录设备信息(如厂商A、型号123、版本V1.0)、命令行参数(interface和vlan)、步骤20323中命令行模板的对应关系。
基于此,当适配设备再次构造针对设备信息(如厂商A、型号123、版本V1.0)、命令行参数(interface和vlan)的命令行时,适配设备可以直接从适配设备列表中得到命令行模板,并根据命令行模板构造命令行,在此不再赘述。
若适配设备接收到失败消息,则表示没有成功将命令行发送给网络设备,因此,适配设备还可以构造新命令行,并将新命令行发送给网络设备,以此类推,一直到成功将命令行发送给网络设备,接收到网络设备返回的成功消息。
为了构造新命令行,则可以采用如下方式:
方式一、获取包括命令行参数的新配置片段,并基于该新配置片段得到新命令行模板,并根据新命令行模板构造新命令行。
步骤20322中,若采用如下方式处理:判断第一个配置片段是否包括命令行参数,如果是,将第一个配置片段确定为包括该命令行参数的配置片段,结束处理,如果否,判断第二个配置片段是否包括命令行参数,以此类推,则:在获取新配置片段时,可以从上次确定的配置片段的下一个配置片段开始,继续判断该配置片段是否包括命令行参数,如果是,将该配置片段确定为包括该命令行参数的新配置片段,如果否,继续判断下一个配置片段,以此类推。
步骤20322中,若采用如下方式处理:从所有包括该命令行参数的配置片段中随机选择一个配置片段,则:在获取新配置片段时,重新从所有包括该命令行参数的配置片段中随机选择另一个未被选择过的配置片段,即新配置片段。
方式二、根据命令行模板和命令行参数值构造新命令行,具体的,可以保持命令行模板不变,改变命令行参数值的位置,构造新命令行。
针对方式二,网络设备向适配设备返回失败消息时,该失败消息还可以携带失败原因,如命令行中的第四行“port trunk permit vlan 100”下发失败。适配设备接收到失败消息后,可以解析出该失败原因,并根据该失败原因改变命令行参数值的位置,如调整“100”的位置,构造新命令行,对此不再赘述。
在实际应用中,若多次发送命令行后,均没有成功将命令行发送给网络设备,则还可以将设备信息、命令行参数、命令行参数值等提供给用户,由用户输入针对设备信息、命令行参数、命令行参数值的命令行,对此不做限制。
在一个例子中,管理设备还可以将网络设备对应的管理参数(如IP地址、用户名、密码等)发送给适配设备,适配设备可以利用上述管理参数与网络设备建立连接,并通过该连接将所述命令行发送给网络设备。在另一个例子中,适配设备也可以将命令行发送给管理设备,由管理设备利用网络设备对应的管理参数与网络设备建立连接,并通过该连接将所述命令行发送给网络设备。
基于上述技术方案,本申请实施例中,适配设备可以从网络设备的设备配置中获取命令行模板,并根据该命令行模板构造命令行,并将构造的命令行发送给该网络设备。这样,可以支持各种设备信息的命令行,如支持不同厂商的网络设备的命令行。在上述方式中,每次有新厂商的网络设备加入时,可以从该网络设备的设备配置中获取命令行模板,并根据该命令行模板构造命令行,而不需要用户在管理设备的代码中,额外开发针对新厂商的命令行,从而避免额外的代码开发,减轻开发工作量,节省人力开销,提高用户使用体验。适配设备得到的适配设备列表,可以提供给管理设备使用,大大减少适配工作量。
在上述实施例中,适配设备可以只执行上述适配功能,即本实施例的技术方案,而不承载其它业务,这样,当需要对网络设备下发大量业务配置时,适配设备可以对这些业务配置构造命令行,并将构造的命令行发送给网络设备,适配设备能够构造大量命令行,不会出现性能瓶颈,可以有效实现适配功能。
在上述实施例中,适配设备在生成适配设备列表后,还可以将该适配设备列表存储在一个固定目录下。进一步的,适配设备可以为每个厂商生成一个适配设备列表,且每个厂商的适配设备列表可以存储在该固定目录的子目录下。
在上述实施例中,适配设备在生成适配设备列表后,还可以通过官网将该适配设备列表提供给网管厂商,而网管厂商在对适配设备列表的内容进行验证后,可以通过官网发布该适配设备列表。这样,用户可以直接从官网下载适配设备列表,并存储在本地目录下,从而可以直接使用适配设备列表。
以下结合一个具体应用场景,对上述方案进行详细说明。参见图2D所示,为本申请实施例中的网络设备的命令行发送方法的流程图,该方法可以包括:
步骤211,管理设备获取网络设备的设备信息、命令行参数、命令行参数值。
步骤212,若管理设备支持的设备信息不包括上述网络设备的设备信息,则将上述网络设备的设备信息、命令行参数、命令行参数值发送给适配设备。
步骤213,适配设备判断适配设备列表中是否存在与该设备信息、该命令行参数对应的命令行模板。如果是,则执行步骤214;如果否,则执行步骤215。
步骤214,适配设备从该适配设备列表中获取与该设备信息、该命令行参数对应的命令行模板,并基于获取的该命令行模板执行步骤219。
步骤215,适配设备通过该设备信息查询命令表,得到与该设备信息对应的设备配置获取命令,并向网络设备发送该设备配置获取命令。
步骤216,适配设备接收网络设备针对设备配置获取命令返回的设备配置。
步骤217,适配设备将该设备配置(即网络设备的设备配置)划分成多个配置片段,并从所述多个配置片段中提取包括该命令行参数的配置片段。
步骤218,适配设备从提取的配置片段中删除所有的命令行参数值,得到命令行模板(即与该设备信息、该命令行参数对应的命令行模板)。
步骤219,适配设备根据该命令行模板和该命令行参数值构造命令行。
步骤220,适配设备将构造的命令行发送给网络设备。
进一步的,若适配设备接收到成功消息,则在适配设备列表中记录该设备信息、该命令行参数、该命令行模板的对应关系。若适配设备接收到失败消息,则从多个配置片段(参见步骤217)中提取包括该命令行参数的新配置片段,基于新配置片段执行步骤218;或者,执行步骤219,根据命令行模板和命令行参数值构造新命令行,如保持命令行模板不变,改变命令行参数值的位置等。
基于与上述方法同样的申请构思,本申请实施例还提出一种网络设备的命令行发送装置,应用于适配设备,如图3所示,为该装置的结构图,包括:
获取模块301,用于获取网络设备的设备信息、命令行参数;
判断模块302,用于判断适配设备列表中是否存在与所述设备信息、所述命令行参数对应的命令行模板;
所述获取模块301,还用于当判断结果为不存在时,从所述网络设备获取所述网络设备的设备配置,并根据所述设备配置提取与所述设备信息、所述命令行参数对应的命令行模板;
构造模块303,用于根据所述命令行模板和所述命令行参数对应的命令行参数值构造命令行;
发送模块304,用于将构造的命令行发送给所述网络设备。
所述获取模块301,具体用于在根据所述设备配置提取与所述设备信息、所述命令行参数对应的命令行模板的过程中,将所述设备配置划分成多个配置片段;从所述多个配置片段中提取包括所述命令行参数的配置片段;从提取的配置片段中删除所有的命令行参数值,得到所述命令行模板。
所述获取模块301,具体用于在将所述设备配置划分成多个配置片段的过程中,从所述设备配置中查询到特定标记;根据所述特定标记将所述设备配置划分成多个配置片段。
所述获取模块301,具体用于在从提取的配置片段中删除所有的命令行参数值的过程中,通过所述命令行参数查询参数表,得到所述命令行参数对应的通用关键字;其中,所述参数表用于记录命令行参数与通用关键字的对应关系;
确定所述通用关键字是否为命令行参数值;
若是,则从该配置片段中删除所述通用关键字。
所述获取模块301,具体用于在确定所述通用关键字是否为命令行参数值的过程中,根据所述通用关键字在该配置片段中的位置,确定所述通用关键字是否为命令行参数值。
所述构造模块303,具体用于判断所述命令行模板的每行中是否存在所述命令行参数;如果是,则将所述命令行参数对应的命令行参数值添加到该行中。
所述获取模块301,具体用于在从所述网络设备获取所述网络设备的设备配置的过程中,通过所述设备信息,查询命令表,得到与所述设备信息对应的设备配置获取命令;所述命令表用于记录设备信息与设备配置获取命令的对应关系;向网络设备发送所述设备配置获取命令;接收所述网络设备针对所述设备配置获取命令返回的设备配置。
本申请实施例提供的适配设备,从硬件层面而言,其硬件架构示意图具体可以参见图4所示。可以包括:机器可读存储介质和处理器,其中:
机器可读存储介质:用于存储能够被处理器执行的机器可执行指令。
处理器:与机器可读存储介质通信,读取和执行机器可读存储介质中存储的所述机器可执行指令,实现上述示例公开的网络设备的命令行发送操作。
这里,机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(RadomAccess Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (15)

1.一种网络设备的命令行发送方法,其特征在于,所述方法包括:
获取网络设备的设备信息、命令行参数;
判断适配设备列表中是否存在与所述设备信息、所述命令行参数对应的命令行模板;
若不存在,则从所述网络设备获取所述网络设备的设备配置,并根据所述设备配置提取与所述设备信息、所述命令行参数对应的命令行模板;
根据所述命令行模板和所述命令行参数对应的命令行参数值构造命令行;
将构造的命令行发送给所述网络设备。
2.根据权利要求1所述的方法,其特征在于,所述根据所述设备配置提取与所述设备信息、所述命令行参数对应的命令行模板,具体包括:
将所述设备配置划分成多个配置片段;
从所述多个配置片段中提取包括所述命令行参数的配置片段;
从提取的配置片段中删除所有的命令行参数值,得到所述命令行模板。
3.根据权利要求2所述的方法,其特征在于,
所述将所述设备配置划分成多个配置片段,具体包括:
从所述设备配置中查询到特定标记;
根据所述特定标记将所述设备配置划分成多个配置片段。
4.根据权利要求2所述的方法,其特征在于,
所述从提取的配置片段中删除所有的命令行参数值,具体包括:
通过所述命令行参数查询参数表,得到所述命令行参数对应的通用关键字;其中,所述参数表用于记录命令行参数与通用关键字的对应关系;
确定所述通用关键字是否为命令行参数值;
若是,则从该配置片段中删除所述通用关键字。
5.根据权利要求4所述的方法,其特征在于,
所述确定所述通用关键字是否为命令行参数值,具体包括:
根据所述通用关键字在该配置片段中的位置,确定所述通用关键字是否为命令行参数值。
6.根据权利要求1所述的方法,其特征在于,所述根据所述命令行模板和所述命令行参数对应的命令行参数值构造命令行,具体包括:
判断所述命令行模板的每行中是否存在所述命令行参数;
如果是,则将所述命令行参数对应的命令行参数值添加到该行中。
7.根据权利要求1所述的方法,其特征在于,
所述从所述网络设备获取所述网络设备的设备配置,具体包括:
通过所述设备信息,查询命令表,得到与所述设备信息对应的设备配置获取命令;所述命令表用于记录设备信息与设备配置获取命令的对应关系;
向所述网络设备发送所述设备配置获取命令;
接收所述网络设备针对所述设备配置获取命令返回的设备配置。
8.一种网络设备的命令行发送装置,其特征在于,所述装置包括:
获取模块,用于获取网络设备的设备信息、命令行参数;
判断模块,用于判断适配设备列表中是否存在与所述设备信息、所述命令行参数对应的命令行模板;
所述获取模块,还用于当判断结果为不存在时,从所述网络设备获取所述网络设备的设备配置,并根据所述设备配置提取与所述设备信息、所述命令行参数对应的命令行模板;
构造模块,用于根据所述命令行模板和所述命令行参数对应的命令行参数值构造命令行;
发送模块,用于将构造的命令行发送给所述网络设备。
9.根据权利要求8所述的装置,其特征在于,
所述获取模块,具体用于在根据所述设备配置提取与所述设备信息、所述命令行参数对应的命令行模板的过程中,将所述设备配置划分成多个配置片段;从所述多个配置片段中提取包括所述命令行参数的配置片段;从提取的配置片段中删除所有的命令行参数值,得到所述命令行模板。
10.根据权利要求9所述的装置,其特征在于,所述获取模块,具体用于在将所述设备配置划分成多个配置片段的过程中,从所述设备配置中查询到特定标记;根据所述特定标记将所述设备配置划分成多个配置片段。
11.根据权利要求9所述的装置,其特征在于,
所述获取模块,具体用于在从提取的配置片段中删除所有的命令行参数值的过程中,通过所述命令行参数查询参数表,得到所述命令行参数对应的通用关键字;其中,所述参数表用于记录命令行参数与通用关键字的对应关系;
确定所述通用关键字是否为命令行参数值;
若是,则从该配置片段中删除所述通用关键字。
12.根据权利要求11所述的装置,其特征在于,所述获取模块,具体用于在确定所述通用关键字是否为命令行参数值的过程中,根据所述通用关键字在该配置片段中的位置,确定所述通用关键字是否为命令行参数值。
13.根据权利要求8所述的装置,其特征在于,
所述构造模块,具体用于判断所述命令行模板的每行中是否存在所述命令行参数;如果是,则将所述命令行参数对应的命令行参数值添加到该行中。
14.根据权利要求8所述的装置,其特征在于,所述获取模块,具体用于在从所述网络设备获取所述网络设备的设备配置的过程中,通过所述设备信息,查询命令表,得到与所述设备信息对应的设备配置获取命令;所述命令表用于记录设备信息与设备配置获取命令的对应关系;向网络设备发送所述设备配置获取命令;接收所述网络设备针对所述设备配置获取命令返回的设备配置。
15.一种适配设备,其特征在于,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器执行所述机器可执行指令,以实现权利要求1-7任一所述的方法步骤。
CN201711213919.9A 2017-11-28 2017-11-28 一种网络设备的命令行发送方法、装置和设备 Active CN107911249B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711213919.9A CN107911249B (zh) 2017-11-28 2017-11-28 一种网络设备的命令行发送方法、装置和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711213919.9A CN107911249B (zh) 2017-11-28 2017-11-28 一种网络设备的命令行发送方法、装置和设备

Publications (2)

Publication Number Publication Date
CN107911249A true CN107911249A (zh) 2018-04-13
CN107911249B CN107911249B (zh) 2021-05-28

Family

ID=61849148

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711213919.9A Active CN107911249B (zh) 2017-11-28 2017-11-28 一种网络设备的命令行发送方法、装置和设备

Country Status (1)

Country Link
CN (1) CN107911249B (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109274518A (zh) * 2018-07-30 2019-01-25 咪咕音乐有限公司 一种设备管理方法、装置及计算机可读存储介质
CN109450679A (zh) * 2018-11-01 2019-03-08 郑州云海信息技术有限公司 一种网络信息配置方法与装置
CN110300017A (zh) * 2019-05-22 2019-10-01 北京百度网讯科技有限公司 标准配置生成装置及方法和网络设备配置纠错装置及方法
CN110399349A (zh) * 2018-04-19 2019-11-01 大唐移动通信设备有限公司 一种对mib匹配文档进行转换的方法和装置
CN110650037A (zh) * 2019-09-06 2020-01-03 中盈优创资讯科技有限公司 异构网络设备配置方法及装置
CN112242909A (zh) * 2019-07-16 2021-01-19 深信服科技股份有限公司 一种管理模板的生成方法、装置、电子设备及存储介质
CN114070705A (zh) * 2021-11-16 2022-02-18 广东九博科技股份有限公司 基于命令行的设备网管方法、介质及设备
CN115051918A (zh) * 2021-03-09 2022-09-13 大唐移动通信设备有限公司 网络设备的控制方法、服务器、装置及存储介质
CN115174398A (zh) * 2022-06-24 2022-10-11 浪潮卓数大数据产业发展有限公司 一种基于python交互式shell的网络设备配置方法、设备及介质
CN115361290A (zh) * 2022-07-01 2022-11-18 北京百度网讯科技有限公司 配置比对方法、装置、电子设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1744074A (zh) * 2004-08-31 2006-03-08 国际商业机器公司 使用参照组配置计算设备的设备和方法
CN1946039A (zh) * 2006-11-17 2007-04-11 杭州华为三康技术有限公司 基于模板集的命令行回显信息解析方法及装置
CN1956394A (zh) * 2006-11-13 2007-05-02 杭州华为三康技术有限公司 进行网络设备业务配置的方法及装置
CN102546259A (zh) * 2012-01-20 2012-07-04 中兴通讯股份有限公司 接口参数传输方法和装置
CN104080020A (zh) * 2014-07-11 2014-10-01 杭州华三通信技术有限公司 Onu设备配置的自动下发方法及装置
WO2016172059A1 (en) * 2015-04-21 2016-10-27 Arista Networks, Inc. System and method of updating a network

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1744074A (zh) * 2004-08-31 2006-03-08 国际商业机器公司 使用参照组配置计算设备的设备和方法
CN1956394A (zh) * 2006-11-13 2007-05-02 杭州华为三康技术有限公司 进行网络设备业务配置的方法及装置
CN1946039A (zh) * 2006-11-17 2007-04-11 杭州华为三康技术有限公司 基于模板集的命令行回显信息解析方法及装置
CN102546259A (zh) * 2012-01-20 2012-07-04 中兴通讯股份有限公司 接口参数传输方法和装置
CN104080020A (zh) * 2014-07-11 2014-10-01 杭州华三通信技术有限公司 Onu设备配置的自动下发方法及装置
WO2016172059A1 (en) * 2015-04-21 2016-10-27 Arista Networks, Inc. System and method of updating a network

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王民昆: ""基于路由模拟的网络推演分析系统的设计和实现"", 《电子设计工程》 *

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110399349A (zh) * 2018-04-19 2019-11-01 大唐移动通信设备有限公司 一种对mib匹配文档进行转换的方法和装置
CN110399349B (zh) * 2018-04-19 2021-11-12 大唐移动通信设备有限公司 一种对mib匹配文档进行转换的方法和装置
CN109274518A (zh) * 2018-07-30 2019-01-25 咪咕音乐有限公司 一种设备管理方法、装置及计算机可读存储介质
CN109274518B (zh) * 2018-07-30 2021-11-23 咪咕音乐有限公司 一种设备管理方法、装置及计算机可读存储介质
CN109450679A (zh) * 2018-11-01 2019-03-08 郑州云海信息技术有限公司 一种网络信息配置方法与装置
CN110300017A (zh) * 2019-05-22 2019-10-01 北京百度网讯科技有限公司 标准配置生成装置及方法和网络设备配置纠错装置及方法
CN112242909B (zh) * 2019-07-16 2023-07-14 深信服科技股份有限公司 一种管理模板的生成方法、装置、电子设备及存储介质
CN112242909A (zh) * 2019-07-16 2021-01-19 深信服科技股份有限公司 一种管理模板的生成方法、装置、电子设备及存储介质
CN110650037B (zh) * 2019-09-06 2023-03-14 中盈优创资讯科技有限公司 异构网络设备配置方法及装置
CN110650037A (zh) * 2019-09-06 2020-01-03 中盈优创资讯科技有限公司 异构网络设备配置方法及装置
CN115051918A (zh) * 2021-03-09 2022-09-13 大唐移动通信设备有限公司 网络设备的控制方法、服务器、装置及存储介质
CN115051918B (zh) * 2021-03-09 2024-03-12 大唐移动通信设备有限公司 网络设备的控制方法、服务器、装置及存储介质
CN114070705A (zh) * 2021-11-16 2022-02-18 广东九博科技股份有限公司 基于命令行的设备网管方法、介质及设备
CN115174398A (zh) * 2022-06-24 2022-10-11 浪潮卓数大数据产业发展有限公司 一种基于python交互式shell的网络设备配置方法、设备及介质
CN115361290A (zh) * 2022-07-01 2022-11-18 北京百度网讯科技有限公司 配置比对方法、装置、电子设备及存储介质
CN115361290B (zh) * 2022-07-01 2024-02-27 北京百度网讯科技有限公司 配置比对方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN107911249B (zh) 2021-05-28

Similar Documents

Publication Publication Date Title
CN107911249A (zh) 一种网络设备的命令行发送方法、装置和设备
CN104978258B (zh) 软件自动化测试方法及系统
CN107798038B (zh) 数据响应方法及数据响应设备
CN104573093B (zh) 一种管理文件目录的方法和装置
US10216840B2 (en) Asset tag template creation from readable elements
CN105338659B (zh) 一种设备连接方法及终端
CN104301233A (zh) 路由访问方法、路由访问系统及用户终端
CN104270204A (zh) 一种无线通信模块测试方法及测试设备
JP6842599B2 (ja) 集約グループの作成
US20210209069A1 (en) Method, device, and system for processing distributed data, and machine readable medium
CN113014510B (zh) 惯导系统分布式测试中数据缓存方法及装置
US10587533B2 (en) Facilitating management of resources
US20150058935A1 (en) Out-of-Path, Content-Addressed Writes with Untrusted Clients
CN103490983A (zh) 企业邮件系统及其进行邮件迁移的方法
CN106878052A (zh) 一种用户迁移方法和装置
CN104573132B (zh) 歌曲查找方法及装置
US20110134796A1 (en) Information communication system, connection setting apparatus and non-transitory computer-readable storage medium storing connection setting program
US11379478B2 (en) Optimizing a join operation
CN105144073A (zh) 可移除存储设备身份和配置信息
CN104461709B (zh) 任务计划的控制方法和装置
CN106557530B (zh) 业务系统、数据修复方法及装置
CN113391768A (zh) 集中存储管理方法及装置
US8484182B1 (en) Wireless device content searching
CN106254575A (zh) 一种确定用户标识的方法和装置
CN109104499A (zh) 一种会话建立方法、装置、设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant