配置 DNS基础服务

news/2024/7/8 2:35:33 标签: 运维

一、DNS原理

解析过程

  1. 用户在浏览器中输入域名,例如“www.example.com”。
  2. 浏览器检查自身缓存中是否有该域名对应的 IP 地址。如果有,则直接使用该 IP 地址访问网站。
  3. 如果浏览器缓存中没有,操作系统会检查本地的 hosts 文件,查看其中是否有域名与 IP 地址的映射记录。
  4. 若本地 hosts 文件中也没有,操作系统会向本地配置的 DNS 服务器发送 DNS 查询请求。
  5. 本地 DNS 服务器收到请求后,首先检查自身缓存中是否有该域名的解析记录。如果有,则直接返回对应的 IP 地址。
  6. 如果本地 DNS 服务器缓存中没有,它会代替用户设备开启迭代查询,从根域名服务器开始递归,按照域名的层次结构逐步向下查询。
  7. 根域名服务器返回顶级域名(如.com )服务器的地址。
  8. 本地 DNS 服务器向顶级域名服务器发送查询请求。
  9. 顶级域名服务器返回权威域名服务器(即负责该域名的服务器)的地址。
  10. 本地 DNS 服务器向权威域名服务器发送查询请求。
  11. 权威域名服务器查询到域名对应的 IP 地址,并将其返回给本地 DNS 服务器。
  12. 本地 DNS 服务器将获取到的 IP 地址返回给用户的计算机。
  13. 浏览器使用获取到的 IP 地址与服务器建立连接,从而访问网站。

查询方式

递归查询            

直接把结果给客户端

迭代查询

如果知道结果,把结果告诉客户端,如果不知道结果,会把查询转发到下一台DNS服务器

DNS解析类型

SOA 记录:起始授权记录  

NS 记录:指定管理某一个域的服务器是谁子域授权  

A 记录:正向解析,把域名解析成IP      

PTR 记录:反向解析  

MX 记录:指定邮件服务器  

CNAME:别名、泛域名解析、负载均衡、主从、只缓存、转发、子域授权、View 视图

二、DNS 部署

环境介绍

服务器3台、系统centos

安装软件

    yum install -y bind bind-utils bind-chroot
    bind  主包
    bind-utils   客户端测试工具(host 、dig 、nslookup)
    bind-chroot   chroot环境  禁锢dns服务器的工作目录
    caching-nameserver(rhel5提供模板文本,缓存服务)   rhel6不需要

关闭防火墙

systemctl stop firewalld && setenforce 0

启动服务

    # systemctl start named
        如果启动服务没有工作目录的文件夹

工作目录

    /var/named/chroot/etc                    存放主配置文件
    /var/named/chroot/var/named

配置文件

备份配置文件
cp /etc/named.conf /etc/named.conf.backup
​
修改配置文件:
[root@wing etc]# vim /etc/named.conf 
options {
    # 监听在主机的53端口上。any代表监听所有的主机
    listen-on port 53 { any; };
    listen-on-v6 port 53 { ::1; };
​
    # 如果此档案底下有规范到正反解的zone file 档名时,该档名预设应该放置在哪个目录底下
    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服务器提出查询请求。any代表任何人
    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;
​
        dnssec-lookaside auto;
        forwarders { 
           # 指定上层DNS服务器(网关)
           192.168.1.1;
        };
​
    /* 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 "fqsb.com." IN {
    type hint;
    file "named.ca";
};
​
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
增加zone信息
vim /etc/named.rfc1912.zones
zone "baidu.com" IN {    
       # 定义要解析主域名
        type master;
        file "baidu.com.zone";  
       # 具体相关解析的配置文件保存在 /var/named/baidu.com.zone 文件中
};
编辑区域配置文件
vim /var/named/baidu.com.zone
vim /var/named/fqsb.com.zone
chown root:named /var/named/fqsb.com.zone
$TTL 1D
@       IN SOA          baidu.com. root (
                                        1       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        0 )     ; minimum
​
        IN      NS      baidu.com.
        IN      A       192.168.101.1
www     IN      A       192.168.101.244
test    IN      A       192.168.101.129

增加权限 并启动服务

chown root:named /var/named/baidu.com.zone
systemctl restart named
systemctl enable named
​
systemctl status named service
 vim /etc/resolv.conf  

http://www.niftyadmin.cn/n/5536242.html

相关文章

智能井盖采集装置 开启井下安全新篇章

在现代城市的脉络之下,错综复杂的管网系统如同城市的血管,默默支撑着日常生活的有序进行。而管网的监测设备大多都安装在井下,如何给设备供电一直是一个难题,选用市电供电需经过多方审批,选用电池供电需要更换电池包&a…

mac显示隐藏的.git文件

打开终端 输入命令 defaults write com.apple.finder AppleShowAllFiles YES killall Finder

揭开Kafka的神秘面纱:你不知道的内幕

引言 随着大数据和实时流处理技术的不断发展,Kafka作为一种高吞吐量、低延迟的分布式消息系统,得到了广泛的应用。本文将深入探讨Kafka的定义、架构、工作原理、应用场景、安装与配置、常用命令、高级特性以及优化与调优策略,帮助读者全面了解…

嵌入式硬件电路常用设计软件

目录 1. Cadence Allegro 2. PADS 3. Altium Designer 4. Multisim 5. Protues 1. Cadence Allegro 功能: Cadence Allegro是Cadence公司推出的先进PCB(Printed Circuit Board,印刷电路板)设计布线工具,也是目前…

如何安装“ Visual Studio Community 2015“?

一、下载 下载地址(这里只提供Community版) https://download.microsoft.com/download/5/d/1/5d1ec81e-bc59-448f-9ab6-27636d5cc18a/vs2015.3.com_chs.iso 二、安装 点击下载的文件,打开 安装在D盘下,选择自定义,点击下一步 只做C开发的话…

基于Python+Pytest+Playwright的UI自动化测试框架

文章目录 一、框架介绍二、实现功能三、框架目录结构四、依赖库五、安装教程六、如何创建用例1. 修改配置文件 `config.settings.py`2.删除框架中的示例用例数据3. 编写测试用例七、运行自动化测试方式一:使用pipenv管理虚拟环境1. 激活已存在的虚拟环境2. 运行方式二:依赖包…

Linux-Kafka 3.7.0 Kraft+SASL认证模式 集群安装与部署超详细

1.集群规划 一般模式下,元数据在 zookeeper 中,运行时动态选举 controller,由controller 进行 Kafka 集群管理。kraft 模式架构(实验性)下,不再依赖 zookeeper 集群,而是用三台 controller 节点…

Java的进程和线程

一Java的进程 二Java的线程 多线程 ◆如果在一个进程中同时运行了多个线程,用来完成不同的工作,则称之为“多线程”。 ◆多个线程交替占用CPU资源,而非真正的并行执行。 ◆多线程好处。 ◆充分利用CPU的资源。 ◆简化编程模型。 ◆良好的用…