Linux DNS解释器

作用

DNS(Domain Name System)是互联网上的一项服务,用于将域名和IP地址进行相互映射,使人 更方便的访问互联网 正向解析:域名->IP 反向解析:IP->域名

连接方式

DNS使用53端口监听网络 查看方法: DNS默认以UDP这个较快速的数据传输协议来查询,但没有查询到完整的信息时,就会再次以TCP 协议重新查询则启动DNS时,会同时启动TCP以及UDP的port53

分类

国家顶级域名:采用ISO3166的规定:

cn代表中国,us代表美国,uk代表英国,等等。国家域 名又常记为CCTLD(country code top-level domains,cc表示国家代码contry-code)。

通用顶级域名:

最常见的通用顶级域名有7个 com (公司企业)、 net (网络服务机构) 、org (非营利组织) 、int (国际组织)、 gov (美国的政府部门) 、mil (美国的军事部门) 、edu(教育机构)。

DNS域名解析过程

递归解析:DNS 服务器在收到用户发起的请求时,必须向用户返回一个准确的查询结果。如果 DNS 服务器本地没有存储与之对应的信息,则该服务器需要询问其他服务器,并将返回的查询结果 提交给用户

迭代解析(反复):DNS 服务器在收到用户发起的请求时,并不直接回复查询结果,而是告诉另一 台 DNS 服务器的地址,用户再向这台 DNS 服务器提交请求,依次反复,直到返回查询结果 

搭建DNS域名解析服务器

一般需要修改三部分:

listen-on port 53 { 127.0.0.1; }; 即监听ip及端口

allow-query { localhost; }; 允许那些客户端访问

recursion yes; 是否开启递归查询       

区域配置文件

正向解析(根据计算机的DNS名称即域名,解析出相应的IP地址)

zone "localhost.localdomain" IN { # 正向解析域名 type master; # 服务类型:master表示主服务器,slave表示从服务器,hint根服务器

file "named.localhost"; # 域名与IP地址规则文件存储位置

allow-update { none; }; # 允许那些客户端动态更新本机域名解析 };

# allow-update:允许更新解析库内容,一般关闭

# allow-query: 允许查询的主机,白名单

# allow-tranfter : 允许同步的主机,白名单,常用

# allow-recursion: 允许递归的主机

反向解析(根据计算机的IP地址解析其DNS名称,多用来为服务器进行身份验证)

zone "1.0.0.127.in-addr.arpa" IN { # 表示127.0.0.1的反向解析配置,IP地址需要倒置书写,只 需书写网段即可

type master;

file "named.loopback"; # 反向解析的规则文件保存位置

allow-update { none; };

};

解析资源文件

正向解析资源文件

[root@server ~]# vim /var/named/named.localhost  #查看

$TTL 1D # 设置生存周期时间,为1天,$表示宏定义

@ IN SOA @ rname.invalid. (

# @ :表示zone域,现在表示域名,如baidu.com

# IN SOA : 授权信息开始

# rname.invalid. : 域名管理员的邮箱(不能使用@,使用点替代邮件分隔符@)

                                                         0 ; serial # 序列号,10位以内的整数

                                                        1D ; refresh # 更新频率为1天

                                                        1H ; retry # 失败重试时间为1小时

                                                        1W ; expire # 失效时间1周

                                                        3H ) ; minimum # 缓存时间为3小时

IN                 NS                 ns.域名.

 ns           IN         A         域名解析服务器IP地址

www        IN         A         域名解析服务器IP地址

bbs          IN         A         域名解析服务器IP地址

mail         IN         A         域名解析服务器IP地址

# A:表示IPv4地址, AAAA表示IPv6地址

反向解析资源文件

[root@server ~]# vim /var/named/named.loopback

$TTL 1D

@ IN SOA

@ rname.invalid. (

                                                                0 ;

                                                                serial 1D ;

                                                                refresh 1H ;

                                                                retry 1W ;

                                                                expire 3H ) ; minimum

IN                 NS                 ns.域名. # 域名服务器记录,注意结尾的点

ns                 IN                 A         域名解析服务器的IP地址 

IP地址         PTR         域名.         # PTR 指针记录,用于反向解析

实验:

正向解析

服务端

[root@server ~]# setenforce 0                            #SElinux改为宽容模式

[root@server ~]# systemctl stop firewalld          #关闭防火墙

[root@server ~]# yum install bind -y                   # 服务端安装bind软件

# 服务端配置静态IP

[root@server ~]# nmcli c modify ens32 ipv4.method manual ipv4.addresses 192.168.48.130/24 ipv4.gateway 192.168.88.8 ipv4.dns 114.114.114.114 

[root@server ~]# nmcli c reload

[root@server ~]# nmcli c up ens32

客户端

# 客户端设置静态IP

[root@node1 ~]# nmcli c modify ens32 ipv4.method manual ipv4.addresses 192.168.48.131/24 ipv4.gateway 192.168.88.9 ipv4.dns 114.114.114.114

[root@node1 ~]# nmcli c reload

[root@node1 ~]# nmcli c up ens32

DNS配置

第一步:服务端操作,编辑bind主配置文件

[root@localhost ~]# vim /etc/named.conf   #编辑主配置文件

options {
        listen-on port 53 { 192.168.88.0/24; };          #配置监听ip及端口
        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";
        secroots-file   "/var/named/data/named.secroots";
        recursing-file  "/var/named/data/named.recursing";
        allow-query     { any; };          #配置允许访问的IP

        recursion yes;                 # 重要,允许递归查询,若删除则为迭代查询

第二步:服务端操作,编辑区域配置文件

[root@localhost etc]# vim named.rfc1912.zones          #区域配置文件

zone "openlab.com" IN {        #配置管理区域
        type master;
        file "openlab.com.zone";        #数据文件名称
        allow-update { none; };
};

第三步: 配置数据文件

[root@localhost etc]# cd /var/named
[root@localhost named]# cp named.localhost openlab.com.zone          #复制源文件,重命名为数据文件名称再进行修改

[root@localhost named]# vim  openlab.com.zone

$TTL 1D        # 设置生存周期时间,为1天,$表示宏定义
openlab.com.    IN SOA  openlab.com.    admin.openlab.com. (
                                                                                 0       ; serial
                                                                                1D      ; refresh
                                                                                1H      ; retry
                                                                                1W      ; expire
                                                                                3H )    ; minimum
openlab.com. (域名)                IN    NS (地址类型)     ns.openlab.com.(服务器IP地址)
ns.openlab.com.                          IN      A                                192.168.88.8
www.openlab.com.                      IN      A                                192.168.88.8

 

第四步  服务端重启

 [root@localhost named]# systemctl restart named

测试(客户端)

[root@client ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens32  #网络配置文件

DNS1=192.168.88.8         #修改DNS为服务端IP地址

 

 [root@client ~]# nslookup openlab.com

[root@client ~]# nslookup www.openlab.com

 反向解析

服务端

恢复快照,避免正反向解析冲突

[root@server ~]# setenforce 0                            #SElinux改为宽容模式

[root@server ~]# systemctl stop firewalld          #关闭防火墙

[root@server ~]# yum install bind -y                   # 服务端安装bind软件

第一步  编辑主配置文件

[root@localhost named]# vim /etc/named.conf 

options {
        listen-on port 53 { any; };        # 配置监听IP与端口
        listen-on-v6 port 53 { ::1; };n-on port 53 { any; }; 
        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";
        secroots-file   "/var/named/data/named.secroots";
        recursing-file  "/var/named/data/named.recursing";
        allow-query     { 192.168.88.9; };        #允许IP访问

 

第二步  配置区域文件

[root@localhost named]# vim /etc/named.rfc1912.zones

zone "88.168.192.in-addr.arpa" IN {          #配置区域文件
        type master;
        file "192.168.88.arpa";        #编辑数据文件名称
        allow-update { none; };
};

 

第三步  配置数据文件

[root@localhost named]# cp -a named.localhost 192.168.88.arpa        #复制源文件,改为数据文件名称

[root@localhost named]# vim /etc/named.conf 

$TTL 1D
@       IN SOA          ns.openlab.com.          admin.openlab.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
                IN      NS              ns.openlab.com.
ns.openlab.com. IN      A               192.168.88.8
8               IN      PTR             www.openlab.com.
8               IN      PTR             openlab.com.

 第四步    重启服务

[root@localhost named]# systemctl restart named

测试

客户端

[root@client ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens32  #网络配置文件

DNS1=192.168.88.8         #修改DNS为服务端IP地址

 

 [root@client ~]# nslookup 192.168.88.8

 

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

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

相关文章

3.STM32通信接口之SPI通信---SPI实战(W25Q64存储模块介绍)《精讲》

上一节介绍了SPI的通信过程和方法,接下来就要进行STM32与外围模块通信了,这个模块是一块非易失型存储芯片,能够提供8MB的存储空间。接下来跟着Whappy脚步,进行探索新大陆吧!【免费】W25Q64(中英文数据手册)资源-CSDN文…

嵌入式系统应用-LVGL的应用-平衡球游戏 part2

平衡球游戏 part2 4 mpu60504.1 mpu6050 介绍4.2 电路图4.3 驱动代码编写 5 游戏界面移植5.1 移植源文件5.2 添加头文件 6 参数移植6.1 4 mpu6050 4.1 mpu6050 介绍 MPU6050是一款由InvenSense公司生产的加速度计和陀螺仪传感器,广泛应用于消费电子、机器人等领域…

java将word docx pdf转换为图片(不需要额外下载压缩包,直接导入maven坐标)

(本代码实现的是将第1页转为图片,主要用于制作文件缩略图) pdf转图片容易 docx转图片麻烦,看其他博客可以直接导入maven坐标,但我知道那是需要付费且有时限的包 本着简单实用的心,我找到法子了 pdf转图片:有库直接转…

C#学写了一个程序记录日志的方法(Log类)

1.错误和警告信息单独生产文本进行记录; 2.日志到一定内存阈值可以打包压缩,单独存储起来,修改字段MaxLogFileSizeForCompress的值即可; 3.Log类调用举例:Log.Txt(JB.信息,“日志记录内容”,"通道1"); usi…

linux(centos) 环境部署,安装JDK,docker(mysql, redis,nginx,minio,nacos)

目录 1.安装JDK (非docker)1.1 将文件放在目录下: /usr/local/jdk1.2 解压至当前目录1.3 配置环境变量 2.安装docker2.1 验证centos内核2.2 安装软件工具包2.3 设置yum源2.4 查看仓库中所有docker版本,按需选择安装2.5 安装docker2.6 启动docker 并 开机…

电阻改善信号完整性

1.为什么电路端接电阻能改善信号完整性 由于电信号在PCB上传输,因此在PCB设计中可以把PCB走线认为是信号的通道,当该通道的 物理结构(线宽,线到参考面的距离等)发生变化,特别是有一些突变时,都会…

Java基础面试题,46道Java基础八股文(4.8万字,30+手绘图)

Java是一种广泛使用的编程语言,由Sun Microsystems(现为Oracle Corporation的一部分)在1995年首次发布。它是一种面向对象的语言,这意味着它支持通过类和对象的概念来构造程序。 Java设计有一个核心理念:“编写一次&am…

记录下nginx接口代理配置问题

其中api和api1是前面定义的upstream,ip相同只是端口不同。 一开始/api1/直接 像api一样 proxy_pass http://api1这样是不行的,因为会代理到 后端的 /api1/...接口,而后端实际接口地址是 /api/..... 所以必须像上面写法才能将外网的 /api…

高效流程图绘制:开发设计流程图利器

在选择画流程图的工具时,不同的项目和使用场景会决定最佳的工具。以下是几款常见的流程图工具,并结合具体项目使用场景提供建议: 1. Lucidchart 特点: 在线协作:支持多人实时协作,适合团队合作。模板丰富&…

【Python网络爬虫笔记】7-网络爬虫的搜索工具re模块

目录 一、网络爬虫中的正则表达式和re模块(一)数据提取的精确性(二)处理复杂的文本结构(三)提高数据处理效率 二、正则表达式的内涵(一)、常用元字符(二)、量…

Day4:生信新手笔记 — R语言简单命令与Rstudio配置

一、Rstudio的界面展示 (很像Matlab风格) 二、Rstudio设置字体大小 三、 用Rproject管理工作目录 工作目录(working directory) 即当前所在的目录,是脚本、图片、文件的默认保存位置,也是文件读取的默认位置。R语言只能和一个文件夹进行互动&#xff0…

koa中间件

文章目录 1. koa中间件简介2. 中间件类型1. 应用级中间件2. 路由级中间件3. 错误处理中间件4. 第三方中间件 3.中间件执行流程 1. koa中间件简介 在Koa中,中间件呈现为一个异步函数,该函数支持 async/await 语法,它接收两个参数:…

【开源】A060-基于Spring Boot的游戏交易系统的设计与实现

🙊作者简介:在校研究生,拥有计算机专业的研究生开发团队,分享技术代码帮助学生学习,独立完成自己的网站项目。 代码可以查看项目链接获取⬇️,记得注明来意哦~🌹 赠送计算机毕业设计600个选题ex…

泷羽sec:shell编程(9)不同脚本的互相调用和重定向操作

声明: 学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关&#…

Pod Pending无法调度

根据您提供的Kubernetes调度警告信息,以下是可能的原因分析: Insufficient Memory: 有1个节点因为内存不足而无法调度Pod。这可能是因为该节点上已经运行的Pod消耗了大量内存,没有足够的资源来运行新的Pod。 Pod Affinity/Anti-Affinity: 有…

QT 左右 上下,拉伸 分配窗口大小

要的效果是以下: QT C 两个QWideget A B现在有放在一个窗口QWideget Test内,初始比例要2:8 ,现在我要 A B 两个窗口中间 当鼠标移到他中间时,有条线,可以左右移动来控件 A B 窗口所占的大小widgetB (有 wi…

pyqt6简单应用

from PyQt6.QtWidgets import QWidget,QPushButton,QLineEdit,QLabel,QApplication from PyQt6.QtGui import QPixmap,QIcon,QCursor from PyQt6.QtCore import Qt from PyQt6 import QtCoreimport sysclass Ui_window(QWidget):def __init__(self):super().__init__()# 设置窗…

【Spring篇】初始Spring MVC框架之Spring MVC入门程序编写

🧸安清h:个人主页 🎥个人专栏:【计算机网络】【Mybatis篇】【Spring篇】 🚦作者简介:一个有趣爱睡觉的intp,期待和更多人分享自己所学知识的真诚大学生。 目录 🎯Spring MVC概述 …

祖先序列重建结合机器学习改进双键还原酶-文献精读87

Ancestral Sequence Reconstruction Meets Machine Learning: Ene Reductase Thermostabilization Yields Enzymes with Improved Reactivity Profiles 祖先序列重建结合机器学习:酶还原酶热稳定化产生具有改进反应性特征的酶 摘要 烯还原酶(EREDs&…

华为的USG6000为什么不能ping通

前言: 防火墙usg6000v的镜像 链接: https://pan.baidu.com/s/1uLRk0-hnHRTLYLx1Pnplow?pwdtymp 提取码: tymp 看了好多毒文章,感觉写作业更有意思,可以了解新的知识 内容: 首先看毒文章是这样说的,华为的防火墙是…