linux中DNS服务器搭建

DNS服务器构建

DNS服务器的功能

正向解析:根据注册的域名查找其对应的IP地址

反向解析:根据ip查找其对应的域名

—二者各有各的配置,不能一概而论

DNS服务器分类:

根域名服务器、一级DNS服务器、二级DNS服务器、三级DNS服务器

在这里插入图片描述

域名系统: 所有的域名都必须要以点作为结尾,树型结构

www.qq.com www.qq.com.

游览器会自动在域名后面加.

根域名 : .

一级域名 .com 、.org(开源)、 .cn(中国) 、.us(美国)、 .tw 、.hk(香港) 、.jp(日本)、 .kr …

二级域名: .haha.cn 、.nb.cn 、.one.cn …

三级域名: test.nb.cn 、tts.nb.cn、 abc.nb.cn ……

Full Qualified Domain Name

FQDN(完全合格的域名):站点名+注册的域名

例子: haha.com 首页:www.haha.com

​ 邮件:mail.haha.com

​ 会员:vip.haha.com

BIND(Berkeley Internet Name Daemon)

​ –伯克利 Internet 域名服务

​ –官方站点:https://www.isc.org/

• BIND服务器端程序

​ –主要执行程序:/usr/sbin/named

​ –系统服务:named

​ –DNS协议默认端口:53

​ –运行时的虚拟根环境:/var/named/chroot

安装bind后会自动添加用户named负责dns

在这里插入图片描述
【建议在实验中cp -p 备份主配置文件,-p保持权属不变】
在这里插入图片描述
•主配置文件:/etc/named.conf #设置负责解析的域名

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

例如: www.haha.com 192.168.1.1

​ mail.haha.com 192.168.44.1

​ dnf.haha.com 192.168.55.2

•修改示例

•主配置文件:/etc/named.conf

