The NETCONF protocol, described in RFC 4741, is central to Junos management. In fact, NETCONF was modeled after the internal protocol used between the different management interfaces (such as J-Web or the CLI) and MGD, which can all obtain configuration information, change the configuration, or get monitoring information from the different daemons in the system. The protocols are not identical, but they are similar enough that, in Junos, NETCONF is implemented by using an adaptation layer that simply translates the NETCONF calls to the format used internally by the devices.
It is not the objective of this section to go through the details of the protocol, but it is instructive to review some of the concepts, as they provide a good introduction and springboard to Junos automation.
NETCONF uses XML-encoded RPCs to exchange information between management systems and devices. In the particular case of devices running Junos, NETCONF can be used from remote device managers, like NSM, but it is also the protocol used between the management daemons in the system. In broad terms, NETCONF follows the same structure as the Junos CLI—there is a separation of configuration and state data and different RPCs are used to access and modify this data.
Messages exchanged between peers follow a request–reply structure.
Request messages (normally originating at the management station) are
<rpc> tags, while
reply messages (from the device) are enclosed in
Each device ...