Linux笔记9 DNS域名解析服务器

news2024/12/23 10:29:46

简介

DNS(Domain Name System)是互联网上的一项服务,它作为将域名和IP地址相互映射的一个分 布式数据库,能够使人更方便的访问互联网。

DNS使用的是53端口,

通常DNS是以UDP这个较快速的数据传输协议来查询的,但是没有查询到完整的信息时,就会再次 以TCP这个协议来重新查询所以启动DNS时,会同时启动TCP以及UDP的port53。

因特网的域名结构

由于因特网的用户数量较多,所以因特网在命名时采用的是层次树状结构的命名方法。任何一个连 接在

因特网上的主机或路由器,都有一个唯一的层次结构的名字,即域名(domain name)。“域” (domain)是名字空间中一个可被管理的划分

国家顶级域名:采用ISO3166的规定。如:cn代表中国,us代表美国,uk代表英国,等等。国家域 名又常记为ccTLD(country code top-level domains,cc表示国家代码contry-code)。

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

基础结构域名(infrastructure domain):这种顶级域名只有一个,即arpa,用于反向域名解析,因 此称为反向域名。

域名服务器的类型划分

DNS域名解析的过程

 

]# nslookup
> set type=ns
> . 
Non-authoritative answer:
. nameserver = b.root-servers.net. 
*** ***
> set type=a
> b.root-servers.net.
Non-authoritative answer:
Name:   b.root-servers.net
Address: 170.247.170.2
> server 198.97.190.53
> set type=ns
> com.
Authoritative answers can be found from:
com     nameserver = a.gtld-servers.net.
*** ***
a.gtld-servers.net     internet address = 192.5.6.30
> server 192.33.14.30
Default server: 192.33.14.30
Address: 192.33.14.30#53
> set type=ns
> bilibili.com.
> server 1.12.0.17
> set type=a
> www.bilibili.com
www.bilibili.com       canonical name = a.w.bilicdn1.com.
> a.w.bilicdn1.com.

DNS服务器配置

关于服务端

软件安装包bind
服务名称named
主配置文件/etc/named.conf
数据目录/var/named
端口tcp/53 udp/53

dns服务的安装与启用

安装

dnf install bind -y

启用

systemctl enable --now named

firewall-cmd --permanent --add-service=dns

firewall-cmd --reload

开放服务

vim /etc/named.conf

listen-on port 53 { any; }    ##在本地所有网络接口上开启53端口

allow-query { any; };          ##允许查询A记录的客户端列表

dnssec-validation no;        ##禁用dns检测使dns能够缓存外部信息到本纪

systemctl restart named

DNS企业级高级配置

高速缓存dns

高速缓存dns是一个非权威的dns,在dns服务器中本身并没有数据

当客户需要解析域名时首先查询缓存中是否有数据,如果没有就会从指定的dns服务器中缓存

高速缓存dns可以大大节省内网在做地址解析上所需要花费的时间

高速缓存配置参数

vim /etc/named.conf
forwarders { 114.114.114.114; };

systemctl restart named

DNS的正向解析

作用:当客户设定当前dns服务器为dns解析服务器时,正向解析即为客户提供A记录

           客户提供域名,dns服务器负责把域名解析成对应IP

实施方法

1.编写zones文件设定要维护的域

vim /etc/named.rfc1912.zone
zone "easylee.org" IN { ##维护的域名
type master; ##当前服务器位主dns
file "easylee.org.zone"; ##域名A记录文件
allow-update { none; }; ##允许更新主机列表
};

2.根据zones文件中的指定生成A记录文件

cd /var/named/
cp -p named.localhost westos.com.zone
$TTL 1D ##TIME-TOLIVE(dns地址保存时间长度默认是“S”)
@
      IN SOA dns.easylee.org. root.easylee.org. ( ##SOA授权起始
(Start of Authority)
 ##负责管理管理员邮
箱,NS服务器名称等7个信息
                                       0       ; serial #域名版本序列号
                                       1D     ; refresh #刷新时间(辅助dns)
                                       1H     ; retry #重试时间(辅助dns)
                                       1W     ; expire #过期时间
                                       3H )   ; minimum #A记录最短有效期,如
果$TTL被设定那么一设定值为准
               NS     dns.easylee.org. #nameserver 域名
dns             A       172.25.254.100 #nameserver A记录
www             CNAME   node.a.easylee.org. #Canonical Name
(规范名称,A记录别名)
node.a         A       172.25.254.101 #A记录
node.a         A       172.25.254.102
easylee.org.   MX 1    172.25.254.111. #邮件解析记录

注意

当更改完毕DNS服务的配置文件后一定要重启服务后更改内容才能生效

重启服务的命令为: systemctl restart namd

