linux的DNS服务----(主从域名服务,正向解析,反向解析)!!!!

前言

1. DNS作用

  • 庞大的internet当中,数以亿计的服务器,网络,ip,为了更直观的,方便记忆的记住这些对应的网站,如百度,阿里云,等等… 于是就出现了dns域名解析,将ip地址,更改了方式方便我们记忆;

  • 注意:TCP负责去连接,udp负责解析

2.DNS类型

  • 常见的几种类型

  • 缓存域名服务器

①也称为DNS高速缓存服务器
②通过向其他域名服务器查询获得域名—IP地址记录
③将域名查询结果缓存到本地,提高重复查询时的速度

提供域名解析结果的缓存功能,目的在于提高查询速度和效率,但是没有自己控制的区域地址数据。

构建缓存域名服务器时,必须设置根域或者指定其他DNS服务器作为解析来源

  • 主域名服务器

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

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

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

  • 从域名服务器

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

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

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

3. 解析方式

  • 正向解析:通过域名解析ip地址;
  • 反向解析:通过ip地址解析域名;

4. BIND域名服务基础

  • DNS服务软件BIND(Berkeley Internet Name Domain,伯克利因特网域名)
  • 服务:可通俗理解为主配置文件+运行脚本

5. BIND的安装文件

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

BIND

伯克利Internet域名服务

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

可以直接使用yum安装

  • 相关软件包

软件包 作用
bind
–提供了域名服务的主要程序及相关文件
bind-utils
–提供了对DNS服务器的测试工具,如nslookup等
bind-libs
–提供了bind,bind-utils需要使用的库函数
bind-chroot
–为BIND服务提供一个伪装的根目录(/var/named/chroot)以提高安全性

  • BIND服务器端程序

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

默认监听端口:53

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

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

6. 三个主要配置文件

查看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

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

设置DNS服务器的全局参数
包括监听地址/端口,数据文件的默认位置等
使用options{…};的配置段

options {
    
                                                                                                 
 	listen-on port 53 {
    
     20.0.0.128; };  //监听本机服务搭建地址  
	listen-on-v6 port 53 {
    
     ::1; };                              
	forwarders {
    
     8.8.8.8; 114.114.114.114; };               
 	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";       
	allow-query     {
    
     any; };          // 允许使用本DNS服务的网段:{
    
    一般更改为any}'    
                          
  • 区域配置文件
    /etc/named.rfc1912.zones

设置本服务器提供域名解析的特定DNS区域
包括域名,服务器角色,数据文件名等
使用zone“区域名”IN{…};的配置段

