DNS服务(一)

DNS服务概述

简介

DNS 是域名系统 (Domain Name System) 的缩写,是一种组织成域层次结构的计算机和网络服务命名系统,它作为可以将域名和 IP 地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的 IP 数串。

简单的概括如下图:

在这里插入图片描述

如上图所示,我们客户机需要访问http://www.baidu.com这个网站,在浏览器中输入http://www.baidu.com后,浏览器首先访问的是DNS服务器,从DNS服务器那里得到http://www.baidu.com的IP地址,然后使用IP访问web服务器,从而完成整个通信过程。这里可以清晰的知道,dns的主要工作就是把域名转换成相应的IP地址。这里,域名是不恰当的,通常情况下我们请求的名称称之为FQDN:Full Qualified Domain Name,完全合格域名。

DNS服务器分类

1)主域名服务器(primary Name Server) 主域名服务器是特定域所有信息的权威来源,从域管理员构造的本地文件中加载域信息,该文件包含服务器具有的部分域结构的最精确信息。主域名服务器需要配置一组完整的文件。

2)辅助域名服务器(Second Name Server) 辅助域名服务器用来从主域名服务器中转移一整套域信息,它是可选的配置选项。区文件从主域名服务器转移出来,作为磁盘文件保存在辅助域名服务器中。辅助域名服务器不需要配置本地区文件,只需要配置主配置文件(named.conf),高速缓存初始化文件(named.ca)和回送文件(named.local)。

3)唯高速缓存域名服务器(Cache-only Server) 不包含域名数据库,它每次从某台远程服务器取得域名服务器查询的信息。一旦取得一个回答,就将它放入高速缓存中,下次查询相同的信息就用此回答。

域名层次结构

DNS作为一种基础性的服务,需要相应的请求量是惊人的,为了应对海量数据的情况,便于管理,它采取了分层机构。如下图所示:
在这里插入图片描述

通常 Internet 主机域名的一般结构为:主机名.三级域名.二级域名.顶级域名. 。

举例:

以tieba.baidu.com为例,正确的域名划分为:

.com 顶级域名
.baidu.com 二级域名
.tieba.baidu.com 三级域名
.detail.tieba.baidu.com 四级域名
(其他级别域名以此类推)

树的每个级别可以表示一个分支或树的叶。 分支是多个名称用于标识命名的资源的集合级别。 叶代表单个名称在该级别上一次用来指示特定的资源。

在这里插入图片描述

常见 DNS 顶级域名称

DNS 域名称 组织类型

com 商业公司

edu 教育机构

net 网络 (Internet 的主干网)

gov 非军事政府机构

org 组织、机构

DNS原理

在这里插入图片描述

一次完整的查询请求经过的流程:

Client -->hosts文件 -->DNS Service Local Cache --> DNS Server(recursion) --> Server Cache --> iteration(迭代) --> 根–>顶级域名DNS–>二级域名DNS…

DNS查询方式

递归查询和迭代查询

在这里插入图片描述

区域文件内各种记录类型

常见 DNS 记录类型

记录类型 描述

SOA 记录 域权威记录,说明本机服务器为该域的管理服务器

NS 记录 域名服务器记录

A 记录 正向解析记录,域名到 IP 地址的映射

PTR 记录 反向解析记录,IP 地址到域名的映射

CNAME 记录 别名记录,可以将注册的不同域名都转到一个域名记录上,由这个域名记录统一解析管理,与A记录不同的是,CNAME别名记录设置的可以是一个域名的描述而不一定是IP地址!

MX 记录 邮件记录,指定域内的邮件服务器,需要指定优先级

正向解析和反向解析 ① 正向解析:将域名解析为对应的 IP,这是 DNS 服务器最基本的功能,也是最常用的功能 ② 反向解析:把 IP 解析为对应的域名

注意:邮件服务可能会用到域名反向解析结果实施访问控制策略;若缺少对应的反向解析记录可能会被列入“黑名单”中,导致接收不到邮件!

主DNS正向区域配置

提供 DNS 服务的软件目前主流是美国伯克利加州大学研发的 BIND(Berkeley Internet Name Domain)。该项目出了 BIND 主程序外,在 Linux 平台下还提供了 chroot 与 utils 软件包,bind-chroot 软件包主要功能是让 BIND 软件可以运行在 chroot 默认下,这样 BIND 运行在相对路径的根路径,而不是 Linux 的真正根路径,即使有人对 BIND 软件进行攻击与破坏,影响的也仅仅是系统的一个子目录,不会影响整个操作系统,以此来提高系统的安全性。 另外 bind-utils 软件包提供了一些 DNS 查询工具,比如 dig、nslookup 等。

下载安装

yum -y install bind
/etc/init.d/named start #启动
chkconfig named on #添加开机自启
ss -lntp|grep named #查看bind端口

