netopeer-cli手册翻译

摘自:https://blog.csdn.net/ASCE_S/article/details/107302539

netopeer-cli

netconf 的客户端,以命令行形式显示。

描述

netopeer-cli作为一个通用的netconf客户端提供了一个简单的命令行交互界面。

它允许我们和网络中支持netconf协议的设备建立一个netconf会话,然后获取并且操作该设备的配置数据。netopeer-cli通过前向连接方法或者是反向连接方法(call home)和netconf服务器进行连接,不过同一时间只能有一个netconf连接。(这里不太会翻译)。

netconf客户端支持的netconf能力:

  • NETCONF协议版本1.0和1.1(RFC 6241)
  • SSH传输(RFC 6242)
  • TLS传输(RFC 5539)
  • Call Home(反向的 SSH/TLS)
  • 事件通知(RFC 5277)
  • 访问控制(RFC 6536)
  • :可写运行能力—wrtable-running capability
  • :启动能力—startup capability
  • :候选人能力—candidate capability
  • :验证能力1.1版本—validate capability version 1.1
  • :使用默认值能力(RFC 6243)—with-defaults capability(RFC 6243)
  • :url 能力—url capability

相关文件

drwx------   2 root root      4096 Jul  5 12:58 .netopeer-cli
  • 1

.netopeer-cli在当前用户的家目录下,是一个隐藏文件夹。

~/.netopeer-cli/config.xml

每一个用户通过NETCONF协议发送消息时用到的配置文件。

~/.netopeer-cli/history

每个用户执行的命令的历史记录。

~/.netopeer-cli/client.pem

每个客户端发送给服务器用于认证身份的密钥文件。如果和client.crt,client.key文件一起出现,client.pem就不会被使用。client.pem文件只有在netopeer-cli编译时,加上–enable-tls选项时才会生成。

~/.netopeer-cli/client.crt

每个用户发送给服务器用于认证的文件。需要和相应的密钥文件一起使用。当netopeer-cli使用–enable-tls选项编译时才会生成这个文件。

~/.netopeer-cli/client.key

每个用户用于认证身份的密钥文件。需要和相应的client.crt文件配合使用。当netopeer-cli使用–enable-tls选项编译时才会生成这个文件。

~/.netopeer-cli/certs

验证服务器证书时搜索的每个用户信任的证书颁发机构的目录。当netopeer-cli使用–enable-tls选项编译时才会生成这个文件。

~/.netopeer-cli/crl

验证服务器整数时搜索的每个用户的证书吊销列表目录。当netopeer-cli使用–enable-tls选项编译时才会生成这个文件。

~/.ssh/netconf_known_hosts

如果原始文件包含与libssh2不兼容的记录,则使用known_hosts文件

相关命令

help
	显示可用命令。--help选项可以显示关于命令的更多信息。

 

 

conncet
	连接NETCONF服务器。
	connect [--help] [--login username] [--tls] [--cert cert_path [--key key_path]] [--trusted trusted_CA_store] [--port
   num]  host
   
   --login username
   		指定用于登录服务器的用户名。没有指定的话,默认使用当前的账户名。
   	
   --tls
   		使用TLS进行传输而不是默认的SSH。使用默认的客户端认证和CA目录来进行TLS握手连接。
   		当netopeer-cli使用--enable-tls选项编译时才可以使用这个选项。
   
   --cert cert_path
   		使用指定的证书用于TLS握手连接。cert_path以CRT格式指定客户端证书的路径。如果--key选项没有使用,cert_path会以PEM格式来包含客户端用于认证的密钥证书。
   		当netopeer-cli使用--enable-tls选项编译时才可以使用这个选项。
   
   --key key_path
   		用KEY格式来指定包含了用于客户端认证的密钥的路径。如果没有指定,cert_path应该以PEM格式包含用于客户端认证的密钥证书。
   		当netopeer-cli使用--enable-tls选项编译时才可以使用这个选项。
   		
   --trusted trusted_CA_store
   		用PEM格式指定一个受信任的CA证书集合的路径,而不是使用默认的CA目录。这只会用于服务器连接的认证。
   		当netopeer-cli使用--enable-tls选项编译时才可以使用这个选项。
   		
   -- port num
   		要连接的NETCONF服务器的端口。默认830端口用于SSH,6513端口用于TLS传输。
   		
   host
   		目标NETCONF服务器的主机名

 

 

