如何绑定域名到特定的NS服务器?

小贝
预计阅读时长 24 分钟
位置: 首页 小红书 正文

使用BIND命令绑定域名NS

bind 域名 ns

背景介绍

BIND(Berkeley Internet Name Domain)是互联网上最广泛使用的DNS(域名系统)软件之一,它负责将域名转换为IP地址,使用户可以通过名称访问网站而不是输入复杂的IP地址,本文将详细介绍如何使用BIND配置和管理一个基本的DNS服务器,包括安装、配置文件解析和测试等内容。

一、BIND和named简介

BIND的作用

BIND是互联网上使用最广泛的DNS软件之一,它负责将域名转换为IP地址,通过BIND,用户可以方便地通过域名访问网站,而不需要记住复杂的IP地址。

named的角色

在BIND中,named是一个守护进程,负责处理所有的DNS请求,它读取配置文件并响应客户端的查询请求。

二、安装BIND

这里以Rocky9.3操作系统为例,演示如何安装BIND。

bind 域名 ns
sudo dnf install bind bind-utils

验证是否安装成功:

named -v

三、配置文件介绍

安装完成后,会生成一些重要的文件和目录,以下是需要关注的两个主要文件:

`/etc/named.conf`

这是BIND的主配置文件,定义了服务器的运行参数,如监听的IP地址、日志文件位置等。

示例配置:

options {
    listen-on port 53 { 127.0.0.1; };       // 监听IPv4地址127.0.0.1上的53端口
    listen-on-v6 port 53 { ::1; };          // 监听IPv6地址::1上的53端口
    directory       "/var/named";            // 指定存放区域文件和其他相关文件的目录
    dump-file       "/var/named/data/cache_dump.db"; // 指定DNS缓存转储文件的位置
    statistics-file "/var/named/data/named_stats.txt"; // 指定统计数据文件的存放位置
    memstatistics-file "/var/named/data/named_mem_stats.txt"; // 指定内存统计数据文件的存放位置
    secroots-file   "/var/named/data/named.secroots"; // 指定安全根文件的存放位置
    recursing-file  "/var/named/data/named.recursing"; // 指定递归查询数据文件的存放位置
    allow-query     { localhost; };           // 允许从localhost发起查询
    recursion yes;                           // 启用递归查询
    dnssec-enable yes;                      // 启用DNSSEC验证
    dnssec-validation yes;                   // 启用DNSSEC验证
    managed-keys-directory "/var/named/dynamic"; // 指定动态密钥文件的存放目录
    geoip-directory  "/usr/share/GeoIP";     // 指定GeoIP数据库文件的存放目录
    pid-file "/run/named/named.pid";         // 指定named进程PID文件的存放位置
    session-keyfile "/run/named/session.key"; // 指定会话密钥文件的存放位置
    include "/etc/crypto-policies/back-ends/bind.config"; // 引入加密策略配置文件
};
logging {
    channel default_debug {
        file "data/named.run"; // 日志文件位置
        severity dynamic;      // 动态日志级别
    };
};
zone "." IN {
    type hint;                 // 类型为“hint”,意味着这是根域的提示
    file "named.ca";           // 指向根域的文件
};
include "/etc/named.rfc1912.zones"; // RFC1912推荐的区域文件
include "/etc/named.root.key";     // 根密钥文件,用于DNSSEC

`/var/named`目录文件

该目录包含多个子目录和文件,其中最重要的是:

data: 存储BIND运行时生成的数据,如DNS查询日志和统计信息。

bind 域名 ns

dynamic: 存放动态DNS更新的记录,用于DDNS服务。

named.ca: 根提示文件,包含根DNS服务器地址,用于互联网DNS解析。

named.empty: 空的DNS区域文件,用于特殊配置。

named.localhost: 定义localhost的DNS记录,包含本地回环地址。

named.loopback: 用于定义回环地址的DNS区域,通常用于DNS服务器内部查询。

slaves: 存放从主DNS服务器同步的区域文件,用于备份或辅助解析。

四、开始配置named

编辑/etc/named.conf文件:

sudo vi /etc/named.conf

查找以下行:

listen-on port 53 { 127.0.0.1; };

添加主DNS服务器的IP地址,如下所示:

listen-on port 53 { 127.0.0.1; 192.168.1.160; };

查找以下行:

allow-query { localhost; };

添加本地网络范围,该示例系统使用的IP地址在192.168.1.X的范围内:

allow-query { localhost; 192.168.1.0/24; };

指定转发和反向区域,区域文件(Zone file)就是具有系统上DNS信息(例如IP地址和主机名)的文本文件,转发区域文件使得将主机名转换为IP地址成为可能,反向区域文件则相反,它允许远程系统将IP地址转换为主机名。

/etc/named.conf文件的底部查找以下行:

include "/etc/named.rfc1912.zones";

在此处,你将在该行的正上方指定区域文件信息,如下所示:

zone "dns01.fedora.local" IN {
    type master;
    file "forward.fedora.local";
    allow-update { none; };
};
zone "1.168.192.in-addr.arpa" IN {
    type master;
    file "reverse.fedora.local";
    allow-update { none; };
};

forward.fedora.local和reverse.fedora.local文件是要创建的区域文件的名称,它们可以是任意名字。

保存并退出。

五、创建区域文件

创建你在/etc/named.conf文件中指定的转发和反向区域文件:

$ sudo vi /var/named/forward.fedora.local

添加以下行:

$TTL 86400
@       IN      SOA     ns.fenglm.yy. hostmaster.fenglm.yy. (
                        2001062501 ; serial
                        3600        ; refresh after 6 hours
                        1800        ; retry after 1 hour
                        604800      ; expire after 1 week
                        86400       ) ; minimum TTL of
        IN      NS      ns.fenglm.yy.
        IN      A       192.168.1.160
ns      IN      A       192.168.1.160
client  IN      A       192.168.1.136

保存文件并退出,编辑reverse.fedora.local文件:

$ sudo vi /var/named/reverse.fedora.local

添加以下行:

$TTL 86400
@       IN      SOA     ns.fenglm.yy. hostmaster.fenglm.yy. (
                        2001062501 ; serial, same as above
                        3600        ; refresh after 6 hours
                        1800        ; retry after 1 hour
                        604800      ; expire after 1 week
                        86400       ) ; minimum TTL, same as above
        IN      NS      ns.fenglm.yy.
        IN      PTR     fedora.local.dns01
dns01    IN      A       192.168.1.160
client  IN      A       192.168.1.136

所有粗体内容都特定于你的环境,保存文件并退出。

六、配置SELinux并为配置文件添加正确的所有权

sudo chgrp named -R /var/named
sudo chown -v root:named /etc/named.conf
sudo restorecon -rv /var/named
sudo restorecon /etc/named.conf

七、配置防火墙

sudo firewall-cmd --add-service=dns --permanent
sudo firewall-cmd --reload

八、检查配置是否存在语法错误并启动服务

sudo named-checkconf /etc/named.conf

如果没有输出或返回错误,那么你的配置有效,检查转发和反向区域文件:

sudo named-checkzone forward.fedora.local /var/named/forward.fedora.local
sudo named-checkzone reverse.fedora.local /var/named/reverse.fedora.local

你应该看到 “OK” 的响应:

zone forward.fedora.local/IN: loaded serial 2001062501
OK
zone reverse.fedora.local/IN: loaded serial 2001062501
OK

启用并启动DNS服务:

sudo systemctl enable named
sudo systemctl start named

九、配置resolv.conf文件

编辑/etc/resolv.conf文件:

$ sudo vi /etc/resolv.conf

查找你当前的nameserver行,在示例系统上,使用调制解调器/路由器充当名称服务器,因此当前看起来像这样:

nameserver 192.168.1.1
```这需要更改为主DNS服务器的IP地址:

nameserver 192.168.1.160

``保存更改并退出,需要注意的是,如果系统重启或网络重启,NetworkManager可能会覆盖/etc/resolv.conf,要避免这种情况,可以使用nmcli`命令来配置NetworkManager:

nmcli con mod "System eth0" ipv4.dns "192.168.1.160"
nmcli con up "System eth0"
``这样设置后,重启网络也不会丢失配置,还可以在/etc/resolv.conf`中添加以下行来防止被覆盖:
``plaintext[prepend global] nameserver 192.168.1.160`保存并退出编辑器,至此,BIND的基本配置已经完成,你可以通过以下命令测试DNS解析是否正常工作:`bash dig @192.168.1.160 fenglm.yy`如果一切正常,你应该会看到类似于以下的输出:`plaintext;; QUESTION SECTION:; ;fenglm.yy.                      IN      A;; ANSWER SECTION:fenglm.yy.              86400   IN      A       192.168.1.160;; AUTHORITY SECTION:fenglm.yy.              86400   IN      NS      ns.fenglm.yy.`这表明你的DNS服务器已经正确解析了域名fenglm.yy到IP地址192.168.1.160`,至此,你已经成功配置了一个基本的BIND DNS服务器,如果你有任何问题或需要进一步的帮助,请随时提问。

小伙伴们,上文介绍了“bind 域名 ns”的内容,你了解清楚吗?希望对你有所帮助,任何问题可以给我留言,让我们下期再见吧。

-- 展开阅读全文 --
头像
服务器续费有促销?了解最新活动详情!
« 上一篇 2024-12-03
BP网络的适用范围究竟有多广泛?
下一篇 » 2024-12-03

相关文章

取消
微信二维码
支付宝二维码

发表评论

暂无评论,1人围观

目录[+]