小阿轩yx-DNS域名解析服务

39 篇文章 0 订阅
7 篇文章 0 订阅

小阿轩yx-DNS域名解析服务

DNS 服务介绍

DNS是英文Domain Name System的缩写,翻译过来就是域名解析系统。

它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。

  • 协议:UDP协议
  • 架构:C/S

DNS 系统的作用

DNS系统在网络中的作用就是维护一个地址数据库,其中记录了各种主机域名与IP地址的对应关系,以便为客户程序提供正向或反向的地址查询服务,即正向解析和反向解析;

  • 正向解析:根据域名查找对应的IP地址,域名的正向解析是 DNS 服务器最基本的功能,也是最常用的功能
  • 反向解析:根据IP地址查找对应的域名,即将指定的 IP 地址解析为相对应的域名。域名的
    反向解析不是很常用,只在一些特殊场合才会用到,比如可用于反垃圾邮件的验证

DNS 域名解析服务的应用场景

A.公司内部

DNS 系统的介绍

Internet 域名空间的最顶层是根域(.) 

  • 全球有 13 台根服务器

                a、b、c、d、e、f、g、h、i、j、k、l、m(A)是IPV4的地址

                        (一台在日本、两台在欧洲、剩下的都在美国本土)

                        m. root-servers.net.       518400        IN      A  202.12.27.33服务器在日本

                        k. root-servers.net.        518400        IN      A  193.0.14.129服务器在欧洲英国伦敦

                        i. root-servers.net.        518400        IN       A 192.30.148.17服务器在欧洲瑞典

                a、b、c、d、e、f、g、h、i、j、k、l、m(AAAA)是IPV6的地址

  • 1 个主根域名服务器
  • 12 个辅根域名服务器

DNS 根域下面是顶级域

由 Internet 域名注册授权机构管理。共有 3 种类型的顶级域

  • 国际顶级域名:采用 3 个字符的代号,如 .com .edu.org
  • 国家或地区域名:采用 2 个字符的国家或地区代号,如.cn 为中国.kr 为韩国.us 为美国
  • 新通用顶级域名:也叫新顶级域名、新顶域,如xin.top .xyz.vip
DNS 域名组织类型举例
com商业公司www.xuanzishare.com
edu教育机构www.harvard.edu
net网络公司www.csdn.net
gov非军事政府机构www.whitehouse.gov
mil军事政府机构www.navy.mil
org非盈利组织www.linux.org
xx国家/地区www.cas.cn

DNS域名解析查询过程

DNS查询方式

  • 递归查询(主机向本地域名服务器查询采用递归查询)

在该模式下,DNS服务器接收到客户机请求,必须使用一个准确的查询结果回复客户机。如果DNS服务器本地没有存储查询DNS信息,那么该服务器会询问其他服务器,并将返回的查询结果提交给客户机。

  • 迭代查询(本地域名服务器向域名服务器查询采用迭代查询)

DNS另外一种查询方式为迭代查询,当客户机发送查询请求时,DNS服务器并不直接回复查询结果,而是告诉客户机另一台DNS 服务器地址,客户机再向这台DNS 服务器提交请求,依次循环直到返回查询的结果为止。

常见DNS服务器地址

  • Google 谷歌公司:8.8.8.8(主),8.8.4.4 (备)
  • 国内电信DNS:114.114.114.114
  • 阿里巴巴公司:223.5.5.5 (主),223.6.6.6 (备)

DNS系统类型

缓存域名服务器

也称为DNS高速缓存服务器

  • 通过向其他域名服务器查询获得域名 -> IP地址记录
  • 将客户端域名查询结果缓存到本地,提高重复查询时的速度和效率。

主域名服务器

  • 特定DNS区域的权威服务器,具有唯一性
  • 负责维护该区域内所有域名->IP地址的映射记录
  • 需要自行建立所负责区域的地址数据文件

从域名服务器

  • 也称为辅助域名服务器,是对主域名服务器的热备份
  • 其维护的域名->IP地址记录来源于主域名服务器
  • 需要从主域名服务器自动同步区域地址数据库

BIND 软件安装

BIND(Berkeley Internet Name Daemon)

  • BIND是应用最广泛的DNS服务程序
  • 官方站点:https://www.isc.org/

安装bind程序所需的包有:

  • bind:主程序包,提供域名解析服务的主要程序和相关配置文件
  • bind-utils:提供 DNS 域名解析使用的各种测试工具,如:nslookup
  • bind-libs:提供 bind、bind-utils 实现功能的各种库函数
  • bind-chroot:安装 bind 服务时提供的一个伪装目录(/var/named/chroot),提高配置文件和区域数据文件的安全性