options {
listen-on port 53 { any; }; #监听本机所有地址的53端口
listen-on-v6 port 53 { ::1; }; #必须删除,关于IPv6地址
……此处省略一万字
allow-query { any; }; #允许所有客户端进行DNS查询
……此处省略一万字
recursion yes; #支持递归查询
zone "." IN {
type hint;
file "named.ca";
};
zone "tedu.cn" IN {
type master;
file "tedu.cn.zone";
};
……此处省略一万字
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

•地址库文件: 完整示例

$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
tedu.cn. NS server.tedu.cn.
server.tedu.cn. A 192.168.88.240
www.tedu.cn. A 1.1.1.1
ftp.tedu.cn. A 2.2.2.2

虚拟机A:构建DNS服务器

1.安装软件包

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

2.修改主配置文件

[root@server ~]# cp -p /etc/named.conf  /root #备份数据[root@server ~]# ls  -l    /root/named.conf
[root@server ~]# vim  /etc/named.conf    #大致浏览内容[root@server ~]# vim   /etc/named.conf
					options  {                          
					              directory     "/var/named";   #定义地址库文件存放路径
					              };
		zone "tedu.cn"  IN {   #定义负责的解析tedu.cn域名        										
		                     type  master;        #权威主DNS服务器
    						         file   "tedu.cn.zone";     #地址库文件名称
    						         };

3.建立地址库文件

保证named用户对地址库文件有读取权限

如果没有以点作为结尾,那么默认补全本地库文件负责的域名

[root@server ~]# cd    /var/named/      
[root@server ~]# cp  -p  named.localhost  tedu.cn.zone   #保持权限不变
[root@server ~]# ls   -l   xixi.com.zone   
[root@server ~]# vim     /var/named/xixi.com.zone 
							……此处省略一万字
NS   server      #声明DNS服务器为server
server   A   192.168.88.240    #server解析结果为192.168.88.240
#dns 地址池
www      A   1.1.1.1
ftp      A   2.2.2.2

[root@server named]# systemctl   restart    named

虚拟机B:测试DNS服务器

1.指定DNS服务器地址

[root@server ~]# echo nameserver  192.168.88.240  >  /etc/resolv.conf
[root@server ~]# cat  /etc/resolv.conf

2.命令测试域名解析

[root@server ~]# nslookup    www.xixi.com
[root@server ~]# host   www.xixi.com

/etc/hosts文件与/etc/resolv.conf文件

1./etc/hosts文件域名解析最高优先级
2./etc/resolv.conf文件指定DNS服务器地址

特殊解析

•DNS的泛域名解析

虚拟机A:

[root@server /]# vim   /var/named/tedu.cn.zone
……此处省略一万字                  
NS    server                       
server           A      192.168.88.240

www              A      1.1.1.1
ftp              A      2.2.2.2
*                A      6.6.6.6
tedu.cn.         A      7.7.7.7

[root@server /]# systemctl   restart    named

虚拟机B测试:

[root@pc2 /]#  nslookup    wwwwww.tedu.cn
[root@pc2 /]#  nslookup     tedu.cn

在这里插入图片描述

DNS有规律的泛域名解析

pc1.xixi.com-------->192.168.1.1

pc2.xixi.com-------->192.168.1.2

pc3.xixi.com-------->192.168.1.3

pc4.xixi.com-------->192.168.1.4

pc50.xixi.com-------->192.168.1.50

内置函数:$GENERATE 制造连续的数字

虚拟机A:

[root@server /]# vim   /var/named/xixi.com.zone
……此处省略一万字                 
NS    server                       
server           A      192.168.88.240
www              A      1.1.1.1
$GENERATE  1-50   pc$    A      192.168.1.$
[root@server /]# systemctl   restart    named

虚拟机B测试:

[root@pc2 /]#  nslookup    pc1.xixi.com
[root@pc2 /]#  nslookup     pc23.xixi.com

在这里插入图片描述

•DNS的解析记录的别名

虚拟机A:

[root@server /]# vim    /var/named/xixi.com.zone
#……此处省略一万字          
NS     serverserver    A      192.168.88.240
www          A   1.1.1.1
ftp       A      2.2.2.2
vip       CNAME    ftp      #vip解析结果与ftp解析结果一致[root@server /]# systemctl   restart    named

虚拟机B:测试

[root@pc2 ~]# nslookup    vip.xixi.com

在这里插入图片描述

DNS服务器资源解析记录的类型:

NS:DNS服务器声明记录

A:正向解析记录

CNAME:解析记录的别名

/etc/hosts

/etc/resolv.conf

递归查询(递归解析)与迭代查询(迭代解析)

递归查询:客户端发送请求给首选DNS服务器,首选DNS服务器与其他的DNS服务器交流,最终将解析结果带回来过程

在这里插入图片描述

迭代查询: 客户端发送请求给首选DNS服务器,首选DNS服务器告知下一个DNS服务器地址

常见DNS工单要求

DNS服务器搭建要求:

实现DNS服务器,在192.168.88.240上构建

负责域名为sina.com,实现站点名www的解析

实现www.sina.com解析结果为192.188.16.17

虚拟机A     
1.安装软件包bind与bind-chroot
2.修改主配置文件
[root@server /]# vim         /etc/named.conf
........此处省略一万字
zone    "sina.com"    IN {        
												type    master; 
                        file    "sina.com.zone";
                        };
3.建立地址库文件
[root@server ~]# cd     /var/named/
[root@server ~]# cp  -p    named.localhost     sina.com.zone
[root@server ~]# vim    sina.com.zone
             ........此处省略一万字               
NS      server
server         A       192.168.88.240
www            A       192.188.16.17
[root@server /]# systemctl    restart    named

综合实战

关闭防火墙与SELinux

虚拟机A:

\1. 构建Web服务器

[root@server /]# yum   -y  install   httpd   

\2. 建立配置文件

[root@server /]# vim  /etc/httpd/conf.d/nsd01.conf  #建立调用配置文件
<VirtualHost   *:80>                  #启用虚拟Web主机功能,使用80端口   ServerName  www.qq.com        #网站名称   
DocumentRoot  /var/www/qq    #网页文件路径
</VirtualHost>
<VirtualHost   *:80> 
ServerName  360.qq.com   
DocumentRoot  /var/www/360
</VirtualHost>

\3. 建立网站

[root@server /]#  mkdir  /var/www/qq   /var/www/360
[root@server /]# echo  wo  shi QQ  >  /var/www/qq/index.html
[root@server /]# echo  wo shi 360  >  /var/www/360/index.html

\4. 重启服务

[root@server /]# systemctl    restart   httpd

5.构建DNS服务器

[root@server /]# yum   -y    install   bind    bind-chroot

6.主配置文件的修改

[root@server /]# vim  /etc/named.conf
 options {        
           directory       "/var/named";   #地址库文件存放路径
        };
 zone "tedu.cn" IN {        
        type master;        
        file "tedu.cn.zone";
        };
 zone "qq.com" IN {          
 #定义负责解析qq.com域名        
 type master;               #类型主DNS服务器        
 file "qq.com.zone";   #地址库文件名称
       };

7.地址库文件的建立

[root@server ~]# cd   /var/named/
[root@server ~]# cp  -p  named.localhost  tedu.cn.zone  #保持权限不变
[root@server ~]# ls   -l   tedu.cn.zone
[root@server ~]# vim     tedu.cn.zone     
……此处省略一万字
        NS     server         #声明DNS服务器为server
server       A     192.168.88.240  #server解析结果为192.168.88.240
www        A        1.1.1.1
ftp            A         2.2.2.2
[root@server ~]# cp -p  named.localhost    qq.com.zone
[root@server ~]#  vim     qq.com.zone
$TTL 1D
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
               NS    server
server      A    192.168.88.240   #DNS服务器的IP地址
www       A    192.168.88.240   #由于Web服务器也是192.168.88.240
360         A     192.168.88.240  #解析结果要写Web服务器地址

在这里插入图片描述

8.重启服务

[root@server /]# systemctl  restart  named

虚拟机B测试:(避免/etc/hosts文件影响)

[root@pc2 ~]# echo   nameserver   192.168.88.240  >  /etc/resolv.conf
[root@pc2 ~]# nslookup www.qq.com
Server:         192.168.88.240
Address:        192.168.88.240#53
Name:   www.qq.com
Address: 192.168.88.240
[root@pc2 ~]# nslookup   360.qq.com
Server:         192.168.88.240
Address:        192.168.88.240#53
Name:   360.qq.com
Address: 192.168.88.240
[root@pc2 ~]#
[root@pc2 ~]# curl 360.qq.com
wo shi 360
[root@pc2 ~]# curl www.qq.com
wo shi QQ
[root@pc2 ~]#

案例:搭建单区域DNS服务器

问题

本例要求要求为DNS区域tedu.cn搭建一台DNS服务器,以便用户能通过域名的方式访问网站。测试阶段主要提供以下正向记录:

  1. svr1.tedu.cn —> 192.168.88.240
  2. pc2.tedu.cn —> 192.168.88.2
  3. www.tedu.cn —> 192.168.4.100

配置完成后在客户机上验证查询结果。

方案

快速构建DNS服务器的基本过程:

  1. 安装 bind、bind-chroot 包
  2. 建立主配置文件 /etc/named.conf
  3. 建立地址库文件 /var/named/… …
  4. 启动 named 服务

配置及使用DNS客户端的基本过程:

  1. 修改配置文件/etc/resolv.conf,添加nameserver=DNS服务器地址
  2. 使用host命令查询,提供目标域名作为参数
步骤

实现此案例需要按照如下步骤进行。

步骤一:配置DNS服务器svr1

1)安装 bind、bind-chroot 包

