linux基本系统服务——DNS服务

一、DNS域名解析原理

DNS,Domain Name System,域名系统:在互联网中由大量域名解析服务器共同提供的一整套关于“域名 <--> IP地址”信息查询的数据系统

    !!!! C/S架构:DNS服务端监听UDP 53端口(处理客户端查询),也监听TCP 53端口(主-辅同步)

    !!!! 客户机向DNS服务器提问:xx域名的IP地址是多少?

#### 如何通过域名找到一个站点

    FQDN,Full Qualified Domain Name,完全限定域名(站点名+域名) ,比如:servera.lab.example.com、www.stu.cn

#### 分层次管理(域名体系结构):

    根域 =》.

    顶级域/一级域 =》.com、.cn

    二级域 (最常见)=》 .example.com、.stu.cn

    三级域(比较少) =》 lab.example.com、……

    站点(使用DNS名称的各服务器)=》 www、mail、ftp、game、news、……

#### 分布式部署(域名服务器):

    每个权威DNS服务器只负责分担自己管辖的一个或多个域,提供这个域内的名称解析服务

    每个权威DNS服务器可以代客户端查询管辖范围外的域名(问其他DNS服务器)

    每个权威DNS服务器可以授权某个子域DNS服务器,告知客户端自己去找子域DNS服务器继续查询

    比如,IANA管理根域(.)的DNS服务器、CNNIC管理一级域.cn的DNS服务器、stu管理二级域.stu.cn的DNS服务器

#### DNS服务器的类型

    权威DNS:需由IANA统一授权管理,管理一个或更多个DNS区域,有公网IP地址

    缓存DNS:运行商或企业自行架设、自行管理,主要面向客户端提供代理查询服务,提高客户体验(缓存加速),无需管理任何区域

#### 域名查询的主要方式

    !!!! 按问题内容分 ——

       正向查询:根据已知的域名查询这个域名的IP地址,比如“域名www.baidu.com的IP地址是多少?”

       反向查询:根据已知的IP地址查询这个IP地址的域名,比如“IP地址39.156.66.18对应的域名是什么?”

    !!!! 按服务方式分 ——

       递归查询:为客户机查询非本DNS服务器管辖的解析记录,主要出现在“客户机 -> 缓存DNS服务器”场景;客户端只发送一次查询请求,剩下的都交给DNS服务器

       迭代查询:告知客户机子域DNS服务器的地址,让客户机自己去找子域DNS查询,主要出现在“缓存DNS -> 权威DNS服务器”场景;客户端需要发送多次查询请求,依次询问根DNS、一级DNS、二级DNS、……

#### 域名解析条目的类型

    TTL:设置解析记录的默认超时时间(缺省单位为秒,可以添加 H/D/W表示小时/天/周)

    SOA:设置区域授权记录(建议参考/var/named/named.localhost范本文件) —— @ IN  SOA   @  admin.@  (  .. .. )

    NS:域名服务器

    MX:邮件服务器记录

    CNAME:域名别名记录

    A:正向解析记录(域名->IPv4地址)

    AAAA:正向解析记录(域名->IPv6地址)

    PTR:反向解析记录(IP地址->域名)

   

二、域名查询(host/nslookup/dig)

软件包bind-utils提供以下域名查询工具:

    host:简单查询工具,用法:host    域名或IP地址   DNS服务器地址

    nslookup:交互式查询工具,用法:nslookup    域名或IP地址   DNS服务器地址

    dig:深度挖掘查询工具,用法:dig  @DNS服务器地址    域名或IP地址   [-t  资源类型]

[root@work ~]# yum   -y   install   bind-utils       //安装域名查询工具包

!!!! 使用上述工具时,需要有可用的DNS服务器

!!!! 如果还没有配置DNS服务器,也可以找一台能上网的主机,练习host/nslookup/dig命令

!!!! 在Windows系统中,自带nslookup命令,也可以向DNS查询域名

