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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM