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…

Qt—QLineEdit 使用总结

文章参考:Qt—QLineEdit 使用总结 一、简述 QLineEdit是一个单行文本编辑控件。 使用者可以通过很多函数,输入和编辑单行文本,比如撤销、恢复、剪切、粘贴以及拖放等。 通过改变 QLineEdit 的 echoMode() ,可以设置其属性,比如以密码的形式输入。 文本的长度可以由 m…

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…

redisson-spring-data与Spring-Data-Redis的版本关系问题

redisson-spring-boot-starter https://github.com/redisson/redisson/tree/master/redisson-spring-boot-starter https://github.com/redisson/redisson/tree/master/redisson-spring-data#spring-data-redis-integration 将 Redisson 与 Spring Boot 库集成。依赖于Spring…

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

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

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

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

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

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

2411mfc,修改按钮颜色

添加消息:ON_WM_CTLCOLOR() //在OnInitDialog()方法中添加{HWND hSatateWnd GetDlgItem(IDC_CHK)->GetSafeHwnd();SetWindowTheme(hSatateWnd, _T(""), _T(""));}头文件中: afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);HBRUSH O…

python(18) : flask_sqlalchemy 配置sqlserver数据库对象

1.安装依赖 pip3 install flask_sqlalchemy -i https://mirrors.aliyun.com/pypi/simple/ requests2.数据库配置信息(db_manager.py) import osfrom flask import Flask from flask_cors import CORS from flask_sqlalchemy import SQLAlchemydatabase testapp Flask(__nam…

3248. 矩阵中的蛇

3248. 矩阵中的蛇 题目链接&#xff1a;3248. 矩阵中的蛇 代码如下&#xff1a; class Solution { public:int finalPositionOfSnake(int n, vector<string>& commands){int i 0, j 0;for (string& command : commands){if (command "LEFT") { j…

React进阶面试题目(二)

React 组件声明的方法有哪些&#xff1f;各有什么不同&#xff1f; React 组件声明的方法主要有三种&#xff1a; 无状态函数式组件&#xff1a;这种组件只负责根据传入的props来展示&#xff0c;不涉及到state状态的操作。组件不会被实例化&#xff0c;整体渲染性能得到提升…

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

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

IPv6 NA RTR/SOL/OVR标志位,单播多播选择,ndppd代理和kernel配置

NA消息用单播还是多播的判断理由 单播回复&#xff08;Unicast&#xff09;&#xff1a; 如果客户端发送 RS 消息时&#xff0c;使用的是一个全局地址或链路本地地址作为源地址&#xff0c;则 RA 消息会单播回复到客户端的源地址。这种方式减少了网络中的广播流量&#xff0c;…

koa中间件

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

Nuxt3配置局域网和移动端访问

Nuxt3配置局域网访问 这样配置的好处是&#xff0c;处于开发环境时&#xff0c;同一个局域网的其他伙伴可以通过IP地址端口号访问nuxt项目&#xff0c;方便其他人预览项目效果和进度。 nuxt.config.ts // https://nuxt.com/docs/api/configuration/nuxt-config const isDev …