练习:查询域名

1)直接查询(向本机设置的默认DNS服务器查询)www.12306.cn的IP地址

C:\Users\TsengYia>nslookup  www.12306.com

服务器:  public1.114dns.com

Address:  172.50.163.10

非权威应答:

名称:    www.12306.com

Address:  112.74.143.83

2)向DNS服务器8.8.8.8查询www.12306.cn的IP地址

C:\Users\TsengYia>nslookup  www.12306.com  8.8.8.8

服务器:  dns.google

Address:  8.8.8.8

非权威应答:

名称:    www.12306.com

Address:  112.74.143.83

3)向8.8.8.8查询IP地址114.114.114.114的域名是多少(注意:大多数IP地址是查不到反向结果的)

C:\Users\TsengYia>nslookup  114.114.114.114  8.8.8.8

服务器:  dns.google

Address:  8.8.8.8

名称:    public1.114dns.com

Address:  114.114.114.114

三、权威DNS服务器-bind正向域设置

BIND,Berkeley Internet Name Domain,伯克利互联网名称服务器

servera(权威DNS服务器,servera.lab.example.com的IP地址是多少)

    1)装包 bind

    2)配置 (主配置、地址库)

    3)起服务  named

   

获取BIND配置帮助:

# man  named.conf

# firefox  file:///usr/share/doc/bind/Bv9ARM.html

   

#### 主配置文件/etc/named.conf,设置DNS全局参数、管理哪些区域(用哪一个地址库)、安全控制、……

# vim  /etc/named.conf

options  {

    listen-on port 53 { 本机的IPv4监听地址; };

    listen-on-v6 port 53 { 本机 ky的IPv6监听地址; };

    directory       "/var/named";          //指定地址库文件的默认存放目录

    allow-query     { 客户机的网段或IP地址; };

    recursion yes;           //是否允许提供递归查询服务

    dnssec-enable yes;       //启用DNS安全

    dnssec-validation yes;      //启用DNS安全校验

};

zone  "区域名"  IN  {

    type  master;            //设置区域类型(master、hint、slave、forward)

    file  地址库文件名或者绝对路径;

};

include   xxxx文件;     //需要在主配置文件中包含xxxx文件

# named-checkconf  //查错工具

TTL,Time To Live,存活时间(DNS解析记录的有效期)

SOA,Start Of Authority,授权记录的开始(管理的区域的信息,以及提供给从DNS服务器用的一些参数)

#### 地址库文件 /var/named/*,设置具体的地址记录(域名->IP地址)

# vim  /var/named/地址库文件名

$TTL   有效记录的生存时间

@  IN  SOA  区域名    管理邮箱地址.  (

    序列号               //十位以内的整数

    刷新时间

    重试时间

    过期时间

    无效记录的生存时间

)

@      NS     当前区域的DNS服务器的域名.

           MX   优先级   当前区域的邮件服务器的域名.

www A      IP地址

mail   A      IP地址

servera       A      IP地址

.. ..

# named-checkzone   区域名    地址库文件的路径和名称           //查错

work(客户机) ==》servera(权威DNS)

实验拓扑:

    servera.lab.example.com,权威DNS,提供域名解析服务(正向域lab.example.com)

    work(客户机):向servera查询域名serverc.lab.example.com的IP地址

1)安装bind包

[root@servera ~]# yum  -y  install  bind

2)调整配置

[root@servera ~]# vim  /etc/named.conf        //修改主配置文件

options {

        listen-on port 53 { any; };           //在本机所有IPv4接口监听

        listen-on-v6 port 53 { any; };        //在本机所有IPv6接口监听

       directory       "/var/named";          //zone地址库文件的默认存放路径

       allow-query     { localhost; 172.25.250.0/24; };        //允许哪些客户机查询

       .. ..

};

       zone "lab.example.com" {               //定义DNS区域

           type master;         //类型为主区域

           file "lab.example.com.zone";       //指定地址库文件名

       };