如果重启服务失败基本可以确定为配置文件的内容更改的有问题可以使用的查看命令为: journalctl -xeu named.service

3.测试实验结果

dig -t A www.easylee.org @172.25.254.100 ##查询A记录
dig -t mx easylee.org @172.25.254.100 ##查询MX记录

注意:在查询结果时会有几种反馈值

状态码状态码含义
NOERROR查询成功
REFUSED查询被拒绝
SERVFAIL查询失败
NXDOMAIN查询无此结果

DNS的反向解析

作用:当客户设定当前dns服务器为dns解析服务器时,正向解析即为客户提供PRT记录

           客户提供域名,dns服务器负责把域名解析成对应IP

实施方法

1.编写zones文件设定要维护的域

]# vim /etc/named.rfc1912.zones
...
zone "254.25.172.in-addr.arpa" IN {
       type master;
       file "172.25.254.ptr";
       allow-update { none; };
};
...

2.根据zones文件中的指定生成A记录文件

]# cd /var/named/
]# cp -p named.loopback 172.25.254.ptr
]# vim 172.25.254.ptr
$TTL 1D
@       IN SOA dns.easylee.org. root.easylee.org. (
                                       0       ; serial
                                       1D     ; refresh
                                       1H     ; retry
                                       1W     ; expire
                                       3H )   ; minimum
       NS     dns.easylee.org.
dns     A       172.25.254.100
111     PTR     bbs.easylee.org.

注意: 注意配置完成后需要重启named服务,否则不生效!!

3.测试实验结果

]# dig -x 172.25.254.111 @172.25.254.100

DNS多向解析方案

在企业中服务器不可能在同一个网段,不同网段的服务器是不是需要用多台dns来满足服务器需求? 根据这一企业需求我们可以在DNS中通过访问设置,让不同网段的服务器都解析到自己网段的相应地址,这就是DNS多项解析

配置实验环境

在当前网卡中添加所需网段IP

]# ip addr add 192.168.0.100/24 dev ens160

注意

在添加完毕这个IP后ens160这块网卡上就有两个IP

172.25.254.100

192.168.0.100

我们用这两个不同网段的IP来模拟多网段

当前用ip addr 命令添加的IP是临时添加,当网卡被刷新后该IP失效

实施方法

1.注释在主配置文件中默认的zone语句块

/*
zone "." IN {
       type hint;
       file "named.ca";
};
include "/etc/named.rfc1912.zones";
*/

注意:在DNS配置语法中/*表示注释开始*/表示注释结束

2.添加view语句块来限制访问数据走向

view net-172 {
       match-clients { 172.25.254.0/24; };
       zone "." IN {
               type hint;
               file "named.ca";
       };
       include "/etc/named.rfc1912.zones";
};
view net-192 {
       match-clients { 192.168.0.0/24; };
       zone "." IN {
               type hint;
               file "named.ca";
       };
       include "/etc/named.rfc192.zones";
};

注意

view中的match-clients是用来匹配访问来源的

匹配访问来源可以填写多个,每个之间用空格分隔

3.生成并配置zones文件

]# cp -p /etc/named.rfc1912.zones /etc/named.rfc192.zones
]# vim /etc/named.rfc192.zones
zone "easylee.org" IN {
       type master;
       file "easylee-192.org.zone";
       allow-update { none; };
};

 4.生成并配置A记录文件

]# cp -p /var/named/easylee.org.zone /var/named/easylee-192.org.zone
]# vim /var/named/easylee-192.org.zone
$TTL 1D
@       IN SOA dns.easylee.org. root.easylee.org. (
                                       0       ; serial
                                       1D     ; refresh
                                       1H     ; retry
                                       1W     ; expire
                                       3H )   ; minimum
               NS     dns.easylee.org.
dns            A       192.168.0.100
www            CNAME   node.a.easylee.org.
node.a         A       192.168.0.101
node.a         A       192.168.0.102
easylee.org.   MX 5    192.168.0.111.

注意:修改完毕配置文件后一定要重启服务

主从DNS服务器

为了提高域名服务器的可靠性,DNS域名服务器都把数据复制到几个域名服务器来保存,其中的一个就 是主DNS服务器(Master name server),负责解析至少一个域。其他的是辅助(从)DNS服务器 (Slave name server):负责解析至少一个域,是主DNS服务器的辅助。当主域名服务器出故障时,辅 助域名服务器可以保证DNS的查询工作不会中断。主域名服务器定期把数据复制到辅助域名服务器中, 而更改数据只能在主域名服务器中进行。这样就保证了数据的一致性

1.配置实验环境

新建一台主机作为辅助DNS主机,并配置好网络和软件仓库

在新建主机中安装DNS服务并保证服务可以被访问

2.对辅助DNS进行配置

