DNS搭建

名称服务器:负责解析本域内的名称的主机

根服务器:13组服务器

DNS查询类型:

  • 递归查询:请求发送给DNS之后,DNS的返回最终的结果。
  • 迭代查询:DNS服务器只返回下一跳地。

解析类型:

  • FQDN -> IP 正解
  • IP -> FQDN 反解

DNS服务器类型

  • 主DNS
  • 从DNS
  • 缓存DNS服务器(转发器)
  • cat /etc/named.conf

安装DNS

  • yum install bind -y
  • named -v
  • yum info bind 服务的详解
  • yum -ql bind 服务文件路径解释
/etc/named.conf,/etc/named.rfc1912.zones是主配置文件
/var/named/named.ca是根区域解析库文件
/var/named/named.localhost,/var/named/named.loopback 是本机和环回地址的解析库文件
  • cat /etc/named.com
// 2个双//在这个配置文件中表示注释
options {
    //下面一行表示监听的端口和IP地址,其中2个{}内部两端都要有空格,IP地址要以;号结尾。
    这里的IP地址至少应该包含宿主机可以和外部通迅的地址,也可以包含一个本地回环地址供rndc工具使用。也可以简写成{ any; }
    每个语句结束同样都要以;结尾,如果不需要监听IPV6可以注释掉或删除。
    listen-on port 53 { localhost; };
//  listen-on-v6 port 53 { ::1; };
    //下面一行表示named的工作目录为/var/named
    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";
    //下面一行表示允许哪些主机查询,改成any表示所有
    allow-query     { any; };
    //下面一行表示是否允许递归查询.
    recursion yes;
    dnssec-enable yes;
    dnssec-validation yes;
    /* Path to ISC DLV key */
    bindkeys-file "/etc/named.iscdlv.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 "." IN {
    type hint;        //hint表示根区域类型
    file "named.ca";    //指定根区域解析库文件名称所在位置,相对于/var/named
};
//指定区域文件名称,所有的区域定义都可以写在named.rfc1912.zones文件中
include "/etc/named.rfc1912.zones"; //rfc1912官方标准编号,一般新增的域都加到这里
include "/etc/named.root.key";
  • 域对应的区域数据信息创建tengfei.com,一般是.zone 文件
  • vim /etc/named.rfc1912.zones
新增域:tengfei.com
正解域:
zone "ZONE_NAME" IN { 
    type master; //主服务器,
    file "ZONE_NAME.zone"; //域数据库文件,/etc/named.conf有指定默认路径:directory   "/var/named";
};

eg:
zone "tengfei.com" IN { 
    type master; //主服务器
    file "tengfei.com.zone"; //域数据库文件,/etc/named.conf有指定默认路径:directory   "/var/named";
};

反解域:
zone "网络地址反写。in-addr.arpa" IN { 
    type master; //主服务器,
    file "网络地址反写.zone"; //域数据库文件,/etc/named.conf有指定默认路径:directory   "/var/named";
};

eg:
zone "0.168.192.in-addr.arpa" IN {
    type master; //主服务器
    file "192.168.0.zone"; //域数据库文件
};
  • 创建tengfei.com区域解析数据库文件
  • cd /var/named && cp named.localhost tengfei.com.zone -a
  • 资源记录语法:name [TTL] IN rr_type value //TTL可以继承,可以忽略
  • vim tengfei.com.zone
$TTL 1D ;定义全局TTL
@   IN SOA  @ rname.invalid. ( ;@代表域名 tengfei.com. 第二个@代表主DNS服务器,下边A记录需要指定。
                    0   ; serial
                    1D  ; refresh
                    1H  ; retry
                    1W  ; expire
                    3H )    ; minimum
    NS  @
    A   127.0.0.1
    AAAA    ::1

eg:
$TTL 1D ;定义全局TTL
@   IN SOA  master.tengfei.com admin.tengfei.com. ( ;@代表域名 tengfei.com. 第二个@代表主DNS服务器,下边NS需要指定。admin.tengfei.com 全名 admin@tengfei.com
                                               2020030813   ;序列号 解析库版本号,主服务器发生变化时,其序列号需要手动增加
                                               2H          ;刷新时间 从服务器与主服务器请求同步解析的时间间隔
                                               10M         ;重试时间间隔  从服务器请求同步失败时,再次尝试时间间隔
                                               1W          ;过期时间 从服务器联系不到主服务器时,多久后停止服务
                                               3H)         ;无法解析时否定答案的TTL值 
    NS  master
    NS  slave
