• 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>
       
    "..."表示输出太长被省略了。
    
  • 相关阅读:
    重谈MST及Kruskal算法
    小技巧—边权转点权
    JDOJ 1062 过路费
    总结—二分答案求解问题
    CF10D LCIS
    NOIP 2012 摆花
    SDOI 2014 旅行
    CF550C Divisibility by Eight
    CF295C Greg and Friends
    USACO Closing the Farm
  • 原文地址:https://www.cnblogs.com/LiuYanYGZ/p/14286540.html
Copyright © 2020-2023  润新知