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>
"..."表示输出太长被省略了。