listen
	监听NETCONF CALL HOME
	
	listen  [--help] [--login username] [--tls] [--cert cert_path [--key key_path]] [--trusted trusted_CA_store] [--port
   num]
   
   	--login username
   		指定用于登录NETCONF服务器的用户名。默认使用当前账户名。
   			
   --tls
   		使用TLS进行传输而不是默认的SSH。使用默认的客户端认证和CA目录来进行TLS握手连接。
   		当netopeer-cli使用--enable-tls选项编译时才可以使用这个选项。
   		
   --cert cert_path
   		使用指定的证书用于TLS握手连接。cert_path以CRT格式指定客户端证书的路径。如果--key选项没有使用,cert_path会以PEM格式来包含客户端用于认证的密钥证书。
   		当netopeer-cli使用--enable-tls选项编译时才可以使用这个选项。
   		
   --key key_path
   		用KEY格式来指定包含了用于客户端认证的密钥的路径。如果没有指定,cert_path应该以PEM格式包含用于客户端认证的密钥证书。
   		当netopeer-cli使用--enable-tls选项编译时才可以使用这个选项。
   		
   --trusted trusted_CA_store
   		用PEM格式指定一个受信任的CA证书集合的路径,而不是使用默认的CA目录。这只会用于服务器连接的认证。
   		当netopeer-cli使用--enable-tls选项编译时才可以使用这个选项。
   		
   --port num
   		要连接的NETCONF服务器的端口。默认830端口用于SSH,6513端口用于TLS传输。

 

 

disconnected
	和NETCONF服务器断开连接

 

 

commit
	执行NETCONF的<commit>操作。更多详情得看RFC 6241 8.3.4.1节。

 

 

copy-config
	执行NETCONF的<copy-config>操作。更多详情得看RFC 6241 7.3节。
	
	copy-config [--help] [--defaults mode] [--source datastore | --config file] target_datastore
	
	--defaults mode
		具有指定检索方式的默认能力。更多可以参考RFC 6243或者本手册的WITH-DEFAULTS章节。
		
	--source datastore
		指定用于<copy-config>操作的数据存储源。关于datastore参数的详细介绍,可以查看本手册的DATASTORE节。
		
	--config file
		指定包含要复制的完整配置的本地文件的路径。这个选项可以用--source选项代替。
		
	target_datastore
		要被覆盖的目标数据集合。查看本手册的DATASTORE节,可以知道可以使用的合法值。

 

 

delete-config
	执行NETCONF的<delete-config>操作。更多详情得看RFC 6241 7.4节。
	
	delete-config [--help]  target_datastore
	
	要被删除的目标数据集合。查看本手册的DATASTORE节,可以知道可以使用的合法值。注意:running配置数据集合无法被删除。

 

 

discard-changes	//丢弃修改
	执行NETCONF的<discard-changes>操作。它会将候选配置还原为当前正在运行的配置,更多细节参考RFC 6241 8.3.4.2节。

 

 

edit-config
	执行NETCONF的<edit-config>操作。更多详情得看RFC 6241 7.2节。
	
	edit-config [--help] [--defop operation] [--error action] [--test option] [--config file | --url URI]  target_datas‐
   tore
   
   --defop operation
   		指定应用配置数据的默认操作。
   		merge 在相应级别合并配置数据。这是默认值。
   		replace 编辑配置数据将会完全替代目标数据存储中的配置。
   		none 除非且直到编辑配置数据包含操作属性以请求其他操作,否则目标数据存储区不受编辑配置数据的影响。更多信息可以查看EDIT-CONFIG节。
   		
   --error action
   		设置对错误的反应。
   		stop 第一次出现错误后就终止。这是默认值。
   		continue 继续处理错误的配置数据。错误会被记录,并且返回否定相应。
   		rollback 出错时停止操作,并且恢复配置到开始操作前的完整状态。当NETCONF服务器支持rollback-on-error能力时可以使用这个动作。
   		
   --test option
   		验证修改后的配置数据。当服务器支持validate:1.1 capability时可以使用这个选项。
   		set 不执行验证测试。
   		test-only 不应用修改后的数据,只执行验证测试。
   		test-then-set 在应用修改数据前,先进行验证测试。这是默认值。
   		
   --config file
   		指定包含编辑配置数据的文件路径。文件的内容放入edit-config操作的<con-fig>元素中。因此,它不必是只有一个根元素的格式良好的XML文档。如果未指定--config和--url,则将提示用户手动写入编辑配置数据。EDIT-CONFIG节有例子。
   		
   --url URI
   		指定包含要修改的配置数据层次结构的文件的远程位置,该文件以XML编码在urn:ietf:params:xml:ns:netconf:base:1.0命名空间中的元素<config>下。注意,这和file参数不一样,file参数不需要<config>元素。
   		
   target_datastore
   		需要修改的数据存储。具体值可以参考本手册的DATASTORES节。
   		注意:URL配置数据存储无法被修改。

 

 

