零基础开始的运维之路第二十四天------DNS

目录

一、概述

概念

作用

监听端口

默认运行用户

二、 完全限定域名

组成

域类型

三、DNS解析过程

客户端如何解析域名(必须背会)

四、域名服务器的分类

根据作用

根据应用场景

五、DNS服务器部署


一、概述

概念

Domain Name Service,一套分布式的域名服务系统,即有多个DNS服务器遍布于世界。每个DNS服务器上存放着大量的机器域名和IP地址的映射,并且是动态更新。众多网络客户端程序都使用DNS协议来向DNS服务器查询目标主机的IP地址。

作用

正向解析:将已知的域名解析为IP地址 反向解析:将已知的IP地址解析为域名

监听端口

53/udp | 53/TCP

默认运行用户

named

二、 完全限定域名

FQDN(Fully Qualified Domain Name)

组成

主机名.三级域.二级域名.顶级域名.

案例:www.baidu.com.

域类型
类型举例
根域.
顶级域cn、hk、uk、org、edu、com、mil、gov、net
二级域baidu、163、sina、sohu

三、DNS解析过程

客户端如何解析域名(必须背会)
  1. 本地DNS缓存

  2. 本地hosts文件,在DNS服务器诞生之前,所有的主机之间都是通过hosts文件进行的。

  3. 指向的DNS服务器IP:

递归查询:直接给出解析结果,客户机与本地DNS服务器之间的查询。(所答即所问) ​迭代查询:没有给出解析结果,本地DNS服务器与根等其他DNS服务器之间的查询。(所答非所问)

四、域名服务器的分类

根据作用

1.根域名服务器:最高层次的域名服务器,也是最重要的域名服务器。所有的根域名服务器都知道所有的顶级域名服务器的域名和IP地址。 ​ 2.顶级域名服务器:负责管理该顶级域名注册的二级域名。 ​ 3.权限域名服务器:负责一个“区”的域名服务器。 ​ 4.本地域名服务器:本地域名服务器不属于域名服务器的层次结构,但是它对域名系统非常重要。当一个主机发出DNS查询请求时,这个查询请求报文就发送给本地域名服务器。

根据应用场景

主服务器(Primary Name server) 为客户端提供域名解析的主要区域,主DNS服务器宕机,会启用从DNS服务器提供服务。 辅助服务器(Second Name Server) 主服务器DNS长期无应答,从服务器也会停止提供服务,主从区域治安的同步采用周期性检查+通知的机制,从服务器周期性地检查主服务器上地记录情况,一旦发现修改就会同步,另外主服务器上如果又数据被修改了,会立即通知从服务器更新记录。 高速缓存服务器(Cache-only server) 缓存服务器是一种不负责域名数据维护,也不负责域名解析地DNS服务类型。它将用户经常使用到的域名与IP地址解析记录保存在主机本地中,来提升下次解析的效率。

五、DNS服务器部署

使用的bind软件包进行安装实现DNS解析服务!!

####在线安装####
[root@localhost ~]# yum install -y bind

主服务器配置

进入主配置文件 /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; };

改成这样