修改zones文件设定要做主从的域

]# vim /etc/named.rfc1912.zones
zone "easylee.org" IN {
       type slave;
       masters { 172.25.254.100; };
       file "slaves/easylee.org.zone";
//     allow-update { none; };
};

3.启动服务并测试

]# systemctl enable --now named
]# dig -t A www.easylee.org @172.25.254.200

注意:以上操作除了测试命令外都在辅助dns中进行,在实验进行时一定要分清楚那个是主dns那个是辅助dns

4.解决数据时时同步问题

主从dns经过上述设定后存在数据同步延迟,在主dns中更改数据后要等到下个同步周期的时间到来才能 进行同步

下面我们就来解决下数据同步的延迟问题

1.在主dns中设置数据更改后主动通知对象

]# vim /etc/named.rfc1912.zones
zone "easylee.org" IN {
       type master;
       file "easylee.org.zone";
       allow-update { none; };
       also-notify { 172.25.254.200; };
};

2.更改A记录文件测试结果

]# vim /var/named/easylee.org.zone
$TTL 1D
@       IN SOA dns.easylee.org. root.easylee.org. (
                                       2023032901     ; serial #更改A记录后一
定要更新serial值
                                       1D     ; refresh
                                       1H     ; retry
                                       1W     ; expire
                                       3H )   ; minimum
               NS     dns.easylee.org.
dns             A       172.25.254.100
www             CNAME   node.a.easylee.org.
node.a         A       172.25.254.200
node.a         A       172.25.254.202
easylee.org.   MX 5   172.25.254.111.

注意:serial值必须是增量更改,其最大位数为10位,在企业中一般会用这个数字来记录更改时间

3.测试数据同步性

]# dig -t A www.easylee.org @172.25.254.100
]# dig -t A www.easylee.org @172.25.254.200

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

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

相关文章

编程的“超能力”:解锁 MarsCode AI 的智能助手

文章目录 前言MarsCode AI 提供的超能力**1. 代码补全 | Code Completion**你是否曾卡在函数的中途,不知道下一行该怎么写?MarsCode AI 就是你的灵感缪斯!示例 **2. 代码解释 | Explain Code**“这段代码是干嘛的?”当你面对团队老…

大数据新视界 -- 大数据大厂之 Hive 数据导入:多源数据集成的策略与实战(上)(3/ 30)

💖💖💖亲爱的朋友们,热烈欢迎你们来到 青云交的博客!能与你们在此邂逅,我满心欢喜,深感无比荣幸。在这个瞬息万变的时代,我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

提升搜索体验!—— 推出 Elastic Rerank 模型(技术预览版)

作者:来自 Elastic Shubha Anjur Tupil 几分钟内即可开始使用 Elastic Rerank 模型:强大的语义搜索功能,无需重新索引,提供灵活性和成本控制;高相关性、顶级性能和文本搜索效率。 使用我们全新的先进跨编码器 Elastic …

STM32+模拟或硬件IIC+SHT20驱动问题:接上拉电阻、BUSY死锁?

主要问题: 1,使用STM32F103C8T6,模拟IIC,SCL和SDA口配置为推挽输出上拉,主要是SDA脚,每次都要输出输入模式重新配置,虽然也能通信,但不稳定,出错率大; 2&…

Windows11和Ubuntu用PointNet++训练自己的数据集(部件分割模型)

省流: (1)不管是Linux还是Windows都不影响,只要有pycharm或者vscode即可,啥系统都行。 (2)此外由于自己的需求,所以只做物体部件分割(partseg)任务&#xff0…

【git】git回退到之前版本+拓展git命令

一、问题 git提交有时候会出错&#xff0c;想回退到之前的版本 1、命令git reset --soft <commit_id> commit_id【回退到的编号】 2、git push --force-with-lease origin <branch_name> branch_name【分支名】 二、拓展 1、git bash 1、进入任意磁盘 cd 磁盘…

Golang使用etcd构建分布式锁案例

在本教程中&#xff0c;我们将学习如何使用Go和etcd构建分布式锁系统。分布式锁系统对于管理对分布式系统中共享资源的并发访问至关重要。它有助于维护一致性&#xff0c;防止竞争条件&#xff0c;并确保在任何给定时间只有一个进程独占访问资源。 我们将使用Go作为编程语言&am…

开源数据同步中间件(Dbsyncer)简单玩一下 mysql to mysql 的增量,全量配置

一、什么是Dbsyncer 1、介绍 Dbsyncer是一款开源的数据同步中间件&#xff0c;提供MySQL、Oracle、SqlServer、PostgreSQL、Elasticsearch(ES)、Kafka、File、SQL等同步场景&#xff0c;支持上传插件自定义同步转换业务&#xff0c;提供监控全量和增量数据统计图、应用性能预警…

