Skip to content

isc-projects/bind9-rndc-node

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BIND9 rndc for NodeJS

This module implements the BIND9 rndc management protocol and is compatible with BIND 9.9 and later.

This is unsupported software and is provided without warranty.

Example usage

The code below sends the "status" command to the default rndc port on the machine localhost. The key data is base64 encoded, as per the usual rndc.conf syntax.

var RNDC = require('bind9-rndc');

var key = '2or79WFROyibcP/qixhklCiZIL4aHfRIQj7yyodzQBw=';
var algo = 'sha256';

var session = RNDC.connect('localhost', 953, key, algo);

session.on('ready', () => {
    session.send('status');
});

session.on('data', (obj) => {
    console.log(obj);
    session.end();
});

session.on('error', console.log);

Each call to .send sends a single command string to the server, although with this module it is possible to maintain a persistent connection to the rndc port and send multiple commands, achieving higher throughput than is possible compared to opening a new rndc connection for each command.

In BIND 9.11 and later a valid response will contain a result key with a (string) variable containing the value 0, or an error code otherwise.

Valid crypto algorithms are md5, sha1, sha224, sha256, sha384, and sha512.