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