element-plus的el-tree的双向绑定

el-tree改造了下 可选可取消 有默认值 不包含父级id&#xff08;也可打开注释 包含父级id&#xff09; 默认展开 点击节点也可触发选择 节点内容自定义 <template><div class"absolute"><el-scrollbar class"pall"><div class"…

微信小程序报错:http://159.75.169.224:7300不在以下 request 合法域名列表中,请参考文档

要解决此问题&#xff0c;需打开微信小程序开发者工具进行设置&#xff0c;打开详情-本地设置重新运行&#xff0c;该报错就没有啦

医疗系统国产数据库高质量发展路径探析

信息工程人员操作数据库 一、国外数据库在医疗系统中的困境 &#xff08;一&#xff09;数据分散与难以整合 在美国&#xff0c;分散式医疗服务成为癌症研究数据库优化的巨大障碍。患者先在社区接受肿瘤科医生常规检查&#xff0c;再到学术医疗中心进行尖端治疗&#xff0c;然…

C语言——验证“哥德巴赫猜想”

问题描述&#xff1a; 验证"哥德巴赫猜想" 任何一个大于2的偶数都可以表示为两个质数之和。例如&#xff0c;4可以表示为22&#xff0c;6可以表示为33&#xff0c;8可以表示为35等 //验证"哥德巴赫猜想" //任何一个大于2的偶数都可以表示为两个质数之和…

Windows平台Unity3D下RTMP播放器低延迟设计探讨

技术背景 好多开发者希望我们分享下大牛直播SDK是如何在Unity下实现低延迟的RTMP播放的&#xff0c;以下是一些降低 Unity 中 RTMP 播放器延迟的方法&#xff1a; 一、选择合适的播放插件或工具 评估和选用专业的流媒体插件 市场上有一些专门为 Unity 设计的流媒体插件&…

速通前端篇 —— CSS

找往期文章包括但不限于本期文章中不懂的知识点&#xff1a; 个人主页&#xff1a;我要学编程程(ಥ_ಥ)-CSDN博客 所属专栏&#xff1a;速通前端 目录 CSS的介绍 基本语法规范 CSS选择器 标签选择器 class选择器 id选择器 复合选择器 通配符选择器 CSS常见样式 颜…

MySQL并发控制(二):锁

只改一行语句&#xff0c;为什么锁那么多 注1&#xff1a;MySQL后面的版本可能会改变加锁策略&#xff0c; 所以这个规则只限于截止到现在的最新版本&#xff0c; 即5.x系列 注2&#xff1a;因为间隙锁在可重复读隔离级别下才有效&#xff0c; 所以本篇文章接下来的描述&#…

从零开始的使用SpringBoot和WebSocket打造实时共享文档应用

在现代应用中&#xff0c;实时协作已经成为了非常重要的功能&#xff0c;尤其是在文档编辑、聊天系统和在线编程等场景中。通过实时共享文档&#xff0c;多个用户可以同时对同一份文档进行编辑&#xff0c;并能看到其他人的编辑内容。这种功能广泛应用于 Google Docs、Notion 等…

PHP保存base64编码图片,图片有一部分是灰色块儿,原因和解决办法

文章目录 场景原因解决方案完整的代码前端代码php代码 场景 我有个需求&#xff0c;移动端h5上传多张的图片。用input file可以上传多张&#xff0c;但是现在照片体积越来越大&#xff0c;同时上传多张会因为体积过大&#xff0c;导致上传失败。如果是小程序会好很多&#xff…

vue图片之放大、缩小、1:1、刷新、左切换、全屏、右切换、左旋咋、右旋转、x轴翻转、y轴翻转

先上效果&#xff0c;代码在下面 <template><!-- 图片列表 --><div class"image-list"><img:src"imageSrc"v-for"(imageSrc, index) in images":key"index"click"openImage(index)"error"handleI…

Oracle EBS FA 如何打开关闭的资产会计期间?

用户“运行折旧”,误勾选为“关闭期间”,还有一部分资产还需要操作报废和调整,希望后台打开关闭的资产会计期 系统环境 RDBMS : 12.1.0.2.0 Oracle Applications : 12.2.9 解决方案 由官方提供SQL脚本代码如下: /*rollback120.sql - for Release 12.X only(based on r…

Hash、HASHTABLE底层原理【Redis对象篇】

&#x1f3c6; 作者简介&#xff1a;席万里 ⚡ 个人网站&#xff1a;https://dahua.bloggo.chat/ ✍️ 一名后端开发小趴菜&#xff0c;同时略懂Vue与React前端技术&#xff0c;也了解一点微信小程序开发。 &#x1f37b; 对计算机充满兴趣&#xff0c;愿意并且希望学习更多的技…