/etc/named.conf – /var/named/chroot/etc/named.conf

1、安装BIND软件

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/sysconfig/selinux 

[root@localhost ~]# yum -y install bind bind-utils bind-libs bind-chroot

BIND 服务的配置文件

1、BIND服务器端程序

  • 主要执行程序:/usr/sbin/named
  • 默认监听端口:53
  • 主配置文件:/etc/named.conf
  • DNS解析记录的数据文件路径:/var/named/

2、BIND服务控制

  • systemctl [status|start|stop|restart] named.service

构建缓存域名服务器 

BIND服务主配置文件 named.conf
[root@localhost ~]# vim /etc/named.conf

全局配置部分

  • 设置DNS服务器的全局参数
  • 包括监听地址和端口、区域数据文件存放的目录等
  • 使用options { …… }; 的配置段
options {
    # 全局的选项和设置
    listen-on port 53 { 192.168.1.5; };
    # 监听 DNS 查询的 53 端口
    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";
    query-source port 53;
    allow-query { 192.168.1.0/24; };
    recursion yes;
};

区域配置部分

  • 设置本服务器提供域名解析的特定DNS区域
  • 包括域名、服务器角色、数据文件名等
  • 使用zone “区域名” IN { …… }; 的配置段
zone "." IN {
    # 定义 hyx.cloud 区域
    type hint;
    # 将此区域定义为主区域
    file "hyx.com.zone";
    # 指向包含 hyx.cloud 区域数据的文件
    allow-transfer { 192.168.60.12; };
    # 允许区域传输到指定的 IP 地址
};

zone "16.16.173.in-addr.arpa" IN {
    # 定义 16.16.173.in-addr.arpa 的反向查找区域
    type master;
    # 将此区域定义为主区域
    file "173.16.16.arpa";
    # 指向包含反向查找区域数据的文件
    allow-transfer { 192.168.60.12; };
    # 允许区域传输到指定的 IP 地址
};
全局 TTL 配置项及 SOA 记录
  • $TTL(Time To Live,生存时间)
  • SOA(Start Of Authority,授权信息开始)
  • 分号 “;” 开始的部分表示注释信息
$TTL    86400		
# 有效解析记录的生存周期
@  IN  SOA  bdqn.com. admin.bdqn.com.(	
# SOA标记、区域名称  管理邮箱地址
2011030501		
# 更新序列号,可以是10位以内的整数
3H 			
# 刷新时间,重新下载地址数据的间隔
15M			
# 重试延时,下载失败后的重试间隔
1W 			
# 失效时间,超过该时间仍无法下载则放弃,从服务器更新参数
1D 			
# 无效解析记录的生存周期
)
正向解析记录
  • NS 域名服务器(Name Server)记录
  • MX 邮件交换(Mail Exchange)记录
  • A 地址(Address)记录,只用在正向解析区域中
  • CNAME 别名(Canonical Name)记录
 @        	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
反向解析记录
  • PTR 指针(Point)记录
  • 记录的第一列指定 IP 地址中的主机地址部分
1	IN	PTR	www.bdqn.com. 
4	IN	PTR	mail.bdqn.com. 
对配置文件进行语法检查

named-checkconf 工具

named-checkconf  [主配置文件]

[root@localhost ~]# named-checkconf -z /etc/named.conf
# -z 尝试加载主配置文件中对应的区域数据库文件
zone bdqn.com/IN: loading from master file bdqn.com.zone failed: file not found
……	//省略部分内容

 named-checkzone 工具

 named-checkzone  <域名> <区域数据文件>

[root@localhost ~]# cd /var/named/
[root@localhost named]# named-checkzone bdqn.com bdqn.com.zone
zone  bdqn.com/IN: loaded serial 2011030501
OK

DNS 服务配置

主服务器配置

vim /etc/sysconfig/network-scripts/ifcfg-ens33
# 先修改 网络配置文件中,DNS 地址
DNS1=192.168.254.11
DNS2=192.168.254.12

# 安装 bind 软件
[root@localhost ~]# mkdir /media/cdrom
[root@localhost ~]# mount /dev/cdrom /media/cdrom/
[root@localhost ~]# cd /media/cdrom/Packages/
[root@localhost Packages]# rpm -ivh bind-9.9.4-72.el7.x86_64.rpm 
# 错误:依赖检测失败:python-ply 被 bind-32:9.9.4-72.el7.x86_64 需要
[root@localhost Packages]# rpm -ivh python-ply-3.4-11.el7.noarch.rpm
[root@localhost Packages]# rpm -ivh bind-9.9.4-72.el7.x86_64.rpm
# 安装 bind 包
[root@localhost Packages]# cp /etc/named.conf /etc/named.conf.bak
# 备份配置文件
[root@localhost Packages]# vim /etc/named.conf

