npm 包 bind9-rndc 使用教程

阅读时长 5 分钟读完

前言

本文将介绍如何使用 npm 包 bind9-rndc,该包用于与绑定服务(Bind)的远程管理接口(RNDC)进行交互。通过使用该包,可以方便地进行 DNS 记录的添加、删除、修改等管理操作,从而实现更精细化、可靠性更高的 DNS 服务。

安装

使用 npm 包管理器进行安装:

配置

使用 bind9-rndc 之前,需要先配置 RNDC 的访问授权,可在 Bind 的全局配置文件(/etc/bind/named.conf.options)中添加如下内容:

授权信息包括监听地址、端口号、允许访问地址、秘钥等。 rn dc-key 的配置需要与后面的步骤配合使用。

同时,需要在 RNDC 的配置文件中指定授权信息:

-- -------------------- ---- -------
--- ---------- -
    --------- ---------
    ------ ---------
--

-------- -
    ---- --------- ---- ---
        ----- - ---------- - ---- - --------- --
--

其中,algorithm 可根据需求进行修改,hmac-md5 为常用的选项。 secret 为授权秘钥,可以使用如下命令生成:

生成的 rndc.key 必须与上述配置文件中的授权秘钥保持一致。

使用

初次使用 bind9-rndc,需要先设置目标 RNDC 地址及秘钥等信息:

默认情况下,RNDC 的监听地址为 127.0.0.1,端口号为 953。

待设置完成后,即可开始进行 DNS 记录的操作。以下代码示例演示了如何添加 A 类别记录:

其中,第一个参数为记录的完整域名,第二个参数为 IP 地址,第三个参数为记录类型。若需添加多个记录,可使用以下方法:

-- -------------------- ---- -------
----- ------- - -
    - ----- ------------------ ------ ------------ ----- --- --
    - ----- ------------------- ------ ------------ ----- ----- --------- -- --
    -- --
--

---------------------------- -------- ----- ------- ------- -- -
    -- ----- -
        ------------------------ ---- --------
    - ---- -
        ------------------------ --------
    -
---

其中,records 为一个数组,包含了多个记录对象。每个对象中包含 name(记录名)、value(值)、type(类型)和 priority(仅 MX 记录需要)四个属性。

与添加操作类似,删除操作也提供了单个和批量两种方式:

-- -------------------- ---- -------
-- -------
----------------------- ---- ----- ------- ------- -- - -- -- -- ---

-- ------
----- ------- - -
    - ----- ------------------ ----- --- --
    - ----- ------------------- ----- ---- --
    -- --
--

---------------------------- -------- ----- ------- ------- -- - -- -- -- ---

修改操作需要先读取当前记录的设置,然后执行更新操作:

-- -------------------- ---- -------
----------------------- ---- ----- -------- -- -
    -- ----- -
        ---------------------- -----
    - ---- -
        ---------------------- -- -
            --------------- - ------------
        ---

        ----------------------- -------- ----- ------- ------- -- -
            -- ----- -
                ---------------------- ---- --------
            - ---- -
                ---------------------- --------
            -
        ---
    -
---

其中,rndc.get 读取指定域名下的指定类型的记录,并将其转化为数组形式。数组中的每个元素都包含 name(记录名)、value(原始值)、newValue(要修改的新值)、type(类型)等四个属性。记录修完后,调用 rndc.set 保存即可。

总结

本文介绍了如何使用 bind9-rndc 包进行 DNS 记录的添加、删除、修改等操作。该包封装了 RNDC 的访问接口,使用方便,能够提高 DNS 服务的可靠性和管理效率。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600570ba81e8991b448e7fdf

纠错
反馈