options {
        listen-on port 53 { 192.168.158.39; };
        //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; };#客户端访问规则

进入解析配置文件

[root@localhost ~]# vim /etc/named.rfc1912.zones 
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
​
//zone "localhost.localdomain" IN { #正向解析文件
//      type master;
//      file "named.localhost";
//      allow-update { none; };
//};
//
//zone "localhost" IN {
//      type master;
//      file "named.localhost";
//      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 {
//      type master;
//      file "named.loopback";
//      allow-update { none; };
//};
//
//zone "1.0.0.127.in-addr.arpa" IN { #反向解析文件
//      type master;
//      file "named.loopback";
//      allow-update { none; };
//};
//
//zone "0.in-addr.arpa" IN {
//      type master;
//      file "named.empty";
//      allow-update { none; };
//};
//

改成这样

zone "c2505.com" IN {
      type master;
      file "c2505.com.zones";
     allow-update { none; };
};
zone "157.168.192.in-addr.arpa" IN {
      type master;
      file "192.168.157.zones";
      allow-update { none; };
};

接下来改第三个文件

[root@bogon named]# ls
data  dynamic  named.ca  named.empty  named.localhost  named.loopback  slaves

这里需要生成指定文件,以named.empty 为模板

用cp

生成正向解析文档

$TTL 3H #时间(3消失)
@       IN SOA  c2505.com. admin.c2505.com. ( # @是继承 SOA是服务注册中继
                                        0       ; serial #当前文件的编号,越高>代表更新次数越多,0时是新文件,1代表同步
                                        1D      ; refresh #刷新间隔
                                        1H      ; retry #重置次数
                                        1W      ; expire #过期时间
                                        3H )    ; minimum #最小间隔时间
        NS      dns1.c2505.com. #信息本身,指定谁是dns服务器
dns1    A       192.168.158.39 #ipv4地址解析记录
dns01   CNAME   dns1.c2505.com. #别名记录
mail    A       192.168.158.40 #邮件解析记录
mail    MX 10   mail.c2505.com.

生成反向解析文档

$TTL 3H
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum

进入客户机配置resolv.conf,配置主服务器的内容

[root@bogon ~]# vim /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.157.142

在客户机里用nslookup对正向地址进行解析

[root@bogon ~]#  nslookup
> dns1.c2505.com
Server:         192.168.157.142
Address:        192.168.157.142#53
​
Name:   dns1.c2505.com
Address: 192.168.157.142
> 

接下来配置反向解析

  vim 192.168.157.zones
$TTL 3H
@       IN SOA  c2505.com. admin.c2505.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
@      NS       dns1.c2505.com.
142    PTR      dns2.c2505.com.
143    PTR      mail.c2505.com.
143    PTR      dns01.c2505.com.

这样,主要架构就完成了

但是有问题,万一主服务器挂了,那整个架构完蛋了,所以接下来配置一个从服务器,从服务器无需编写区域文件

[root@bogon ~]# cd /var/named/
[root@bogon named]# ls
data  dynamic  named.ca  named.empty  named.localhost  named.loopback  slaves

主服务器的 /etc/named.rfc1912.zones 配置文件

zone "c2505.com" IN {
      type master;
      file "c2505.com.zones";
     allow-update { none; };
     allow-transfer { 192.168.157.144; };
};
zone "157.168.192.in-addr.arpa" IN {
      type master;
      file "192.168.157.zones";
      allow-update { none; };
      allow-transfer { 192.168.157.144; };

从服务器的主配置文件修改

[root@bogon slaves]# vim /etc/named.conf
options {
        listen-on port 53 { 192.168.157.144; };
        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 "c2505.com." IN {
      type slave;
      file "slaves/2505.com.zones";
      masters { 192.168.157.142; };
};
zone "157.168.192.in-addr.arpa" IN {
      type slave;
      file "slaves/192.168.157.zones";
      masters { 192.168.157.142; };
};

接下来就是关闭主服务器在143客户机里配置然后解析

# Generated by NetworkManager
nameserver 192.168.157.144
nameserver 192.168.157.142
~      
[root@localhost ~]# nslookup
> mail.c2505.com
Server:         192.168.157.144
Address:        192.168.157.144#53
​
Name:   mail.c2505.com
Address: 192.168.157.143
> exit

解析成功,说明配置主服务器成功

dig命令指定域名

可以指向某服务器进行解析

[root@localhost ~]# dig mail.c2505.com @192.168.157.144
​
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.16 <<>> mail.c2505.com @192.168.157.144
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21708
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
​
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;mail.c2505.com.                        IN      A
​
;; ANSWER SECTION:
mail.c2505.com.         10800   IN      A       192.168.157.143
​
;; AUTHORITY SECTION:
c2505.com.              10800   IN      NS      dns1.c2505.com.
​
;; ADDITIONAL SECTION:
dns1.c2505.com.         10800   IN      A       192.168.157.142
​
;; Query time: 2 msec
;; SERVER: 192.168.157.144#53(192.168.157.144)
;; WHEN: 三 6月 18 12:04:35 CST 2025
;; MSG SIZE  rcvd: 94
​

客户端写解析脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值