named.conf

options {
    # 全局的选项和设置
    listen-on port 53 { 192.168.254.13; };
    # 监听 DNS 查询的 53 端口
    directory "/var/named";
    # 指定区域文件存储的目录
    allow-query { 192.168.254.0/24; 192.168.70.0/24; };
    # 允许来自指定 IP 段的 DNS 查询
};

zone "hyx.cloud" IN {
    # 定义 hyx.cloud 区域
    type master;
    # 将此区域定义为主区域
    file "hyx.cloud.zone";
    # 指向包含 hyx.cloud 区域数据的文件
    allow-transfer { 192.168.254.13; };
    # 允许区域传输到指定的 IP 地址
};

zone "16.16.173.in-addr.arpa" IN {
    # 定义 16.16.173.in-addr.arpa 的反向查找区域
    type master;
    # 将此区域定义为主区域
    file "173.16.16.arpa";
    # 指向包含反向查找区域数据的文件
    allow-transfer { 192.168.254.13; };
    # 允许区域传输到指定的 IP 地址
};
[root@localhost ~]# cd /var/named/
[root@localhost named]# vim hyx.cloud.zone
# :r named.localhost
# 导入模板文件

localhost.cloud.zone

$TTL 86400
@  IN  SOA  hyx.cloud.  admin.hyx.cloud. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
@      IN  NS          ns1.hyx.cloud.
       IN  NS          ns2.hyx.cloud.
       IN  MX     10   mail.hyx.cloud.
ns1    IN  A           192.168.254.11
ns2    IN  A           192.168.254.13
www    IN  A           173.16.16.1
mail   IN  A           173.16.16.2
study  IN  A           173.16.16.3
ftp    IN  A           173.16.16.4
web    IN  CNAME       173.16.16.1
*      IN  A           173.16.16.1

173.16.16.arpa

$TTL 86400
@  IN  SOA  hyx.cloud.  admin.hyx.cloud. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
@      IN  NS          ns1.hyx.cloud.
       IN  NS          ns2.hyx.cloud.
       IN  MX     10   mail.hyx.cloud.
ns1    IN  A           192.168.254.11
ns2    IN  A           192.168.254.13
mail   IN  A           173.16.16.2
1      IN  PTR         www.hyx.cloud.
2      IN  PTR         mail.hyx.cloud.
3      IN  PTR         study.hyx.cloud.
4      IN  PTR         ftp.hyx.cloud.
[root@hyx named]# named-checkconf -z /etc/named.conf
# 检查主配置文件
[root@hyx named]# named-checkzone hyx.cloud  /var/named/hyx.cloud.zone 
zone hyx.cloud/IN: loaded serial 0
OK
# 检查区域配置文件
[root@hyx named]# named-checkzone hyx.cloud  /var/named/173.16.16.arpa 
zone hyx.cloud/IN: loaded serial 0
OK
# 检查区域配置文件
systemctl enable named
systemctl start named
systemctl status named
[root@hyx named]# netstat -anpt | grep named

缓存服务器配置

前置配置与主服务器一致,仅修改 named.conf 配置文件即可

options {
        listen-on port 53 { 192.168.254.11; };
        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";
        query-source  port 53;
        allow-query { 192.168.254.0/24; };
        recursion  yes;
};

zone "." IN {
        type hint;
        file "named.ca";
};

构建主域名服务器

 

  1. 主、从域名服务器均位于 Internet 中,所负责的 DNS 区域为“bdqn.com”
  2. 主服务器的 IP 地址为 173.16.16.5,主机名为 ns1.bdqn.com
  3. 从服务器的 IP 地址为 173.16.16.6,主机名为 ns2.bdqn.com
  4. bdqn.com 区域中,除了 NS 记录以外,提供的解析记录还包括以下内容

                网站服务器 www.bdqn.com,IP 地址为 173.16.16.1

                邮件服务器 mail.bdqn.com,IP 地址为 173.16.16.2

                在线培训服务器 study.bdqn.com,IP 地址为 173.16.16.3                

     5.参考上述各服务器的地址映射关系,为 173.16.16.0/24 网段提供反向解析。

     6.设置 bdqn.com 域的泛域名解析,对应的 IP 地址为 173.16.16.1

     7.客户机将首选 DNS 服务器、备用 DNS 服务器分别设为 173.16.16.5 173.16.16.6, 使用其中的任何一个服务器,都能够正常查询 bdqn.com 区域中的主机地址

1、确认本机的网络地址、主机映射、默认DNS服务器地址  
#DNS2的配置
[root@localhost ~]# hostnamectl set-hostname ns2.bdqn.com
[root@localhost ~]# bash
[root@ns2 ~]# vim /etc/hosts
192.168.10.101 ns1.bdqn.com  ns1
192.168.10.102 ns2.bdqn.com  ns2

#(2)安装bind服务
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/sysconfig/selinux 
[root@localhost ~]# yum -y install bind bind-utils bind-libs bind-chroot
2、修改主配置文件 
[root@ns1 ~]# vim /etc/named.conf

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

#zone "." IN {
#       type hint;
#       file "named.ca";
#};


view "LAN" {
        match-clients { 192.168.10.0/24; };
        zone "bt.com" IN {
        type master;
        file "lan.bt.com.zone";
        };
};

view "WAN" {
        match-clients { any; };
        zone "bt.com" IN {
        type master;
        file "wan.bt.com.zone";
        };
};

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

内部区域文件设置

[root@ns1 ~]# cd /var/named/

[root@ns1 named]# vim lan.bt.com.zone 
$TTL 1D
@       IN SOA  bt.com.   admin.bt.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
@    IN  NS  ns1.bt.com.
ns1  IN  A   192.168.10.101
www  IN  A   192.168.10.102
mail IN  A   192.168.10.103
ftp  IN  A   192.168.10.104

 外部区域文件设置

[root@ns1 named]# vim wan.bt.com.zone 
$TTL 1D
@       IN SOA  bt.com.  admin.bt.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
@    IN NS  ns1.bt.com.
ns1  IN A   173.16.16.101
www  IN A   173.16.16.102
mail IN A   173.16.16.103
ftp  IN A   173.16.16.104

[root@ns1 named]# chown named lan.bt.com.zone wan.bt.com.zone 

语法检测

[root@ns1 named]# named-checkconf -z /etc/named.conf 
zone bt.com/IN: loaded serial 0
zone bt.com/IN: loaded serial 0

[root@ns1 named]# named-checkzone bt.com /var/named/lan.bt.com.zone 
zone bt.com/IN: loaded serial 0
OK

[root@ns1 named]# named-checkzone bt.com /var/named/wan.bt.com.zone 
zone bt.com/IN: loaded serial 0
OK

构建从域名服务器

确认本机的网络地址、主机映射、默认 DNS 服务器地址

建立主配置文件named.conf

[root@ns2~]# vi /etc/named.conf
options {
directory "/var/named";
};

zone "bdqn.com" IN {
type slave; //类型为从区域
masters { 173.16.16.5; }; //指定主服务器的 IP 地址
file "slaves/bdqn.com.zone"; //下载的区域文件保存到 slaves/目录
};

zone "16.16.173.in-addr.arpa" IN {
type slave;
masters { 173.16.16.5; };
file "slaves/173.16.16.arpa";
}

启动事务

[root@ns1 named]# systemctl start named

[root@ns1 named]# netstat -anptu | grep named
客户端验证

使用nslookup命令进行测试

1、外网客户端

[root@localhost ~]# yum -y install bind-utils
[root@localhost ~]# nslookup
> www.bt.com
Server:		173.16.16.1
Address:	173.16.16.1#53

Name:	www.bt.com
Address: 173.16.16.101

 2、内网客户端

[root@localhost ~]# yum -y install bind-utils
[root@localhost ~]# nslookup
> www.bt.com
Server:		192.168.1.1
Address:	192.168.1.1#53

Name:	www.bt.com
Address: 192.168.1.5
3、启动named服务,查看区域数据文件是否下载成功
[root@ns2 ~]# systemctl start named
[root@ns2 ~]# ll /var/named/slaves/
总用量 8
-rw-r--r--. 1 named named 544 7月   3 10:00 192.168.10.arpa
-rw-r--r--. 1 named named 488 7月   3 09:58 bdqn.com.zone

4、验证从域名服务器
将客户端的DNS服务器修改为192.168.10.102

[root@localhost ~]# nslookup www.bdqn.com
Server:        192.168.10.102
Address:       192.168.10.102#53

Name:    www.bdqn.com
Address: 192.168.10.106

 小阿轩yx-DNS域名解析服务

  • 12
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值