master  A  192.168.0.129
slave  A  192.168.0.130
www A 192.168.0.130
ftp CNAME www
*       A       192.168.0.128
反解编写:
$TTL 1D
@       IN      SOA     master.tengfei.com. admin.tengfei.com. (
                        2020030812
                        2H
                        10M
                        7W
                        3H)
        IN      NS      master.tengfei.com.
        IN      NS      slave.tengfei.com.
129     IN      PTR     master.tengfei.com.
130     IN      PTR     slave.tengfei.com.
130     IN      PTR     www.tengfei.com.
  • 区域解析库详解
区域解析库由众多的RR(Resource Record,资源记录)组成。
资源记录语法:name [TTL] IN rr_type value   //TTL可以继承,可以忽略
记录类型有:
A记录: A(Address)记录是用来指定主机名(或域名)对应的IP地址记录
AAAA : 标识ipv6地址,用来指定主机名(或域名)对应的IP地址记录
NS记录: NS(Name Server)记录是域名服务器记录,用来指定该域名由哪个DNS服务器来进行解析
MX记录: MX(Mail Exchanger)记录是邮件交换记录,它指向一个邮件服务器,用于电子邮件系统发邮件时根据收信人的地址后缀来定位邮件服务器
CNAME记录: CNAME(Canonical Name )别名记录,允许您将多个名字映射到同一台计算机。
TXT记录:一般指某个主机名或域名的说明,如:admin IN TXT "管理员, 电话:XXXXXXXXXXX",mail IN TXT "邮件主机,存放在xxx , 管理人:AAA",Jim IN TXT "contact: abc@mailserver.com"
PTR值:PTR是pointer的简写,用于将一个IP地址映射到对应的域名,也可以看成是A记录的反向,IP地址的反向解析
TTL值:TTL(Time-To-Live)原理:TTL是IP协议包中的一个值,它告诉网络路由器包在网络中的时间是否太长而应被丢弃。TL通常表示包在被丢弃前最多能经过的路由器个数。当记数到0时,路由器决定丢弃该包,并发送一个ICMP报文给最初的发送者
泛域名与泛解析:泛域名是指在一个域名根下,以 *.Domain.com的形式表示这个域名根所有未建立的子域名。 泛解析是把*.Domain.com的A记录解析到某个IP 地址上,通过访问任意的前缀.domain.com都能访问到你解析的站点上。
  • 启动服务
systemctl status named
systemctl start named 
systemctl enable named 
  • 检测和重启服务
ss -ntul 
systemctl reload named.service 
rndc reload
named-checkconf 主配置文件语法检测
named-checkzone "tengfei.com" /var/named/tengfei.com.zone 
  • 测试解析
host: host www.tengfei.com 192.168.0.129
dig: dig www.tengfei.com @192.168.0.129

从库搭建

  • yum install bind -y
  • 调整从库的端口和访问限制
listen-on port 53 { localhost; };
allow-query     { any; };
  • 设置正解反解的从设置
vim /etc/named.rfc1912.zones
正解从:
zone "tengfei.com" IN {
    type slave;
    masters { 192.168.0.129; };
    file "slaves/tengfei.zone";
};

反解从:
zone "0.168.192.in-addr.arpa" IN {
    type slave;
    masters { 192.168.0.129; };
    file "slaves/0.168.192.zone";
};
  • 重启服务即可
systemctl restart named 
rndc reload
  • 测试结果
[root@node1 ~]# host www.tengfei.com 192.168.0.129 
Using domain server:
Name: 192.168.0.129
Address: 192.168.0.129#53
Aliases: 

www.tengfei.com has address 192.168.0.130
[root@node1 ~]# host www.tengfei.com 192.168.0.130
Using domain server:
Name: 192.168.0.130
Address: 192.168.0.130#53
Aliases: 

www.tengfei.com has address 192.168.0.130
原文地址:https://www.cnblogs.com/tengfei520/p/12462771.html