[root@servera ~]# named-checkconf         //检查主配置文件(无输出即无错)

[root@servera ~]#

[root@servera ~]# vim  /var/named/lab.example.com.zone      //创建正向区域地址库文件

$TTL 1D

@  IN  SOA  @     root.lab.example.com. (

                                        0       ; serial

                                        1D      ; refresh

                                        1H      ; retry

                                        1W      ; expire

                                        3H )    ; minimum

@       NS      servera.lab.example.com.

servera       A       172.25.250.10

serverb       A       172.25.250.11

serverc       A       172.25.250.12

serverd       A       172.25.250.13

[root@servera ~]# chmod  640  /var/named/lab.example.com.zone

[root@servera ~]# chown  :named  /var/named/lab.example.com.zone

[root@servera ~]# named-checkzone  lab.example.com  /var/named/lab.example.com.zone  //检查区域地址文件(OK即无错)

.. ..

OK

3)启动named服务

[root@servera ~]# firewall-cmd  --permanent  --add-service=dns        //开放DNS访问

[root@servera ~]# firewall-cmd  --reload      //重载防火墙

[root@servera ~]# systemctl  enable  named  --now       //启用named服务

4)域名查询测试 —— 向servera查询serverc的IP地址

[root@work ~]# host  serverc.lab.example.com  servera 

Using domain server:

Name: servera

Address: 172.25.250.10#53

Aliases:

serverc.lab.example.com has address 172.25.250.12

四、权威DNS服务器-bind反向域设置

针对网段172.25.250/24,

对应的反向区域的名称 250.25.172.in-addr.arpa

然后在主配置文件中也需要定义也这个区域,并且提供相应的地址库文件

对应的反向地址记录:

12     PTR           完整的域名.

work(客户机) ==》servera(权威DNS)

实验拓扑:

    servera.lab.example.com,权威DNS,提供域名解析服务(正向域lab.example.com、反向域250.25.172.in-addr.arpa)

    work(客户机):向servera查询域名serverc.lab.example.com的IP地址、查询IP地址172.25.250.12的域名

1)修改主配置文件,添加反向域设置

[root@servera ~]# cp  -p  /etc/named.conf{,.bak}     //备份主配置文件

[root@servera ~]# vim  /etc/named.conf

 .. ..

    zone "250.25.172.in-addr.arpa" IN {       //注意反向区域名中网段的倒序写法

        type master;

        file "172.25.250.zone";

    };

2)创建反向区域地址库文件

[root@servera ~]# vim  /var/named/172.25.250.zone

$TTL 300

@       IN SOA  @    root.example.com. (

                                        0       ; serial

                                        1D      ; refresh

                                        1H      ; retry

                                        1W      ; expire

                                        3H )    ; minimum

@        NS      servera.lab.example.com.

10      PTR     servera.backend.lab.example.com.

11      PTR     serverb.backend.lab.example.com.

12      PTR     serverc.backend.lab.example.com.

13      PTR     serverd.backend.lab.example.com.

[root@servera ~]# chmod  640  /var/named/172.25.250.zone

[root@servera ~]# chown  :named  /var/named/172.25.250.zone

[root@servera ~]# named-checkzone  250.25.172.in-addr.arpa /var/named/172.25.250.zone  //检查反向区域地址文件(OK即无错)

.. ..

OK

3)重启named服务

[root@servera ~]# systemctl  restart  named

4)域名查询测试 —— 向servera查询IP地址172.25.250.12的域名

[root@work ~]# host  172.25.250.12  servera 

Using domain server:

Name: servera

Address: 172.25.250.10#53

Aliases:

12.250.25.172.in-addr.arpa domain name pointer serverc.lab.example.com.

扩展小知识(解析库的应用) ——

DNS解析记录的轮询(负载均衡,一个站点对应多个IP地址):

