Linux DNS域名解析服务器

DNS简介

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 ,用于反向域名解析,因
此称为反向域名。

域名服务器的类型划分

  • 根域名服务器:最高层次的域名服务器,也是最重要的域名服务器。所有的根域名服务器都知道所有的 顶级域名服务器的域名和IP地址。不管是哪一个本地域名服务器,若要对因特网上任何一个域名进行解 析,只要自己无法解析,就首先求助根域名服务器。所以根域名服务器是最重要的域名服务器。假定所 有的根域名服务器都瘫痪了,那么整个DNS系统就无法工作。需要注意的是,在很多情况下,根域名服 务器并不直接把待查询的域名直接解析出IP地址,而是告诉本地域名服务器下一步应当找哪一个顶级域名 服务器进行查询。
  • 顶级域名服务器:负责管理在该顶级域名服务器注册的二级域名。
  • 权限域名服务器:负责一个“区”的域名服务器。
  • 本地域名服务器:本地域名服务器不属于域名服务器的层次结构,但是它对域名系统非常重要。当一个 主机发出DNS查询请求时,这个查询请求报文就发送给本地域名服务器。
  • 主从DNS服务器:为了提高域名服务器的可靠性,DNS域名服务器都把数据复制到几个域名服务器来保 存,其中的一个就是主DNS服务器(Master name server),负责解析至少一个域。其他的是辅助 (从)DNS服务器(Slave name server):负责解析至少一个域,是主DNS服务器的辅助。当主域名服 务器出故障时,辅助域名服务器可以保证DNS的查询工作不会中断。主域名服务器定期把数据复制到辅 助域名服务器中,而更改数据只能在主域名服务器中进行。这样就保证了数据的一致性。

 DNS域名解析的过程

> 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服务器配置

关于服务端

dns服务的安装与启用

安装

dnf install bind -y

启用

systemctl enable --now bind 

开放服务

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服务器为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. #邮件解析记录
3.测试实验结果
dig -t A www.easylee.org @172.25.254.100 ##查询A记录
dig -t mx easylee.org @172.25.254.100 ##查询MX记录

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

DNS的反向解析

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       ; serial1D     ; refresh1H     ; retry1W     ; expire3H )   ; minimumNS     dns.easylee.org.
dns     A       172.25.254.100
111     PTR     bbs.easylee.org.
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

实施方法

1.注释在主配置文件中默认的zone语句块
/*
zone "." IN {type hint;file "named.ca";
};
include "/etc/named.rfc1912.zones";
*/
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";
};
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       ; serial1D     ; refresh1H     ; retry1W     ; expire3H )   ; minimumNS     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

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     ; refresh1H     ; retry1W     ; expire3H )   ; minimumNS     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.
3.测试数据同步性
]# dig -t A www.easylee.org @172.25.254.100
]# dig -t A www.easylee.org @172.25.254.200

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

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

相关文章

Vercel部署前端部署

Vercel 部署 今天要讲的是如何对别人向自己的开源仓库提的PR进行自动代码审核 1. 注册并登录Vercel 访问 Vercel官网点击右上角的"Sign Up"选择使用GitHub、GitLab、Bitbucket或邮箱注册完成注册流程并登录 2. 连接代码仓库 在Vercel仪表板,点击"New Proje…

LeetCode面试题04 检查平衡性

题目: 实现一个函数,检查二叉树是否平衡。在这个问题中,平衡树的定义如下:任意一个节点,其两棵子树的高度差不超过 1。 一、平衡树定义: 二叉树,一种由节点组成的树形数据结构,每…

【一文了解】C#基础-接口

目录 1. 定义 2. 接口的特点与规则 3. 接口的实现 3.1单接口实现 3.2多接口实现 4. 接口的作用和用途 1)扩展行为 2)规范行为 3)降低耦合 5. 接口与继承的比较 1)继承 2)接口 6. 接口与抽象类的比较 1)IComparable(比较器,常用) 2)IComparer(比较器)…

Notable是一款优秀开源免费的Markdown编辑器

一、Notable简介 ‌ Notable‌是一款开源的跨平台Markdown编辑器,支持Linux、MacOS、Windows以及国产操作系统等多种主流操作系统。它以其高颜值和强大的功能,成为了许多用户的首选工具。 主要特性 实时预览‌: Notable提供了实时预览功能&…

方案解读:46页数字化企业制造运营管理(MOM)系统运营实践方案

本文概述了数字化企业制造运营管理(MOM)系统的核心要素与实践路径,深入探讨了数字化企业建设的丰富内涵。数字化企业以智能制造为核心,融合了智能终端、智能制造单元、工业4.0边缘技术、赛博物理系统(CPS)等前沿技术,构建了数字化车间、智能工厂等高效生产环境。通过工业…

安卓报错Switch Maven repository ‘maven‘....解决办法

例如:Switch Maven repository ‘maven(http://developer.huawei.com/repo/)’ to redirect to a secure protocol 在库链接上方添加配置代码:allowInsecureProtocol true

es实现上传文件查询

es实现上传文件查询 上传文件,获取文件内容base64,使用es的ingest-attachment文本抽取管道转换为文字存储 安装插件 通过命令行安装(推荐) 1.进入 Elasticsearch 安装目录 2.使用 elasticsearch-plugin 命令安装 bin/elastics…

采集opc ua转profinet IO项目案例

目录 1 案例说明 1 2 VFBOX网关工作原理 1 3 准备工作 2 4 配置VFBOX网关采集OPC UA的数据 2 5 用PROFINET IO协议转发数据 4 6 案例总结 6 1 案例说明 设置网关采集OPC UA设备数据把采集的数据转成profinet IO协议转发给其他系统。 2 VFBOX网关工作原理 VFBOX网关是协议转换…

linux 安装composer

下载composer curl -sS https://getcomposer.org/installer | php下载后设置环境变量,直接通过命令composer -v mv composer.phar /usr/local/bin/composer查看版本看是否安装成功 composer -v

可视化建模以及UML期末复习----做题篇

一、单项选择题。(20小题,每小题2分,共40分) 1、UML图不包括( ) A、用例图 B、状态机图 C、流程图 D、类图 E、通信图 答案:C、流程图 UML中不包括传统意义上的流程图,流程图通常是指B…

VBA高级应用30例应用在Excel中的ListObject对象:向表中添加注释

《VBA高级应用30例》(版权10178985),是我推出的第十套教程,教程是专门针对高级学员在学习VBA过程中提高路途上的案例展开,这套教程案例与理论结合,紧贴“实战”,并做“战术总结”,以…

Mac mini m4本地跑大模型(ollama + llama + ComfyUI + Stable Diffusion | flux)

安装chat大模型(不推荐,本地运行的大模型只能聊废话,不如网页版使用openAI等高效) 首先下载ollama的安装包 https://ollama.com/ 点击启动访问:http://localhost:11434 Ollama is running 代表已经运行起来了&#x…

借助Aspose.Cells ,在 Excel 中将文本转换为数字

在 Excel 中将文本转换为数字是一项常见要求。许多用户会遇到以文本形式存储的数字,这可能会导致计算错误。此问题会影响财务、数据分析和报告。将这些文本条目转换为实际数字对于准确的数据处理至关重要。在这篇博文中,我们将探讨如何使用 C# 将以文本形…

mysql 报错 World-writable config file ‘/etc/my.cnf‘ is ignored.

/etc/my.cnf 配置文件, 或着docker 挂载的配置文件(宿主机中的配置文件),权限过大 如是二进制启动 chmod 644 /etc/my.cnf 如是docker启动 chmod 644 /opt/docker-data/mysql/conf/my.cnf 重启服务,就可以了 MySQL篇之解决启动时报错:Warning: World-writable …

Erlang socket编程(二)

模拟服务器和客户端通信 %%%------------------------------------------------------------------- %%% author Administrator %%% copyright (C) 2024, <COMPANY> %%% doc %%% %%% end %%% Created : 03. 12月 2024 22:28 %%%---------------------------------------…

2024 年 11 月区块链游戏研报:牛市加持下的 GameFi 破局之路

2024 年 11 月区块链游戏研报 作者&#xff1a;Stella L (stellafootprint.network) 数据来源&#xff1a;Footprint Analytics 区块链游戏 Research 页面 2024 年 11 月 Web3 游戏行业市场增长显著但大规模采用策略仍在演进。随着比特币创下历史新高并接近 10 万美元里程碑…

使用ssh免密登录实现自动化部署rsync+nfs+lsync(脚本)

单机一键部署sshrsyncnfslsync 执行准备 主机信息 主机角色外网IP内网IP主机名nfs、lsync10.0.0.31176.16.1.31nfs客户端10.0.0.7176.16.1.7web01rsync、nfs10.0.0.41172.16.1.41backup 秘钥信息 #web01可以免密连接nfs和backup [rootweb01 ~]# ssh-keygen [rootweb01 ~]#…

数据质量规则(Data Quality Rules)

数据质量规则&#xff08;Data Quality Rules&#xff09;是指用来确保数据的准确性、完整性、一致性和可用性的标准或逻辑规则。这些规则通常在数据集成、数据存储和数据分析过程中执行&#xff0c;以保证数据符合预期的业务需求或技术规范。 以下是数据质量规则的分类及其内…

QT 多级嵌套结构体,遍历成员--半自动。<模板+宏定义>QTreeWidget树结构显示

Qt的QTreeWidget来显示嵌套结构体的成员&#xff0c;并以树形结构展示。 #include <QApplication> #include <QTreeWidget> #include <QTreeWidgetItem> #include <QString> #include <cstdint>// 假设这些是你的结构体定义 struct BaseMeterPa…

用Go语言重写Linux系统命令 -- nc简化版

用Go语言重写Linux系统命令 – nc简化版 1. 引言 netcat&#xff0c;简称 nc&#xff0c;被誉为网络工具中的“瑞士军刀”&#xff0c;是网络调试与分析的利器。它的功能十分强大&#xff0c;然而平时我们经常使用的就是他的连通性测试功能&#xff0c;但是nc是被设计用来测试…