An open API service indexing awesome lists of open source software.

https://github.com/kweonminsung/bind9_rndc_rust

BIND9 RNDC protocol implementation for Rust
https://github.com/kweonminsung/bind9_rndc_rust

bind9 dns rndc rust

Last synced: 3 months ago
JSON representation

BIND9 RNDC protocol implementation for Rust

Awesome Lists containing this project

README

          

# BIND9 rndc for Rust

This module is a rust binding for [bind9-rndc-node](https://github.com/isc-projects/bind9-rndc-node/tree/master).

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

## 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.

```rust
let client = RndcClient::new(
"127.0.0.1:953", // rndc server URL
"sha256", // supported algorithms: md5, sha1, sha224, sha256, sha384, sha512
"secret_key", // base64 encrypted secret_key
);

println!(client.rndc_command("reload").unwrap());
/*
Output:

server reload successful
*/

println!(client.rndc_command("status").unwrap());
/*
Output:

version: BIND 9.18.30-0ubuntu0.24.04.2-Ubuntu (Extended Support Version)
running on localhost: Linux x86_64 5.15.167.4-microsoft-standard-WSL2 #1 SMP Tue Nov 5 00:21:55 UTC 2024
boot time: Mon, 11 Aug 2025 13:32:16 GMT
last configured: Mon, 11 Aug 2025 13:32:16 GMT
configuration file: /etc/bind/named.conf
CPUs found: 8
worker threads: 8
UDP listeners per interface: 8
number of zones: 105 (98 automatic)
debug level: 0
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is OFF
recursive clients: 0/900/1000
tcp clients: 0/150
TCP high-water: 0
server is up and running
*/
```

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