IETF Call Home

The IETF Call Home feature (RFC 8071) provides the following features:

  • Supports Call Home for NETCONF over SSH, and NETCONF over TLS, as defined in RFC 8071.

  • allows the server to initiate the TCP connection to 1 or more managers that implement IETF Call Home, called a “Call Home server”.

  • allows NETCONF sessions to be started through firewalls

  • allows server discovery and bootstrap configuration

Call Home CLI Configuration

Call Home CLI Parameters

Parameter

Description

--callhome-reconnect

Specifies whether server will reconnect after client closes the session.

--callhome-retry-interval

Specifies the number of seconds to wait after a connect attempt to the Call Home server has failed before attempting another connect attempt to that server.

--callhome-retry-max

Specifies the number of retry attempts the server should attempt to the Call Home server before giving up.

--callhome-server

Specifies a callhome/SSH server that this server should attempt to initiate a callhome connection at boot-time.

--callhome-tls-server

Specifies a callhome/TLS server that this server should attempt to initiate a callhome connection at boot-time.

--callhome-sshd-command

Specifies the command used in Call Home to invoke the SSH server

--callhome-sshd-config

Specifies the filespec for the config file used in Call Home to invoke the SSH server

--callhome-subsys-command

Specifies the command used in Call Home to invoke the netconf subsystem

--with-callhome

Enable or disable the IETF Call Home protocol

Notes for NETCONF over SSH Call Home:

  • The Call Home over SSH port is called “netconf-ch-ssh” by IANA.

  • The default TCP port number is 4334.

  • The netconfd-pro server probably needs to be started with “s netconfd-pro u”

  • If the --with-callhome parameter is set to 'true' then the server will check if any --callhome-server parameters are provided. If not, then the Call Home feature will not be used on the server.

  • The server will fork a process for each Call Home server that will attempt a TCP connection to one of the Call Home servers configured on the netconfd-pro server.

  • If the TCP connection succeeds the SSH server will be called in “inetd” mode. The SSH server will wait for the client (callhome server) to initiate an SSH session to the netconfd-pro server.

  • If the client successfully initiates a NETCONF session, a new incoming session will be started on the server in the normal manner. The server will check if the incoming session was started by callhome, in order to skip the TCP port checks. The source port will not be 830 (or whatever is specified in the --port CLI parameter), but rather the source port used by the server to initiate the TCP connection.

../_images/callhome_graphic.png

In this example there are 3 separate systems, 1 netconfd-pro server and 2 Call Home servers

Configuration parameters for the netconfd-pro server:

netconfd-pro {
  callhome-reconnect true
  callhome-retry-interval 30
  callhome-retry-max 10
  callhome-server [email protected]
  callhome-server [email protected]
  with-callhome true
}

Call Home YANG Configuration

The yumaworks-callhome module can be used to configure Call Home servers with YANG.

+--rw callhome
   +--rw server* [name]
      +--rw name        yang:yang-identifier
      +--rw address     inet:host
      +--rw port?       inet:port-number
      +--rw protocol    enumeration

The YANG module contains a list called “server”, which is a list of Call Home servers for connections. This configured list is used in addition to any bootstrap Call Home servers created with CLI parameters. Entries can be created and deleted but not modified. If an entry is deleted then the Call Home session associated with the entry is not affected. Only the configuration is affected, which affects the sessions started on the next reboot..

  • name: This value must not be the same as any Call Home server name used in a --callhome-server CLI parameter, in order to prevent confusing logging messages with duplicate names. A 'duplicate entry' error message will be returned in this case.

  • address: IP Address or host name for the Call Home server. This must not be a loopback address, which would imply the client and server are running on the same host.

  • port: the TCP port number for the Call Home server. If not present then the default port for the protocol will be used.

  • protocol: enumeration

    • netconf-ssh: Use a NETCONF over SSH Call Home connection

    • netconf-tls: Use a NETCONF over TLS Call Home connections