serverd       A       172.25.250.13

serverd       A       72.25.250.13

别名解析记录的设置(一个IP对应多个站点):

servera       A       172.25.250.10

www               CNAME   servera

泛域名解析记录的设置(只查询域名或错误的站点名,也能有结果):

@       NS      servera.lab.example.com.

           A       172.25.250.10

*          A       172.25.250.10

五、缓存DNS服务器-unbound缓存/转发设置

work(客户机) ==》serverb(缓存DNS) ==》servera(权威DNS)

实验拓扑:

    servera.lab.example.com,权威DNS,提供域名解析服务(正向域lab.example.com、反向域250.25.172.in-addr.arpa)

    serverb.lab.example.com,缓存DNS,代理客户端查询,将来自客户端的所有查询请求转发给servera

    work(客户机):向serverb查询域名serverc.lab.example.com的IP地址、查询IP地址172.25.250.12的域名

1)安装unbound包

[root@serverb ~]# yum  -y  install  unbound

2)调整配置

[root@serverb ~]# cp  -p  /etc/unbound/unbound.conf{,.bak}     //备份主配置文件

[root@serverb ~]# vim  /etc/unbound/unbound.conf        //修改主配置文件

server:

       .. ..

       interface: 172.25.250.11        //在指定接口(可以是0.0.0.0,表示本机所有IP地址)提供监听

        access-control: 172.25.250.0/24 allow    //允许哪些网段的客户机使用(可以配置多行),缺省为refuse拒绝

       access-control: 127.0.0.0/8 allow

       domain-insecure:  "lab.example.com"           //标记不安全区域(允许转发查询,避免对客户端做DNSSEC安全验证)

       unblock-lan-zones: yes  //允许查询本地区域

       insecure-lan-zones: yes     //允许查询不安全的本地区域

forward-zone:

       name: "lab.example.com"            //将针对xx区域的查询转发给指定DNS(其余区域走auth-zone上游DNS服务器)

       forward-addr: 172.25.250.10        //指定另一台DNS服务器的IP地址

forward-zone:

        name: "250.25.172.in-addr.arpa"       //将针对xx反向区域的查询转发给指定DNS

        forward-addr: 172.25.250.10

auth-zone:

       name: "."         //对于未设置转发的其他区域,默认从根域开始查询

       for-downstream: no

       for-upstream: yes

       fallback-enabled: yes

       master: b.root-servers.net

       master: c.root-servers.net

       .. ..

[root@serverb ~]# unbound-checkconf       //检查配置文件

unbound-checkconf: no errors in /etc/unbound/unbound.conf

[root@serverb ~]# unbound-control-setup  //首次起服务前,执行此命令生成密钥文件

.. ..

3)启动unbound服务

[root@serverb ~]# firewall-cmd  --permanent  --add-service=dns        //开放DNS访问

[root@serverb ~]# firewall-cmd  --reload      //重载防火墙

[root@serverb ~]# systemctl  enable  unbound  --now         //启用unbound服务

4)客户端查询DNS记录

[student@work ~]$ host  serverc.lab.example.com  serverb  //向serverb查询serverc的IP地址

.. ..

serverc.lab.example.com has address 172.25.250.12

5)管理缓存的DNS数据

[root@serverb ~]# unbound-control   dump_cache       //查看缓存的解析记录

[root@serverb ~]# unbound-control  flush  work.lab.example.com  //清除缓存的某个域名的解析记录

[root@serverb ~]# unbound-control  flush  lab.example.com  //清除缓存的某个区域的所有解析记录

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/91724.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/91724.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据处理和统计分析——08 apply自定义函数

1 apply()函数 1.1 apply()函数简介 Pandas提供了很多数据处理的API&#xff0c;但当提供的API不能满足需求的时候&#xff0c;需要自己编写数据处理函数, 这个时候可以使用apply()函数&#xff1b;apply()函数可以接收一个自定义函数&#xff0c;可以将DataFrame的行或列数据传…

