Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
nsd-control(8)			  nsd 4.11.1			nsd-control(8)

NAME
       nsd-control, nsd-control-setup -	NSD remote server control utility.

SYNOPSIS
       nsd-control [-c cfgfile]	[-s server] command

DESCRIPTION
       nsd-control  performs  remote  administration on	the nsd(8) DNS server.
       It reads	the configuration file,	contacts  the  nsd  server  over  SSL,
       sends the command and displays the result.  Commands that require a re-
       load are	queued and the result indicates	the command was	accepted.

       The available options are:

       -h     Show the version and commandline option help.

       -c cfgfile
	      The config file to read with settings.  If not given the default
	      config file /usr/local/etc/nsd/nsd.conf is used.

       -s server[@port]
	      IPv4  or	IPv6  address of the server to contact.	 If not	given,
	      the address is read from the config file.

COMMANDS
       There are several commands that the server understands.

       start  Start the	server.	Simply execs nsd(8).  The  nsd	executable  is
	      not  searched  for  in the PATH set in the environment.  Instead
	      the default location relative to the installation	prefix	speci-
	      fied at compile-time.  The executable location can be overridden
	      by  setting NSD_PATH in the environment.	It is started with the
	      config file specified using -c or	the default config file.

       stop   Stop the server. The server daemon exits.

       reload [<zone>]
	      Reload zonefiles and reopen  logfile.   Without  argument	 reads
	      changed  zonefiles.   With  argument  reads the zonefile for the
	      given zone and loads it.

       reconfig
	      Reload nsd.conf and apply	changes	to TSIG	keys and configuration
	      patterns,	and apply the changes to add and remove	zones that are
	      mentioned	in the config.	Other changes are not applied, such as
	      listening	ip address and port and	chroot,	also per-zone  statis-
	      tics  are	 not applied.  The pattern updates means that the con-
	      figuration options for  zones  (request-xfr,  zonefile,  notify,
	      ...)  are	updated.  Also new patterns are	available for use with
	      the addzone command.

       repattern
	      Same as the reconfig option.

       log_reopen
	      Reopen the logfile, for log rotate that wants to move  the  log-
	      file  away  and  create  a new logfile.  The log can also	be re-
	      opened with kill -HUP (which also	reloads	all zonefiles).

       status Display server status. Exit code 3 if not	running	 (the  connec-
	      tion to the port is refused), 1 on error,	0 if running.

       stats  Output  a	 sequence of name=value	lines with statistics informa-
	      tion, requires NSD to be compiled	with this option enabled.

       stats_noreset
	      Same as stats, but does not zero the counters.

       addzone <zone name> <pattern name>
	      Add a new	zone to	the running server.  The zone is added to  the
	      zonelist file on disk, so	it stays after a restart.  The pattern
	      name  determines	the  options  for the new zone.	 For secondary
	      zones a zone transfer is immediately attempted.  For zones  with
	      a	zonefile, the zone file	is attempted to	be read	in.

       delzone <zone name>
	      Remove  the  zone	 from the running server.  The zone is removed
	      from the zonelist	file on	disk, from the nsd.db  file  and  from
	      the memory.  If it had a zonefile, this remains (but may be out-
	      dated).	Zones  configured inside nsd.conf itself cannot	be re-
	      moved this way because the daemon	does not write to the nsd.conf
	      file, you	need to	add such zones to the zonelist file to be able
	      to delete	them with the delzone command.

       changezone <zone	name> <pattern name>
	      Change a zone to use the	pattern	 for  options.	 The  zone  is
	      deleted  and  added in one operation, changing it	to use the new
	      pattern for the zone options.  Zones configured in nsd.conf can-
	      not be changed like this,	instead	edit the nsd.conf (or the  in-
	      cluded file in nsd.conf) and reconfig.

       addzones
	      Add  zones  read	from  stdin of nsd-control.  Input is read per
	      line, with name space patternname	on a  line.   For  bulk	 addi-
	      tions.

       delzones
	      Remove  zones read from stdin of nsd-control.  Input is one name
	      per line.	 For bulk removals.

       write [<zone>]
	      Write zonefiles to disk, or the given zonefile to	 disk.	 Zones
	      that  have  changed  (via	 AXFR  or IXFR)	are written, or	if the
	      zonefile has not been created yet	then it	is created.  Directory
	      components of the	zonefile path are created if  necessary.  With
	      argument	that zone is written if	it was modified, without argu-
	      ment, all	modified zones are written.

       notify [<zone>]
	      Send NOTIFY messages to secondary	servers.  Sends	to the IP  ad-
	      dresses  configured in the 'notify:' lists for the primary zones
	      hosted on	this server.  Usually NSD sends	NOTIFY messages	 right
	      away when	a primary zone serial is updated.  If a	zone is	given,
	      notifies	are  sent  for that zone.  These secondary servers are
	      supposed to initiate a zone  transfer  request  later  (to  this
	      server  or  another  primary), this can be allowed via the 'pro-
	      vide-xfr:' acl list configuration. With argument	that  zone  is
	      processed, without argument, all zones are processed.

       transfer	[<zone>]
	      Attempt to update	secondary zones	that are hosted	on this	server
	      by  contacting  the primaries.  The primaries are	configured via
	      'request-xfr:' lists.  If	a zone is given, that zone is updated.
	      Usually NSD receives a NOTIFY from the primaries (configured via
	      'allow-notify:' acl list)	that a	new  zone  serial  has	to  be
	      transferred.  For	zones with no content, NSD may have backed off
	      from  asking  often  because  the	primaries did not respond, but
	      this command will	reset the backoff to its initial timeout,  for
	      frequent	retries. With argument that zone is transferred, with-
	      out argument, all	zones are transferred.

       force_transfer [<zone>]
	      Force update secondary zones that	are  hosted  on	 this  server.
	      Even  if the primary hosts the same serial number	of the zone, a
	      full AXFR	is performed to	fetch it.  If you want to use IXFR and
	      check that the serial number increases, use the 'transfer'  com-
	      mand.  With argument that	zone is	transferred, without argument,
	      all zones	are transferred.

       zonestatus [<zone>]
	      Print state of the zone, the serial numbers and since when  they
	      have  been  acquired.   Also  prints the notify action (to which
	      server), and zone	transfer (and from which primary) if there  is
	      activity	right now.  The	state of the zone is printed as: 'pri-
	      mary' (primary zones), 'ok' (secondary zone is up-to-date), 'ex-
	      pired' (secondary	zone  has  expired),  'refreshing'  (secondary
	      zone  has	transfers active).  The	serial numbers printed are the
	      'served-serial' (currently active), the 'commit-serial'  (is  in
	      reload),	the  'notified-serial'	(got notify, busy fetching the
	      data).  The serial numbers are only printed  if  such  a	serial
	      number is	available. With	argument that zone is printed, without
	      argument,	all zones are printed.

       serverpid
	      Prints  the PID of the server process.  This is used for statis-
	      tics (and	only works when	NSD is compiled	 with  statistics  en-
	      abled).	This  pid is not for sending unix signals, use the pid
	      from nsd.pid for that, that pid is also stable.

       verbosity <number>
	      Change logging verbosity.

       print_tsig [<key_name>]
	      print the	secret and algorithm for the TSIG key with that	 name.
	      Or list all the tsig keys	with their name, secret	and algorithm.

       update_tsig <name> <secret>
	      Change  existing	TSIG key with name to the new secret.  The se-
	      cret is a	base64 encoded string.	The changes are	only in-memory
	      and are gone next	restart, for lasting changes edit the nsd.conf
	      file or a	file included from it.

       add_tsig	<name> <secret>	[algo]
	      Add a new	TSIG key with the given	name,  secret  and  algorithm.
	      Without  algorithm  a  default  (hmac-sha256) algorithm is used.
	      The secret is a base64 encoded string.  The changes are only in-
	      memory and are gone next restart,	for lasting changes  edit  the
	      nsd.conf file or a file included from it.

       assoc_tsig <zone> <key_name>
	      Associate	 the  zone  with  the  given tsig.  The	access control
	      lists for	notify,	allow-notify, provide-xfr and request-xfr  are
	      adjusted to use the given	key.

       del_tsig	<key_name>
	      Delete  the  TSIG	 key with the given name.  Prints error	if the
	      key is still in use by some zone.	 The changes are only  in-mem-
	      ory  and	are  gone  next	 restart, for lasting changes edit the
	      nsd.conf file or a file included from it.

       add_cookie_secret <secret>
	      Add or replace a cookie secret persistently. <secret>  needs  to
	      be an 128	bit hex	string.

	      Cookie  secrets  can  be either active or	staging. Active	cookie
	      secrets are used to create DNS Cookies, but  verification	 of  a
	      DNS Cookie succeeds with any of the active or staging cookie se-
	      crets.  The  state  of the current cookie	secrets	can be printed
	      with the print_cookie_secrets command.

	      When there are no	cookie secrets configured yet, the <secret> is
	      added as active. If there	is already an  active  cookie  secret,
	      the  <secret> is added as	staging	or replacing an	existing stag-
	      ing secret.

	      To "roll"	a cookie secret	used in	an anycast set.	The new	secret
	      has to be	added as staging secret	to all nodes  in  the  anycast
	      set.  When all nodes can verify DNS Cookies with the new secret,
	      the new secret can be activated with the	activate_cookie_secret
	      command. After all nodes have the	new secret active for at least
	      one   hour,   the	 previous  secret  can	be  dropped  with  the
	      drop_cookie_secret command.

	      Persistence is accomplished by writing to	a file which  if  con-
	      figured with the cookie-secret-file option in the	server section
	      of   the	 config	  file.	   The	default	 value	for  that  is:
	      /var/db/nsd/cookiesecrets.txt .

       drop_cookie_secret
	      Drop the staging cookie secret.

       activate_cookie_secret
	      Make the current staging cookie secret active, and  the  current
	      active cookie secret staging.

       print_cookie_secrets
	      Show the current configured cookie secrets with their status.