get
	执行NETCONF的<get>操作。从当前正在运行的数据存储中接受状态和配置数据。
	更多可查看RFC 6241 7.7节。
	
	get [--help] [--defaults mode] [--filter [file]]
	
	--defaults mode
		具有指定检索方式的默认能力。更多可以参考RFC 6243或者本手册的WITH-DEFAULTS章节
		
	--filter [file]
		指定请求是否将包含子树过滤器(RFC 6241 第6节)。该选项可以接受包含过滤规范的文件路径。如果没有指定,那么会提示用户手动输入路径。

 

 

get-config
	执行NETCONF<get-config>操作。只从指定的数据存储中检索配置数据。可以参考RFC 6241 7.1节。
	
	get-config [--help] [--defaults mode] [--filter [file]] target_datastore
	
	--defaults mode
		具有指定检索方式的默认能力。更多可以参考RFC 6243或者本手册的WITH-DEFAULTS章节
		
	--filter [file]
		指定请求是否将包含子树过滤器(RFC 6241 第6节)。该选项可以接受包含过滤规范的文件路径。如果没有指定,那么会提示用户手动输入路径。
	
	 target_datastore
   		需要修改的数据存储。具体值可以参考本手册的DATASTORES节。
   		注意:URL配置数据存储无法被修改。

 

 

get-schema	//概要,议程
	执行NETCONF<get-schema>操作,用于检索服务器使用的指定的数据模型。只有服务器实现了用于NETCONF监视的YANG模块时,这个操作才是可选的。可以通过<get>操作,从.netconf-state/schemas子树中检索可用的模式列表。更多可以参考RFC 6022 3.1节和4节。
	
	get-schema [--help] [--version version] [--format format] identifier
	
	--version version
		请求模式的版本。
		
	--format format
		所请求模式的建模语言。默认值是YANG.
		
	identifier
		模式列表条目的标识符。

 

 

kill-session
	执行NETCONF<kill-session>操作来终止指定的NETCONF会话。如果要结束当前会话,只需要使用disconnect命令。更多请参考RFC 6241 7.9节。
	
	kill-session [--help] session-id
	
	session-id
		需要终止的NETCONF会话的标识符。

 

 

lock
	执行NETCONF<lock>操作来锁住服务器的整个配置数据存储。更多请参考RFC 6241 7.5节。
	
	lock [--help] target_datastore
	
	target-datastore
		需要锁住的目标数据存储。参考本手册的DATASTOERS节可以知道合法值。注意:URL配置数据存储无法被锁住。

 

 

unlock
	执行NETCONF<unlock>操作来释放配置锁,这个锁是之前<lock>操作时获得的。更多请参考RFC 6241 7.6节。
	
	unlock [--help] target_datastore
	
	target-datastore
		需要释放的目标数据存储。参考本手册的DATASTOERS节可以知道合法值。注意:URL配置数据存储无法解锁。

 

 

validate
	执行NETCONF<validate>操作来验证配置数据。更多请参考RFC 6241 8.6.4.1节。
	
	validate [--help] --config [file] |target_datastore
	
	--config file
		验证指定的配置数据。如果指定了文件,则完整的配置数据就会从这个文件中读取。如果没有指定,就会提示用户手动输入文件路径。
		
	target_datastore
		需要验证的目标数据存储。参考本手册的DATASTORES节可以知道合法值。
		
	--confige和target_datastore选项是互斥的,必须选择其中一个。

 

 

