cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
480
Views
0
Helpful
0
Replies

[NSO 4.7] Time of Synchronization

romain.guilloux
Level 1
Level 1

Hello,

 

    We observed that NSO synchronization (netconf) could be very long for devices with more than 20Mb of configuration (15minutes for a sync-from and 5 minutes for a partial-sync over junos:configration/firewall). We have made some tests in three differents environments. Did anyone observed the same behaviour ?

 

   We went deeper in this analysis. Let's take a junos netconf device with 10Mb of configuration.

 

   For a sync-from, here is the RPC send by NSO, logs netconf taken directly on the device:

 

  NSO is doing 4 rpc: a show conf version, show version, show conf and finally show conf version. 90% of the sync from is spend on rpc get-config.

 

Jun  3 14:00:24 # start netconf exchange
Jun  3 14:00:24 [NETCONF] - [80917] Incoming: <?xml version="1.0" encoding="UTF-8"?>
<hello xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<capabilities><capability>urn:ietf:params:netconf:base:1.0</capability><capability>urn:ietf:params:netconf:base:1.1</capability></capabilities>
</hello>]]>]]>
Jun  3 14:00:24 # 2 RPC, get-config of version then "show version"
Jun  3 14:00:24 [NETCONF] - [80917] Incoming: <?xml version="1.0" encoding="UTF-8"?>
<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="1">
<get-config xmlns:nc='urn:ietf:params:xml:ns:netconf:base:1.0'><source><running/></source><filter><configuration><version/></configuration></filter></get-config></rpc>]]>]]><?xml version="1.0" encoding="UTF-8"?>
<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="2">
<get-software-information xmlns='http://xml.juniper.net/xnm/1.1/xnm'><brief/></get-software-information></rpc>]]>]]>
[…]
Jun  3 14:00:25 # end of get-software-information
Jun  3 14:00:27 # 2 secondes later rpc-request get-config global
Jun  3 14:00:27 [NETCONF] - [80917] Incoming: <?xml version="1.0" encoding="UTF-8"?>
<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="3">
<get-config><source><running/></source><filter><configuration xmlns="http://xml.juniper.net/xnm/1.1/xnm"></configuration></filter></get-config></rpc>]]>]]>
[…]
Jun  3 14:05:24 # end: 5 minutes.
Jun  3 14:05:24 ### NSO ask for a show conf version
Jun  3 14:05:25 [NETCONF] - [80917] Incoming: <?xml version="1.0" encoding="UTF-8"?>
<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="4">
<get-config xmlns:nc='urn:ietf:params:xml:ns:netconf:base:1.0'><source><running/></source><filter><configuration><version/></configuration></filter></get-config></rpc>]]>]]>
Jun  3 14:05:56 ## end of session
Jun  3 14:05:56 [NETCONF] - [80917] Incoming: <?xml version="1.0" encoding="UTF-8"?>
<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="5">
<close-session/></rpc>]]>]]>

 

So nearly 80% of the sync from is spent on the device :S Hence, we decided to perform the same rpc manualy with ssh ip -p 830 -s netconf.

 

Device: junos 17.4R2 mx

Times: 

platforme A manual netconf: 1minute 20s.

platforme B manual netconf: 1minute26s

platforme C manual netconf: 1minute 29s

 

platforme A nso sync from: 5minutes.

platforme B nso sync from: 5minutes 5s

 

Thanks.

0 Replies 0
Getting Started

Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the NSO Developer community: