DNS服务搭建

 DNS的查询方式

迭代查询

迭代查询是指DNS客户端向DNS服务器发送一个请求,该服务器返回其所负责的一部分域名信息,让客户端接管查询的任务。客户

端再向这个所负责的一部分域名信息中的另一个DNS服务器发出查询请求,直到最终查询得到结果为止。

 

递归查询

递归查询是指DNS客户端向DNS服务器发送一个请求,该服务器要么返回请求的结果,要么告诉客户端需要向其他服务器继续查询。

在这种情况下,DNS服务器会承担着不断查询并返回结果的角色。

 

一般而言,递归查询仅在本地DNS服务器上进行,如果该本地服务器没有所需的DNS记录,会向其他DNS服务器继续发送请求。

而迭代查询则是在以上过程中DNS服务器之间进行的,所请求的域名信息会被分割成若干片段,由不同的DNS服务器负责逐一查询并返回结果。 

 

 

主配置文件:/etc/named.conf #设置负责解析的域名

地址库文件:/var/named #完全合格的域名与IP地址对应关系

DNS默认端口:53

主配置文件:/etc/named.conf 基础配置如下

options {                              #options:全局配置选项
    directory "/var/named";            #配置DNS服务器数据文件存储路径
    listen-on port 53 { any; };        #配置DNS服务器需要监听的端口和IP地址
    allow-query { any; };              #配置DNS服务器允许哪些IP地址查询该服务器
    forwarders { 8.8.8.8; 8.8.4.4; };  #配置转发DNS请求到其他DNS服务器的IP地址
    recursion yes;                     #是否开启DNS递归查询功能
};

zone "." {                    #DNS服务器需要管理的区域
    type hint;                #区域的类型
    file "named.ca";          #存储区域数据的文件名
};

配置步骤示例

1、安装软件包

#bind(主程序)
#bind-chroot(提供牢笼政策)
[root@node1 named]# yum  -y  install   bind    bind-chroot     

2、修改主配置文件

[root@node1 named]# cat /etc/named.conf 
options {
        directory       "/var/named";
};

zone "test.com" IN {
        type master;
        file "test.com.zone";
};

3、-p复制,保持文件权限不变

[root@node1~]# cd /var/named/ 
[root@node1 named]# cp -p named.localhost test.com.zone

4、建立地址库文件

[root@node1 named]# cat /var/named/test.com.zone 
$TTL 1D
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
test.com. NS    node1    #声明DNS的服务器
node1   A       192.168.1.230   #DNS服务器的地址
www     A       192.168.1.10

5、修改配置后重启服务

[root@node1 named]# systemctl restart named

6、查看服务状态

[root@node1 named]# systemctl status named
● named.service - Berkeley Internet Name Domain (DNS)
   Loaded: loaded (/usr/lib/systemd/system/named.service; disabled; vendor preset: disabled)
   Active: active (running) since Fri 2023-06-16 19:21:28 CST; 8min ago
  Process: 4801 ExecStop=/bin/sh -c /usr/sbin/rndc stop > /dev/null 2>&1 || /bin/kill -TERM $MAINPID (code>
  Process: 4818 ExecStart=/usr/sbin/named -u named -c ${NAMEDCONF} $OPTIONS (code=exited, status=0/SUCCESS)
  Process: 4814 ExecStartPre=/bin/bash -c if [ ! "$DISABLE_ZONE_CHECKING" == "yes" ]; then /usr/sbin/named>
 Main PID: 4819 (named)
    Tasks: 5 (limit: 7994)
   Memory: 14.7M
   CGroup: /system.slice/named.service
           └─4819 /usr/sbin/named -u named -c /etc/named.conf

6月 16 19:21:28 node1 named[4819]: configuring command channel from '/etc/rndc.key'
6月 16 19:21:28 node1 named[4819]: command channel listening on 127.0.0.1#953
6月 16 19:21:28 node1 named[4819]: configuring command channel from '/etc/rndc.key'
6月 16 19:21:28 node1 named[4819]: command channel listening on ::1#953
6月 16 19:21:28 node1 named[4819]: managed-keys-zone: loaded serial 0
6月 16 19:21:28 node1 named[4819]: zone tarena.com/IN: loaded serial 0
6月 16 19:21:28 node1 systemd[1]: Started Berkeley Internet Name Domain (DNS).
6月 16 19:21:28 node1 named[4819]: all zones loaded
6月 16 19:21:28 node1 named[4819]: running
6月 16 19:21:28 node1 named[4819]: zone tarena.com/IN: sending notifies (serial 0)

7、编写客户端的DNS指定服务器文件

[root@node2 ~]# echo nameserver 192.168.1.230 > /etc/resolv.conf

8、客户端测试DNS是否配置成功

[root@node2 ~]# nslookup www.test.com
Server:         192.168.1.230
Address:        192.168.1.230#53

Name:   www.test.com
Address: 192.168.1.10

 

posted @ 2023-06-17 09:18  小小一兆  阅读(95)  评论(0编辑  收藏  举报