subscribe
	执行NETCONF的事件通知<create-subscription>操作。更多请参考RFC 5277 2.1.1节。
	
	subscribe [--help] [--filter [file]] [--begin time] [--end time] [--output file] [stream]
	
	--filter [file]
		指定请求是否将包含子树过滤器(RFC 6241 第6节)。该选项可以接受包含过滤规范的文件路径。如果没有指定,那么会提示用户手动输入路径。
	
	--begin time
		从过去时间time开始重播事件通知(未来时间无效)。如果没有指定开始时间,那么重播功能就不会被激活,并且只会接受到新的事件通知。事件格式在下面会提出。
		
	--end time
		指定事件重播何时停止。以下是时间格式:
			+time 当前时间加上给定的秒数。
			
			time 从1970-01-01到现在的绝对时间,以秒计数。
			
			-time 当前时间减去给定的秒数。
	
	--output stream
		把接收到的通知打印到指定的文件里,而不是打印在终端上。
		
		stream
			指定感兴趣的事件流。如果未指定,则接收默认NETCONF流。可以通过<get>操作从/ netconf / streams子树中检索可用流的列表。

 

 

cert
	管理客户端和~/.netopeer-cli/client.* and ~/.netopeer-cli/certs下用于TLS认证的受信任证书。
	
	cert [--help] [display] [add cert_path] [remove cert_name] [displayown] [replaceown cert_path [key_path]]
	
	--display
		打印~/.netopeer-cli/certs下可识别的证书文件。会显示每个证书的文件名,序列号,主题,发布者和有效性。
		
	add cert_path
		将cert_path证书添加到受信任的CA目录〜/ .netopeer-cli / certs中,并重新计算所有证书的哈希
	
	remove cert_name
		从受信任的CA目录〜/ .netopeer-cli / certs中删除证书名,并且重新计算所有证书的哈希值。cert_name是证书的文件名,和display打印出来的文件名一样。
		
	displayown
		显示有关默认客户端证书状态的信息,并显示有关找到的所有相关客户端证书〜/ .netopeer-cli / client.crt和〜/ .netopeer-cli / client.pem的信息。
		
	replaceown cert_path [key_path]
		使用cert_path下的PEM证书或CRT证书和key_path下的密钥来替换默认的客户端证书。所有之前的客户端证书都会被删除掉。
	

 

 

crl
	管理存储在~/.netopeer-cli/crl目录下的吊销证书列表。
	
	crl [--help] [display] [add crl_path] [remove crl_name]
	
	display
		打印~/.netopeer-cli/crl下所有可识别的CRLs。打印每个吊销证书的文件名,发布者,最后和下一个更新日期,序列号,吊销日期。
	
	add crl_path
		添加crl_path到~/.netopeer-cli/crl目录下,并且重新计算所有CRLs的哈希值。
		
	remove crl_name
		从~/.netopeer-cli/crl目录下移除cert_name,并且重新计算所有CRLs的哈希值。crl_name是CRL的文件名,和display命令打印出来的CRL文件名一样。

 

 

auth
	管理SSH身份验证选项-身份验证首选项和私钥。
	
	auth [--help] [pref [(publickey | password | interactive) preference]] [keys [(add | remove) path_to_the_key]]
	
	pref
		打印当前认证方法的首选项或者是改变特定方法的首选项。
		
	preference
		认证方法新的首选项。负数会关闭认证首选项功能。
	
	keys
		管理用于认证的密钥。
	
	path_to_the_key
		如果指定该选项,就会添加/删除这个密钥。如果没有指定,就显示当前密钥。

 

 

editor
	管理用于修改原始输入数据的扩展编辑器。
	
	editor [--help] [path/name_of_the_editor] [--default]
	
	path/name_of_the_editor
		编辑器的绝对路径或者编辑器的名字。
		
	--default
		回退默认编辑器,该默认编辑器是vi,或者如果使用此优先级定义了环境变量NETOPEER_CLI_EDITOR或EDITOR中的任何一个,则使用这些编辑器

 

 

status
	打印关于当前NETCONF会话的信息。

 

 

test
	在当前NETCONF会话下执行测试用例。
	
	test [--help] file.xml [other_files.xml ...]
	
	file.xml
		一个完全描述符合模型netopeer-test的测试用例的XML文件。

 

 

user-rpc
	通过RPC来发送你自定义的内容。可以将其用于netopeer-cli不支持的数据模型中定义的RPC操作
	
	user-rpc [--help] [--file file]
	
	--file file
		指定包含NETCONF RPC操作的文件,操作内容是XML格式的。仅将NETCONF<rpc>信封添加到文件内容中,然后发送给服务器。如果忽略这个选项,就会提示用户手动输入RPC内容。

 

 