C++冰箱管理实战代码

基于C++的冰箱管理实例 以下是一些基于C++的冰箱管理实例示例,涵盖不同功能场景,每个示例聚焦特定实现点,代码可直接扩展或整合到项目中。 示例1:基础冰箱类定义 class Refrigerator { private:int capacity;std::vector<std::string> items; public:Refrigerator(…

【Python】【数据分析】Python 数据分析与可视化:全面指南

目录1. 环境准备2. 数据处理与清洗2.1 导入数据2.2 数据清洗示例&#xff1a;处理缺失值示例&#xff1a;处理异常值2.3 数据转换3. 数据分析3.1 描述性统计3.2 分组分析示例&#xff1a;按年龄分组计算工资的平均值3.3 时间序列分析4. 数据可视化4.1 基本绘图示例&#xff1a;…

【AI】AIService(基本使用与指令定制)

【AI】AIService(基本使用与指令定制) 文章目录【AI】AIService(基本使用与指令定制)1. 简介2. AIService2.1 引入依赖2.2 编写AIService接口2.3 测试代码3. 指令定制3.1 系统提示词3.2 用户提示词1. 简介 AIService可以被视为应用程序服务层的一个组件&#xff0c;提供对应的…

AAAI赶稿后的心得

总结 已经第三次和老师们一起赶稿了&#xff0c;但是还是纰漏重重&#xff0c;每次都被我的垃圾写作给吓到。每次都手忙脚乱找不到重点&#xff0c;唉&#xff0c;我大概这辈子都成为不了郭老师&#xff1a; 自己把故事先捋清楚&#xff1a; 所有的东西都要抽象出来&#xff0c…

书籍推荐算法研究

## 项目概述本项目是一个完整的书籍推荐系统第五版(Complete Book Recommendation System V5),采用混合推荐策略,能够处理6种不同的用户场景,提供智能化的书籍推荐服务。## 系统架构### 核心设计思路系统采用**混合推荐策略**,结合了以下几种推荐算法:1. **协同过滤推荐…

工具自动生成Makefile

cmake 基础 cmake主要是生成Makefile&#xff0c;以便工程管理&#xff0c;只需要编写CMakeLists.txt安装camkesudo apt install cmake 安装cmake camke --version 查看cmake版本 sudo apt upgrade cmake 升级cmake源码隔离 在工程文件下创建一个build文件&…

Java项目:基于SSM框架实现的校园活动资讯网管理系统【ssm+B/S架构+源码+数据库+毕业论文+远程部署】

摘 要 使用旧方法对校园活动资讯进行系统化管理已经不再让人们信赖了&#xff0c;把现在的网络信息技术运用在校园活动资讯的管理上面可以解决许多信息管理上面的难题&#xff0c;比如处理数据时间很长&#xff0c;数据存在错误不能及时纠正等问题。 这次开发的校园活动资讯网…

关于echarts的性能优化考虑

作为资深前端工程师&#xff0c;在处理 ECharts 性能问题时&#xff0c;核心思路是减少渲染压力、优化数据处理、避免不必要的计算&#xff0c;尤其在大数据量&#xff08;万级以上&#xff09;、高频交互或多图表场景下&#xff0c;性能优化尤为关键。以下是实战中验证过的有效…

汽车EDI:Vitesco EDI 项目案例

Vitesco Technologies&#xff08;纬湃科技&#xff09;脱胎于大陆集团的动力总成部门&#xff0c;是一家于2021年上市的全球领先汽车技术供应商。公司专注于电动出行领域&#xff0c;提供电驱动系统、电池管理系统、功率电子及热管理等关键技术解决方案。同时&#xff0c;其业…

译|Netflix 技术博客:一个利用视觉-语言模型和主动学习高效构建视频分类器的框架

本篇介绍了Netflix的视频标注器&#xff08;VA&#xff09;&#xff0c;一个利用视觉-语言模型和主动学习的交互式框架。其技术亮点在于通过人机协作系统&#xff0c;结合零样本能力和主动学习&#xff0c;引导领域专家高效标注视频数据&#xff0c;显著提升了模型样本效率和平…

前端应用权限设计面面观

目录 1. 权限设计:前端为啥要操这份心? 2. 权限模型的“内功心法”:RBAC 和 ABAC RBAC:简单粗暴的角色分配 ABAC:灵活但烧脑的属性控制 3. 权限数据的“物流体系”:从后端到前端的旅程 权限数据从哪儿来? 权限数据咋存? 权限数据咋用? 4. 路由守卫:权限的“第…

Javaweb————Apache Tomcat服务器介绍及Windows,Linux,MAC三种系统搭建Apache Tomcat

&#x1f3cd;️&#x1f3cd;️&#x1f3cd;️第一部分&#xff1a;什么是服务器&#xff1f; 服务器是远程的一个电脑,里面安装服务器程序监听对应的端口对外提供服务&#xff0c;可以根据用户的请求去获取对应的数据并返回给调用方。 &#x1f3cd;️&#x1f3cd;️&#…

winsock socket通讯为什么UDP服务器无法获取客户端IP?

针对VB6 Winsock开发中UDP服务器无法获取客户端IP的问题&#xff0c;以下是系统性排查方案&#xff1a; 一、基础协议特性确认UDP无连接特性 Winsock的UDP协议本身是无连接的&#xff0c;需通过GetPeerName方法主动获取对端IP&#xff0c;而非自动存储。数据接收处理 必须在Dat…

大模型时代,Transformer 架构中的核心注意力机制算法详解与优化实践

大模型时代&#xff0c;Transformer 架构中的核心注意力机制算法详解与优化实践Transformer 注意力机制深度解析与工业级优化实践一、注意力机制核心原理1.1 基础注意力公式1.2 多头注意力&#xff08;Multi-Head&#xff09;1.3 注意力机制可视化二、工业级优化技术2.1 计算效…

自学嵌入式 day40 51单片机

一、嵌入式&#xff1a;以应用为中心&#xff0c;计算机为基础&#xff0c;软硬件可剪裁的专用计算机系统二、MCU&#xff1a;Micro Controcler Unit 微控制单元->单片机1、特点&#xff1a;集成化高&#xff0c;集成到一块芯片外设&#xff08;GPIO、UART、ADC&#xff09;…

Minimizing Coins(Dynamic Programming)

题目描述Consider a money system consisting of n coins. Each coin has a positive integer value. Your task is to produce a sum of money x using the available coins in such a way that the number of coins is minimal. For example, if the coins are {1,5,7} and t…

Kafka——关于Kafka动态配置

引言在Kafka的运维实践中&#xff0c;参数配置的调整曾是一件令工程师头疼的事情。传统模式下&#xff0c;Broker的所有参数都需要在server.properties中静态定义&#xff0c;任何修改都必须重启Broker才能生效。对于承载着核心业务的生产集群而言&#xff0c;频繁重启不仅意味…

MSQL-聚簇索引与非聚簇索引的比较

聚簇索引详解InnoDB 的聚簇索引特性表数据本身就是聚簇索引&#xff1a;数据行实际存储在聚簇索引的叶子节点中"表就是索引&#xff0c;索引就是表"的结构每个InnoDB表有且只有一个聚簇索引聚簇索引的叶子节点存储的是&#xff1a;真实数据主键作为聚簇索引&#xff…

语音识别数据集

目录 Voice Activity Detection 自己采集&#xff1a; 1. ASR Resources&#xff08;语音识别资源&#xff09; 2. LM Resources&#xff08;语言模型资源&#xff09; 这是一个数据表&#xff1a; 噪声数据集&#xff1a; Voice Activity Detection 自己采集&#xff1a…