DNS默认使用UDP、TCP协议,使用端口为53(客户端查询),953(主从服务器同步)
bind-chroot 安装bind-chroot软件,将DNS服务锁定在指定的工作目录,安全
bind-utils (安装DNS查询工具软件, 提供nslookup及dig等测试工具,默认桌面版已经安装)
caching-nameserver (安装高速缓存服务器配置文件,建议一定安装)(有的版本不需要)

配置详解

Bind服务的结构及含义:

主要配置 含义
主程序 (/usr/sbin/named) 程序启动时运行的服务

主配置文件(/etc/named.conf) 主要用来定义bind服务程序的运行

区域配置文件(/etc/named.rfc1912.zone) 用来保存域名和IP地址对应关系的所在位置

数据配置文件目录(/var/named) 用来保存域名和IP地址真实的对应关系的数据配置文件

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

options :对全局生效,定义了监听地址和端口,目录,临时目录,状态目录等配置信息

logging : 日志信息

zone : 针对某个区域生效

注意:在配置时要用“{}”括起来,用“;”结束。

区域类型:type:用来定义一个区域的类型。

常见的区域类型有3个。

① hint:默认的DNS根的类型为hint型。

② master:指定一个区域为主域名服务器。

③ slave: 指定一个区域为辅助域名服务器。

默认主配置文件:

options 为全局配置
options {
# 监听端口 53 在 127.0.0.1 上
listen-on port 53 { 127.0.0.1; };

    # 监听端口 53 在 ipv6 回环接口上
    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";

    # 允许进行DNS查询客户机的地址
    allow-query     { localhost; };

    # 是否允许客户机进行递归查询
    recursion yes;

    # 是否开启 dnssec,建议测试时关闭
    dnssec-enable yes;

    # 是否开启 dnssec 验证
    dnssec-validation yes;

    /* Path to ISC DLV key */
    bindkeys-file "/etc/named.iscdlv.key";

    # 管理密钥文件的位置
    managed-keys-directory "/var/named/dynamic";

};

logging 为日志
logging {
# channel 定义通道名
channel default_debug {
# 日志文件 位于 /var/named/data/named.run
file “data/named.run”;

            # 控制日志级别
            severity dynamic;
    };

};

定义 区域名为"."
zone “.” IN {
# 类型为 根
type hint;
# 区域解析库文件名,此处为默认根服务器地址
file “named.ca”;
};

扩展区域配置文件
include “/etc/named.rfc1912.zones”;
根区域的 key
include “/etc/named.root.key”;

DNS中zone文件的放置/var/named/*.zone(与named.conf中的zone对应的文件)

zone文件的书写格式:

$TTL 1D //用宏定义一个TTL默认值为1天,下面数据直接引用此值.
@ [TTL] IN SOA 主DNS服务器FQDN 管理员邮箱 (

                                    0       ; 序列号
                                    1D      ; 更新间隔
                                    1H      ; 更新失败后重试间隔
                                    1W      ; 过期时长
                                    3H )    ; 否定记录保存时长

资源类型:A(IPv4), AAAA(IPv6):定义FQDN的IP
NS : 定义DNS服务器的FQDN
SOA : 起始授权(每个zone首先要定义此值)
MX: 定义邮件记录,有优先级概念(0-99),值越小优先级越高。
CNAME: 定义别名
PTR: 反向记录

DNS主服务器之正向解析

环境介绍:

10.0.0.46 DNS服务器
10.0.0.47 www.bw.com需要解析到的服务器

修改主配置文件

[root@ localhost ~]# cat /etc/named.conf 

options {
   
	listen-on port 53 {
    any; };
	listen-on-v6 port 53 {
    any; };
	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; };

	/* 
	 - If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.
	 - If you are building a RECURSIVE (caching) DNS server, you need to enable 
	   recursion. 
	 - If your recursive DNS server has a public IP address, you MUST enable access 
	   control to limit queries to your legitimate users. Failing to do so will
	   cause your server to become part of large scale DNS amplification 
	   attacks. Implementing BCP38 within your network would greatly
	   reduce such attack surface 
	*/
	recursion yes;

	dnssec-enable yes;
	dnssec-validation yes;

	/* Path to ISC DLV key */
	bindkeys-file "/etc/named.root.key";

	managed-keys-directory "/var/named/dynamic";

	pid-file "/run/named/named.pid";
	session-keyfile "/run/named/session.key";
};

logging {
   
        channel default_debug {
   
                file "data/named.run";
                severity dynamic;
        };
};

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


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

创建正向解析文件: 创建并编辑正向解析文件bw.com.zone(文件名要和name.conf文件中定义的zone file名一致)

cp -p #赋值并保持属性

cp -p /var/named/named.
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值