Linux网络服务:DNS配置实验

前言:

域名解析是把域名指向网站空间IP,让人们通过注册的域名可以方便地访问到网站的一种服务。IP地址是网络上标识站点的数字地址,为了方便记忆,采用域名来代替IP地址标识站点地址。域名解析就是域名到IP地址的转换过程。域名的解析工作由DNS服务器完成。

域名解析也叫域名指向、服务器设置、域名配置以及反向IP登记等等。说得简单点就是将好记的域名解析成IP,服务由DNS服务器完成,是把域名解析到一个IP地址,然后在此IP地址的主机上将一个子目录与域名绑定。

互联网中的地址是数字的IP地址,域名解析的作用主要就是为了便于记忆

一、BIND域名服务基础

1.1 DNS系统的作用
  • 正向解析:根据主机名称(域名)查找对应的IP地址

  • 反向解析:根据IP地址查找对应的主机域名

  • DNS 系统的分布式数据结构:
    在这里插入图片描述
    以www.sina.com.cn为例分析:
    在这里插入图片描述

1.2 DNS系统类型

实际上,每一台DNS服务器都只负责管理一个有限范围(一个或几个域)内的主机域名和IP地址的对应关系,这些特定的DNS域或IP地址段称为“zone”(区域)

根据地址解析的方向不同,DNS区域相应地分为正向区域(包含域名到IP地址的解析记录,)和反向区域(包含IP地址到域名的解析记录)

根据所管理的区域数据的来源不同,DNS系统可分为不同类型,常见类型有:

  • 缓存域名服务器

也称为告诉缓存服务器

通过向其他域名服务器查询获得域名->IP地址记录

将域名查询结果缓存到本地,提高重复查询时的速度

  • 主域名服务器

维护某一个特定DNS区域的地址数据库,对其中的解析记录具有自主控制权,是指定区域中唯一存在的权威服务器,官方服务器。

构建主域名服务器时,需要自行建立所负责区域的地址数据文件

  • 从域名服务器

与主域名服务器提供完全相同的DNS解析服务,通常用于DNS服务器的热备份。

构建从域名服务器时,需要指定主域名服务器的位置,以便服务器能自动同步区域的地址数据库

二、使用BIND构建域名服务器

2.1 BIND安装文件

BIND不是唯一能够提供域名服务的DNS服务程序,但它是应用最广泛的,BIND可以允许在大多数Linux/UNIX主机中

  • BIND

伯克利internet域名服务

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

可以直接使用yum安装

  • 相关软件包
    在这里插入图片描述

  • BIND服务器程序

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

默认监听端口:53

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

保存DNS解析记录的数据文件位于:/var/named/

2.2 主配置文件
  • BIND配置文件
[root@localhost ~]# rpm -qc bind
/etc/logrotate.d/named
/etc/named.conf
/etc/named.iscdlv.key
/etc/named.rfc1912.zones
/etc/named.root.key
/etc/rndc.conf
/etc/rndc.key
/etc/sysconfig/named
/var/named/named.ca
/var/named/named.empty
/var/named/named.localhost
/var/named/named.loopback
  • 全局配置部分

设置DNS服务器的全局参数

包括监听地址/端口,数据文件的默认位置等

使用options{…};的配置段