EXIT CODE
       The  nsd-control	 program  exits	with status code 1 on error, 0 on suc-
       cess.

SET UP
       The setup requires a self-signed	certificate and	private	keys for  both
       the server and client.  The script nsd-control-setup generates these in
       the  default  run  directory,  or with -d in another directory.	If you
       change the access control permissions on	the key	files you  can	decide
       who  can	use nsd-control, by default owner and group but	not all	users.
       The script preserves private keys present in the	directory.  After run-
       ning the	script as root,	turn on	control-enable in nsd.conf.

STATISTIC COUNTERS
       The stats command shows a number	of statistic counters.

       num.queries
	      number of	queries	received (the tls, tcp and udp	queries	 added
	      up).

       serverX.queries
	      number  of queries handled by the	server process.	 The number of
	      server processes is set with the config statement	server-count.

       time.boot
	      uptime in	seconds	since the server was started.  With fractional
	      seconds.

       time.elapsed
	      time since the last stats	report,	in seconds.   With  fractional
	      seconds.	 Can  be zero if polled	quickly	and the	previous stats
	      command resets the counters, so that the next gets a fully zero,
	      and zero elapsed time, report.

       size.db.disk
	      size of nsd.db on	disk, in bytes.

       size.db.mem
	      size of the DNS database in memory, in bytes.

       size.xfrd.mem
	      size of memory for zone transfers	and notifies in	xfrd  process,
	      excludes TSIG data, in bytes.

       size.config.disk
	      size  of	zonelist  file on disk,	excludes the nsd.conf size, in
	      bytes.

       size.config.mem
	      size of config data in memory, kept twice	 in  server  and  xfrd
	      process, in bytes.

       num.type.X
	      number of	queries	with this query	type.

       num.opcode.X
	      number of	queries	with this opcode.

       num.class.X
	      number of	queries	with this query	class.

       num.rcode.X
	      number of	answers	that carried this return code.

       num.edns
	      number of	queries	with EDNS OPT.

       num.ednserr
	      number of	queries	which failed EDNS parse.

       num.udp
	      number of	queries	over UDP ip4.

       num.udp6
	      number of	queries	over UDP ip6.

       num.tcp
	      number of	connections over TCP ip4.

       num.tcp6
	      number of	connections over TCP ip6.

       num.tls
	      number of	connections over TLS ip4.  TLS queries are not part of
	      num.tcp.

       num.tls6
	      number of	connections over TLS ip6.  TLS queries are not part of
	      num.tcp6.

       num.answer_wo_aa
	      number  of  answers with NOERROR rcode and without AA flag, this
	      includes the referrals.

       num.rxerr
	      number of	queries	for which the receive failed.

       num.txerr
	      number of	answers	for which the transmit failed.

       num.raxfr
	      number of	AXFR requests from clients (that got served  with  re-
	      ply).

       num.rixfr
	      number  of  IXFR requests	from clients (that got served with re-
	      ply).

       num.truncated
	      number of	answers	with TC	flag set.

       num.dropped
	      number of	queries	that were dropped because they	failed	sanity
	      check.

       zone.primary
	      number  of  primary  zones served.  These	are zones with no 're-
	      quest-xfr:' entries. Also	output as 'zone.master'	for  backwards
	      compatibility.

       zone.secondary
	      number  of  secondary  zones  served.  These are zones with 're-
	      quest-xfr' entries. Also output as  'zone.slave'	for  backwards
	      compatibility.

FILES
       /usr/local/etc/nsd/nsd.conf
	      nsd configuration	file.

       /usr/local/etc/nsd
	      directory	with private keys (nsd_server.key and nsd_control.key)
	      and   self-signed	  certificates	(nsd_server.pem	 and  nsd_con-
	      trol.pem).

SEE ALSO
       nsd.conf(5), nsd(8), nsd-checkconf(8)

NLnet Labs			 jan 18, 2025			nsd-control(8)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=nsd-control&sektion=8&manpath=FreeBSD+Ports+14.3.quarterly>

home | help