verbose   // 冗长的
	开启/关闭冗余信息功能。

 

 

debug
	开启/关闭调试信息。当netopeer-cli以 --enable-debug选项编译时才可以选择这个功能。

 

 

quit
	退出程序。

 

 

DATASTORES

running
	NETCONF基本配置数据存储,其中包含设备上当前处于活动状态的完整配置。此数据存储区始终存在。
	
startup
	包含设备引导时加载的配置。只有在具有startup capability能力的服务器上有。
	
candidate
	可以在不影响设备当前配置的情况下进行操作的配置数据存储,并且可以将其提交给正在运行的配置数据存储.只有在具有candidate capability能力的服务器上有

url:URI
	引用位于URI的远程配置数据存储。URI引用的文件包含要修改的配置数据层次结构,并以XML编码在urn:ietf:params:xml:ns:netconf:base:1.0命名空间中的元素<config>下。url capability能力的服务器上有

 

 

WITH-DEFAULTS

本节简要描述了上述NETCONF操作命令中用到的:with-defaults功能检索模式。

更多信息请看RFC 6243。

检索模式:
	report-all
		检索包括默认数据节点的所有配置数据。
		
	report-all-tagged
		和report-all类似,但默认数据节点在urn:ietf:params:xml:ns:netconf:default:1.0命名空间中使用XML属性default标记为true。
	
	trim
		只检索不包括默认值的数据。
	
	explicit
		只检索由客户端明确设置的数据。(带默认值或不带默认值)

 

 

EDIT-CONFIG

netopeer命令行界面(CLI)是NETCONF客户端(RFC 6241)。该客户端可以格式化NETCONF“edit-config” RPC消息,其中包含用户提供的信息。成功执行netopeer-cli“ connect”操作后,客户端的edit-config RPC要求连接的服务器初始化或替换特定数据存储区中的值。

   $ ./netopeer-cli
   netconf> connect --login username localhost
   username@localhost password:
   netconf> edit-config --defop replace --config edit-config.xml running

     Result OK
   netconf> quit
   $ cat edit-config.xml
   <interfaces xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces"
               xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type">
    <interface>
      <name>eth1</name>
      <type>ianaift:ethernetCsmacd</type>
      <enabled>false</enabled>
    </interface>
   </interfaces>
   #
   
"--config edit-config.xml"是edit-config请求的输入文件。该文件通过名称和类型标识目标对象,并且它请求在RFC 7223定义的网络接口上将“已启用”对象设置为false。这个实体对象由服务器控制,并且它的数据存储之一也是请求的目标。
NETCONF服务器运行在本地。未来构造一个edit-config请求,--config file必须使用目标数据存储中定义好的命名空间。因此,用"ianaift"作为特定的ietf-interfaces示例中命名空间的前缀。edit-config文件还需要一个<type>元素。

客户端可以获取元数据,如下操作:
$ ./netopeer-cli
   netconf> connect --login username localhost
   username@localhost password:
   netconf> get-config ietf-interfaces

     Select target datastore (running|startup|candidate|url:<dsturl>): running

     Result:
   <interfaces  xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces" xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-
   type">
       <interface>
         <name>eth1</name>
         <type>ianaift:ethernetCsmacd</type>
         <enabled>true</enabled>
         <ipv6 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip">
           <enabled>true</enabled>
           <forwarding>false</forwarding>
           <mtu>1500</mtu>
           <dup-addr-detect-transmits>1</dup-addr-detect-transmits>
           <autoconf>
             <create-global-addresses>true</create-global-addresses>
   <create-temporary-addresses>false</create-temporary-addresses>
             <temporary-valid-lifetime>604800</temporary-valid-lifetime>
   <temporary-preferred-lifetime>86400</temporary-preferred-lifetime>
           </autoconf>
         </ipv6>
       </interface>

     ...

     </netopeer>
     <nacm xmlns="urn:ietf:params:xml:ns:yang:ietf-netconf-acm">
       <enable-nacm>false</enable-nacm>
     </nacm>
   netconf>
   
"..."表示输出太长被省略了。

 

posted @ 2021-01-16 16:52  LiuYanYGZ  阅读(1256)  评论(0编辑  收藏  举报