[root@svr1 ~]# yum  -y  install  bind  bind-chroot.. ..

2)建立主配置文件 /etc/named.conf

[root@svr1 ~]# mv  /etc/named.conf  /etc/named.conf.origin          //备份默认配置
[root@svr1 ~]# vim  /etc/named.conf     //建立新配置
options {    directory  "/var/named";   //地址库默认存放位置
         };
zone  "tedu.cn" {        //定义正向DNS区域   
			type  master;        //主区域    
			file  "tedu.cn.zone";     //自定义地址库文件名};

3)建立地址库文件 /var/named/tedu.cn.zone

[root@svr1 ~]# cd  /var/named/                              //进地址库目录
[root@svr1 named]# cp  -p  named.localhost  tedu.cn.zone      //参考范本建地址库文件
[root@svr1 named]# vim  tedu.cn.zone                          //修订地址库记录
$TTL 1D                                          //文件开头部分可保持不改
@   IN SOA  @ rname.invalid. (
                    0   ; serial
                    1D  ; refresh
                    1H  ; retry
                    1W  ; expire
                    3H )    ; minimum
@       NS  svr1                          //本区域DNS服务器的FQDN
svr1    A   192.168.88.240                         //为NS主机提供A记录
pc2   A   192.168.88.2                         //其他正向地址记录.. ..
www  A   192.168.4.100

4)启动 named 服务,并设置开机自启

[root@svr1 named]# systemctl  restart  named  
[root@svr1 named]# systemctl  enable  named
Created symlink from /etc/systemd/system/multi-user.target.wants/named.service to /usr/lib/systemd/system/named.service.

步骤二:配置DNS客户机pc2并测试

1)修改配置文件/etc/resolv.conf,指定默认使用哪一台DNS服务器

[root@pc2 ~]# vim  /etc/resolv.conf nameserver  192.168.88.1.. ..

2)使用host命令查询,提供目标域名作为参数

[root@pc2 ~]# host  svr1.tedu.cn
svr1.tedu.cn has address 192.168.88.240
[root@pc2 ~]# host  pc2.tedu.cn
pc2.tedu.cn has address 192.168.88.2
[root@pc2 ~]# host  www.tedu.cn
www.tedu.cn has address 192.168.4.100

使用host测试DNS查询结果时,如果不方便修改/etc/resolv.conf文件,也可以采用“host 目标域名 DNS服务器地址”形式临时指定使用哪一台DNS服务器。

[root@pc2 ~]# host  pc2.tedu.cn  192.168.88.240
Using domain server:
Name: 192.168.88.1
Address: 192.168.88.1#53
Aliases: 
pc2.tedu.cn has address 192.168.88.2
  • 16
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值