正向解析
zone "as.com" IN {
    
    
        type master;		       //类型,主域名服务器'
        file "as.com.zone";		//区域数据文件名
        allow-update {
    
     none; };      //允许从域名服务地址 
};
分割.........
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 {
    
    

反向解析
zone "0.0.20.in-addr.arpa" IN {
    
    
        type master;
        file "20.0.0.arpa";
        allow-update {
    
     none; };
};
  • 区域数据配置文件

1.全局TTL配置项及SOA记录
$TTL(Time To Live,生存时间)记录
SOA(Start Of Authority,授权信息开始)记录
分号“;”开始的部分表示注释信息

2.域名解析记录
地址解析记录用来设置DNS区域内的域名,IP地址印社关系,包括正向解析记录和反向解析记录
NS域名服务器(Name Server )记录
MX 邮件交换(Mail Exchange)记录
A 地址 (Address)记录,只用在正向解析区域中
CNAME别名(Canonical Name)记录

  • 区域数据配置文件的特殊应用

基于域名解析的负载均衡

同一域名对应到多个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.103	'泛域名解析'

正向解析配置数据文件

$TTL 1D
@       IN SOA   as.com. admin.as.com. (
                                                0
                                                1D
                                                1H
                                                1W
                                                3H )
            NS        @
            A         20.0.0.17
www    IN   A         20.0.0.18             #解析www.的地址是20.0.0.18  如:www.as.com
ftp    IN   A         20.0.0.19

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

$TTL 1D
@       IN SOA isas.com. admin.isas.com. (
                                        1
                                        1D
                                        1H
                                        1W
                                        3H )
@        NS      as.com.    '当前区域DNS服务器的'
        A       20.0.0.100
4 IN   PTR      www.as.com.
5 IN   PTR      ftp.myas.com.
6 IN   PTR      bbs.isas.com.

注意:文件中域名以. 结尾

@		IN		NS		as.com.	'当前区域DNS服务器的'
		IN		MX 10	mail.as.com.
ns1		IN		A		11.22.33.44
www		IN		A		2.2.2.2
mail	IN 		A		5.5.5.5
ftp		IN		CNAME	www
*		IN 		A		3.3.3.3		'泛域名解析,未匹配到的主机头到到此地址'
1 IN PTR www.as.com.		'表示IP地址为20.0.0.18的主机的域名时www.as.com'
5 IN PTR mail.cc.com.		'表示IP地址为20.0.0.19的主机的域名时mail.as.com'

7. 对配置文件进行语法检查

  • 修改完区域数据文件以后,可以执行named-checkconf命令对该文件进行语法检查
named-checkconf -z [主配置文件]
named-checkconf -z /etc/named.conf

  • 若zone文件中没有语法错误,系统将给出“OK”的提示信息

named-checkzone <域名><区域数据文件>
 named-checkzone as.com /var/named/as.com.zone 

一, BIND构建主从域名服务器

环境准备:
centos7.4系统
三台虚拟机(一个主服务器,一个从服务器,一个客户端)
虚拟机网卡模式是NAT;
主从域名服务器,客户端基础环境配置都需要搞好,(或者做一个搞一个看个人习惯)

注:以下实验是都已经配置好环境下进行的;
防火墙,核心防护…

步骤一:安装环境

  1. yum 安装所需要的四个包
yum -y install  bind  bind-utils  bind-libs  bind-chroot

Bind                 ///提供了域名服务的主要程序
bind-chroot      //为了BIND服务提供一个伪装的目录
bind-utils          //提供了对DNS服务器测试的工具“nslookup”
bind-libs	        //提供了bind,bind-utils需要使用的库函数

步骤二:主域名服务器

  1. 修改配置文件/etc/named.conf
vi  /etc/named.conf
options {
    
    
        listen-on port 53 {
    
     20.0.0.18; };         //主域名服务ip
        listen-on-v6 port 53 {
    
     ::1; };
        forwarders {
    
     8.8.8.8; 114.114.114.114; };
        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";
        allow-query     {
    
     any; };

2.新增区域配置文件vi /etc/named.rfc1912.zones

vi  /etc/named.rfc1912.zones

正向区域:
zone "as.com" IN {
    
            //域名
        type master;      //类型
        file "as.com.zone";                 //数据配置文件名称
        allow-transfer {
    
     20.0.0.19; };      //进行同步的从服务ip地址
};
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 "0.0.20.in-addr.arpa" IN {
    
    
        type master;
        file "20.0.0.arpa";
        allow-transfer {
    
     20.0.0.19; };   

};


3.做正向解析和反向解析的区域数据配置文件
/var/named/as.com.zone

 vi /var/named/bdqn.com.zone
正向解析:
  $TTL 1D
 @       IN SOA   bdqn.com. admin.bdqn.com. (
                                                0                             
                                                1D                           
                                                1H                       
                                                1W                      
                                                3H )                      
             NS       @                            
            A        20.0.0.55                   
www    IN   A        20.0.0.66                        
ftp    IN   A        20.0.0.88                       
mail   IN  CNAME      www                    

/var/named/20.0.0.arpa

4.vi  /var/named/20.0.0.arpa
反向解析:
$TTL 1D
@       IN SOA as.com. admin.as.com. (
                                        1
                                        1D
                                        1H
                                        1W
                                        3H )
        NS      as.com.
        A       20.0.0.100
11 IN   PTR      www.as.com.
22 IN   PTR      ftp.as.com.
33 IN   PTR      bbs.as.com.

//配置解释

www.as.com =  20.0.0.11
ftp.as.com =  20.0.0.22
bbs.as.com =  20.0.0.33

注:文件更改完成,更改属主用户授权:

chown named:named /var/named/as.com.zone
chown named:named /var/named/20.0.0.arpa

  1. 验证配置文件是否正确
named-checkconf  -z  /etc/named.conf
named-checkzone as.com /var/named/as.com.zone 
named-checkzone as.com /var/named/20.0.0.arpa
  1. 重启服务named
    systemctl restart named

步骤三:从域名服务器

同主服务器操作流程基本一样;

安装软件依赖包:

yum -y install  bind  
  1. 修改配置文件/etc/named.conf
1.
options {
    
    
        listen-on port 53 {
    
     20.0.0.19; };
        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";
        allow-query     {
    
     any; };

2.修改配置文件vi /etc/named.rfc1912.zones

正向区域:
zone "as.com" IN {
    
    
        type slave;                      //类型从
        masters {
    
     20.0.0.18; };        //设置主域名服务器ip地址
        file "slaves/as.com.zone";       //指定文件位置,主域名服务器设置完成后,就可以同步自动生成=文件了
};


反向区域:
zone "0.0.20. in-addr.arpa" IN {
    
    
        type slave;                    //类型从服务器
        masters {
    
      20.0.0.18; };       //设置主域名服务器的IP地址
        file "slaves/20.0.0.arpa";      /指定文件位置,主域名服务器设置完成后,就可以同步自动生成=文件了
};

  1. 重启服务named
    systemctl restart named

步骤四:客户端验证

1.vi /etc/resolv.conf配置文件里映射20.0.0.18主服务器地址

[root@localhost ~]# vi /etc/resolv.conf 
# Generated by NetworkManager
nameserver 20.0.0.18

  1. 验证测试:
    正向解析:

[root@localhost ~]# nslookup  ftp.as.com
Server:         20.0.0.18
Address:        20.0.0.18#53


Name:   ftp.as.com
Address: 20.0.0.88
[root@localhost ~]# nslookup  www.bdqn.com
Server:         20.0.0.18
Address:        20.0.0.18#53

Name:   www.as.com
Address: 20.0.0.66

反向解析:

[root@localhost ~]# nslookup 20.0.0.11
Server:         20.0.0.18
Address:        20.0.0.18#53

11.0.0.20.in-addr.arpa   name = www.as.com.

[root@localhost ~]# nslookup 20.0.0.22
Server:         20.0.0.18
Address:        20.0.0.18#53

22.0.0.20.in-addr.arpa   name = ftp.as.com.

[root@localhost ~]# nslookup 20.0.0.33
Server:         20.0.0.18
Address:        20.0.0.18#53

33.0.0.20.in-addr.arpa   name = bbs.as.com.

猜你喜欢

转载自blog.csdn.net/weixin_47320286/article/details/109444257