[root@localhost ~]# vi /etc/named.conf
options {
        listen-on port 53 { 127.0.0.1; };
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        recursing-file  "/var/named/data/named.recursing";
        secroots-file   "/var/named/data/named.secroots";
        allow-query     { localhost; };
......省略部分内容
  • 区域配置文件

设置本服务器提供域名解析的特定DNS区域

包括域名、服务器角色、数据文件名等

使用zone “区域名” IN{…};的配置段
在这里插入图片描述

  • 区域数据配置文件

全局TTL配置项及SOA记录

$TTL(Time To live,生存时间)记录

SOA (Start Of Authority,授权信息开始)记录

分号 “;” 开始的部分表示注释信息

[root@localhost ~]# vi /var/named/named.localhost 
$TTL 2D
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      @
        A       127.0.0.1
        AAAA    ::1

域名解析记录

NS 域名服务器记录

MX 邮件交换记录

A 地址记录,只用在正向解析区域中

CNAME 别名记录

例如:

@		IN		NS	    ns1.bdqn.com
		IN		MX 10   mail.bdqn.com
ns1		IN		A	    58.119.74.203
www		IN		A		173.16.16.1
mail	IN		A		173.16.16.4
ftp		IN		CNAME	WWW

反向区域数据文件

在反向区域数据文件中,不会用到A地址记录,而是使用PTR指针(print)记录

例如,对于反向区域10.168.192.in-addr.arpa,添加的反向解析记录可以是以下形式

1 IN PTR www.eee.com.	"表示IP地址为192.168.192.1的主机域名是www.eee.com"
2 IN PTR mail.eee.com.  "表示IP地址为192.168.192.5的主机域名是mail.eee.com"
  • 使用netstat命令查看服务状态
[root@localhost ~]# netstat -ntap | grep named
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      44453/named         
tcp        0      0 127.0.0.1:953           0.0.0.0:*               LISTEN      44453/named         
tcp6       0      0 ::1:53                  :::*                    LISTEN      44453/named         
tcp6       0      0 ::1:953                 :::*                    LISTEN      44453/named 
[root@localhost ~]# netstat -nuap | grep named
udp        0      0 127.0.0.1:53            0.0.0.0:*                           44453/named         
udp6       0      0 ::1:53                  :::*                                44453/named   
2.2 区域数据配置文件的特殊应用
  • 基于域名解析的负载均衡

同一域名对应到多个IP地址

  • 泛域名解析

找不到精确对应的A记录时,可以使用“*” 进行匹配

www		IN	A		192.168.100.100	  "轮流负载均衡"
www		IN	A		192.168.100.101
www		IN	A		192.168.100.102   
*		IN	A		192.168.100.100  "泛域名解析"

2.2.1对配置文件进行语法检查

named-checkconf 工具

named-checkconf -z [主配置文件]

[root@localhost ~]# named-checkzone kgc.com /var/named/kgc.com.zone 
zone kgc.com/IN: kgc.com/MX 'mail.kog.com' (out of zone) is a CNAME 'mail.kog.com.netsolmail.net' (illegal)
zone kgc.com/IN: loaded serial 0
OK
[root@localhost ~]# named-checkconf -z /etc/named.conf 
zone localhost.localdomain/IN: loaded serial 0
zone localhost/IN: loaded serial 0
zone 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa/IN: loaded serial 0
zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0
zone 0.in-addr.arpa/IN: loaded serial 0 

三、使用BIND构建域名服务器(实验)

环境:开启两台虚拟机,将centos7-1与centos7-2模拟为主、从DNS服务器,使用yum 安装“bind”软件包。

centos7-1 IP地址为:192.168.181.130

centos7-2 IP地址为:192.168.181.133

  • 修改全局配置文件

修改两台服务器的全局配置文件,修改内容如下:

[root@localhost ~]# vi /etc/named.conf
options {
        listen-on port 53 { any; };   “修改为any”
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        recursing-file  "/var/named/data/named.recursing";
        secroots-file   "/var/named/data/named.secroots";
        allow-query     { any; };  “修改为any”
  • 修改区域配置文件

主服务器(centos7-1):

centos7-1(主服务器):
[root@localhost ~]# vi /etc/named.rfc1912.zones
zone "ceshi.com" IN {    “设置主服务器域名”
        type master;      “类型,主域名服务器”
        file "ceshi.com.zone";    “主服务器区域数据文件名”
        allow-transfer { 192.168.181.133; };  “设置从域名服务器”
};
...............省略部分内容

从服务器(centos7-2)

centos7-2(从服务器):
[root@localhost ~]# vi /etc/named.rfc1912.zones
zone "ceshi.com" IN {   “设置从服务器域名”
        type slave;     “类型,从域名服务器”
        file "slaves/ceshi.com.zone";  “从服务器区域数据文件名”
        masters { 192.168.181.130; };  “设置主域名服务器”
};
...........省略部分内容
  • 修改区域数据配置文件

进入区域数据配置文件目录,复制named.localhost模板,复制文件名为ceshi.com.zone。

[root@localhost named]# cp -p named.localhost ceshi.com.zone
[root@localhost named]# ls
ceshi.com.zone  dynamic   named.empty      named.loopback
data            named.ca  named.localhost  slaves

复制成功后我们可以在当前目录中看到“slaves” 这就是从服务器的区域数据配置文件。

只修改主服务器,从服务器会自动同步主服务器,现在编辑主服务器数据配置文件

[root@localhost opt]# vi /var/named/named.localhost 
$TTL 1D
@       IN SOA  ceshi.com. rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      ceshi.com.
        A       192.168.181.130    (本地DNS服务器地址)
IN MX   10      mail.ceshi.com.    (邮箱地址)
www IN  A       192.168.181.99     (解析www.ceshi.com时的IP地址)
ftp IN  A       192.168.181.88	   (解析ftp.ceshi.com时的IP地址)
smtp IN CNAME   www                (解析smtp.ceshi.com时导向www.ceshi.com的IP地址)
*   IN  A       8.8.8.8		   (泛域名解析时的地址)

其中 :

D :代表天

H :代表时

W:代表周

M:代表分

  • 关闭主、从服务器的防火墙和增强性安全功能
[root@localhost named]# systemctl stop firewalld.service 
[root@localhost named]# setenforece 0
  • 开启一台win10虚拟机用于测试

第一步:关闭win10防护墙

第二步:更改win10网卡DNS服务器的地址:
在这里插入图片描述

第三步:cmd进入命令提示符界面,使用nslookup验证:
在这里插入图片描述

总结:

在配置DNS服务器的时候,要注意区域配置文件与区域数据配置文件中的标点符号, 少或者多一个都有可能导致bind服务无法开启。
我们的实验暂时都是在步设计防火墙的过程中进行,所以需要关闭防火墙与增强性安全功能,后期将介绍如何配置防火墙,允许指定主机向内访问DNS服务器主机的流程。

发布了48 篇原创文章 · 获赞 46 · 访问量 6617

猜你喜欢

转载自blog.csdn.net/weixin_45726050/article/details/103435826
今日推荐