Linux搭建dns主从服务器

一、实验要求

配置Dns主从服务器,能够实现正常的正反向解析

二、知识点

1、DNS简介

DNS(Domain Name System)是互联网上的一项服务,它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网。 DNS系统使用的是网络的查询,那么自然需要有监听的port。DNS使用的是53端口,在/etc/services(搜索domain)这个文件中能看到。通常DNS是以UDP这个较快速的数据传输协议来查询的,但是没有查询到完整的信息时,就会再次以TCP这个协议来重新查询。所以启动DNS时,会同时启动TCP以及UDP的port53。

2、DNS域名解析的过程

1、在浏览器中输入www . qq .com 域名,操作系统会先检查自己本地的hosts文件是否有这个网址映射关系,如果有,就先调用这个IP地址映射,完成域名解析。 2、如果hosts里没有这个域名的映射,则查找本地DNS解析器缓存,是否有这个网址映射关系,如果有,直接返回,完成域名解析。 3、如果hosts与本地DNS解析器缓存都没有相应的网址映射关系,首先会找TCP/IP参数中设置的首选DNS服务器,在此我们叫它本地DNS服务器,此服务器收到查询时,如果要查询的域名,包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析,此解析具有权威性。 4、如果要查询的域名,不由本地DNS服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析,此解析不具有权威性。

5、如果本地DNS服务器本地区域文件与缓存解析都失效,则根据本地DNS服务器的设置(是否设置转发器)进行查询,如果未用转发模式,本地DNS就把请求发至13台根DNS,根DNS服务器收到请求后会判断这个域名(.com)是谁来授权管理,并会返回一个负责该顶级域名服务器的一个IP。本地DNS服务器 收到IP信息后,将会联系负责.com域的这台服务器。这台负责.com域的服务器收到请求后,如果自己无法解析,它就会找一个管理qq.com的DNS服务器地址给本地DNS服务器。当本地DNS服务器收到这个地址后,就会找qq.com域服务器,重复上面的动作,进行查询,直至找到www . qq .com主机。 6、如果用的是转发模式,本地DNS服务器就会把请求转发至上一级DNS服务器,由上一级服务器进行解析,上一级服务器如果不能解析,或找根DNS或把请求转至上上级,以此循环。找到最后把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机。 注:从客户端到本地DNS服务器是属于递归查询,而DNS服务器之间使用的交互查询就是迭代查询。 114.114.114.114是国内移动、电信和联通通用的DNS,手机和电脑端都可以使用,干净无广告,解析成功率相对来说更高,国内用户使用的比较多,而且速度相对快、稳定,是国内用户上网常用的DNS。 8.8.8.8是GOOGLE公司提供的DNS,该地址是全球通用的,相对来说,更适合国外以及访问国外网站的用户使用。

提供DNS服务的软件叫bind,服务名是named。

(正向解析)资源记录文件

主机名       TTL             INTER            资源记录类型           数据

(反向解析)资源记录文件

ip                TTL             INTER              资源记录类型          数据

资源记录类型

A                     通过域名能够查询到对应ipv4

AAAA              通过域名能够查询到对应ipv6

CNAME           别名资源记录www.baidu.com wwww.baidu,com

PTR                 指针记录lpv4/ipv6 查询到一个域名

NS                    dns解析记录类型(标记本地dns服务器的主机名)

MX                    邮件解析记录类型(标记邮件服务器的主机名)

SoA                  起始授权记录(主从服同步masterdns TTL INTER 资源记录类型数据 邮箱地址

                          (版本、 检查时间 、重试时间 、失效时间 TTL)

时间单位:M(分钟),H(小时),D(天),W(周),默认是秒

Linux搭建DNS主从服务器
需求:
利用两台linux主机,配置dns主从服务器,能够实现正常的正反向解析配置思路:

配置文件:/etc/named.conf            -->  主配置文件
/etc/named.rfc1912.zones     -->  域配置文件(此配置文件会默认加载到主配置文件)
/var/named/                   -->  所有的域名解析文件所在目录


主服务器:

在主服务器上对主配置文件配置对本服务器进行监听IP地址和端口号53,允许至少‘从服务器’主机可以访问,允许对从服务器的IP进行“传送数据”
 对主服务器的域配置文件,进行相应域的配置
在  /var/named/  文件下创建域名解析文件,并对其进行相应编写
从服务器:

在主配置文件对本服务器进行监听IP地址和端口号53,允许相应主机进行访问,
对域配置文件,进行相应域的配置
重启DNS服务后,观察  /var/named/slaves/ 文件目录下的变化
 

三、实验步骤

下载并安装服务

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

配置DNS正向解析

[root@server ~]# vim /etc/named.conf 
options {listen-on port 53 { 192.168.1.14; };directory       "/var/named";
zone "baidu.com" IN {type master;file "named.baidu.com";
};
[root@server ~]# vim /var/named/named.baidu.com 
$TTL 1D
@       IN      SOA     @     baidu.com (03M3M3M3M)IN      NS      dns.baidu.com.
dns     IN      A       192.168.1.14
mail    IN      A       192.168.1.200
www     IN      A       192.168.1.100
a       IN      A       192.168.1.50
aaa     IN      CNAME   a
~     

重启服务 

[root@server ~]# systemctl restart named

测试

[root@server ~]# nslookup 
> server 192.168.1.14
Default server: 192.168.1.14
Address: 192.168.1.14#53
> www.baidu.com
Server:		192.168.1.14
Address:	192.168.1.14#53
> aaa.baidu.com
Server:		192.168.1.14
Address:	192.168.1.14#53aaa.baidu.com	canonical name = a.baidu.com.
Name:	a.baidu.com
Address: 192.168.1.50

配置DNS反向解析(主服务器192.168.1.14配置)

vim /etc/named.conf

下边是反向文件的配置

vim /etc/named.conf

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

$TTL 1D
@       IN      SOA     @     baidu.com (03M3M3M3M)IN      NS      dns.baidu.com.
14      IN      PTR     ns.baidu.com.
200     IN      PTR     mail.baidu.com.
100     IN      PTR     www.baidu.com.
50      IN      PTR     a.baidu.com.
aaa     IN      CNAME   a
~                         

[root@server ~]# systemctl restart named
从服务器配置(192.168.1.13配置)

vim /etc/named.conf

[root@server ~]# systemctl restart named

测试(192.168.1.13)

[root@client ~]# nslookup 
> server 192.168.1.14
Default server: 192.168.1.14
Address: 192.168.1.14#53
> aaa.baidu.com               #正向解析
Server:		192.168.1.14
Address:	192.168.1.14#53aaa.baidu.com	canonical name = a.baidu.com.
Name:	a.baidu.com
Address: 192.168.1.50
> 192.168.1.200              #反向解析
200.1.168.192.in-addr.arpa	name = mail.baidu.com.

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

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

相关文章

Microsoft365域名DNS设置

DNS 基础 项目2023/09/227 个参与者DNS 基础 - Microsoft 365 admin | Microsoft Learn 反馈 本文内容 观看:域和 DNS:概述什么是域名?了解 DNS 记录类型DNS 如何工作? 显示另外 4 个 如果找不到要查找的内容,请…

1.php开发-个人博客项目文章功能显示数据库操作数据接收

(2022-day12) #知识点 1-php入门,语法,提交 2-mysql 3-HTMLcss ​ 演示案例 博客-文章阅读功能初步实现 实现功能: 前端文章导航,点入内容显示,更改ID显示不同内容 实现步骤&#xff1…

java8 列表通过 stream流 根据对象属性去重的三种实现方法

java8 列表通过 stream流 根据对象属性去重的三种实现方法 一、简单去重 public class DistinctTest {/*** 没有重写 equals 方法*/SetterGetterToStringAllArgsConstructorNoArgsConstructorpublic static class User {private String name;private Integer age;}/*** lombo…

LeetCode.2788. 按分隔符拆分字符串

题目 题目链接 分析 题目的意思是给我们一个字符串数组和一个分隔符,让我们按照分隔符把字符串数组分割成新的字符串数组。 看到这个描述,这不就是直接就是利用 按照分隔符分割字符串的系统库函数split(),这个函数的意思就是 把一个字符串…

JDBC编程详细教程与示例源码

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl JDBC概述 为了在Java语言中提供对数据库访问的支持,Sun公司于1996年提供了一套访问数据库的标准Java类库JDBC。JDBC的全称是Java数据库连接(Java Database Conn…

使用条件操作执行控制图

Condition Action Behavior 此示例显示了具有多个分段的转换路径中的简单条件操作的行为。该图表使用传出转换的隐式排序 起初,chart处于休眠状态。状态A处于活动状态。条件C_one和C_two为false。事件E_one发生并唤醒chart,该图表通过层次结构从根向下…

第5章 运算符重载

运算符概述 纯单目运算符,只能有一个操作数,包括:!、~、sizeof、new、delete 等 纯双目运算符,只能有两个操作数,包括:[]、->、% 、 等 三目运算符,有三个操作数,如“ ? : ” 既…

C#,字符串匹配(模式搜索)有限自动机(Finite Automata)算法的源代码

一、有限状态自动机 图中两个圆圈,也叫节点,用于表示状态,从图中可以看成,它有两个状态,分别叫0和1。从每个节点出发,都会有若干条边。当处于某个状态时,如果输入的字符跟该节点出发的某条边的内…

go语言(八)---- map

map的声明方式有以下三种。 package mainimport "fmt"func main() {//第一种声明方式//声明map1是一个map类型,key是String,value是Stringvar myMap1 map[string] stringif myMap1 nil {fmt.Println("myMap1 是一个空map")}//在使…

idea中使用git提交代码报 Nothing To commit No changes detected

问题描述 在idea中右键,开始将变更的代码进行提交的时候,【Commit Directory】点击提交的时候 报 Nothing To commit No changes detected解决方案 在这里点击Test 看看是不是能下面显示git版本,不行的话 会显示一个 fix的字样,行…

阿里云ECS使用docker搭建mysql服务

目录 1.确保正确安装好docker 2.安装mysql镜像 3.创建容器(设置端口映射、目录映射) 1.确保正确安装好docker 安装教程: 阿里云ECS(CentOS镜像)安装docker-CSDN博客https://blog.csdn.net/qq_62262918/article/details/135686614?spm10…

Android平台Unity下如何通过WebCamTexture采集摄像头数据并推送至RTMP服务器或轻量级RTSP服务

技术背景 我们在对接Unity下推送模块的时候,遇到这样的技术诉求,开发者希望在Android的Unity场景下,获取到前后摄像头的数据,并投递到RTMP服务器,实现低延迟的数据采集处理。 在此之前,我们已经有了非常成…

如何下载OpenStreetMap(OSM)最新数据

OpenStreetMap(OSM)是一个开源的地图项目,旨在创建和提供免费、可自由使用、可编辑的地图数据和地图服务。以下是关于OpenStreetMap的一些关键信息: 社区驱动: OpenStreetMap是由一个全球性的志愿者社区共同创建和维护…

新上线一个IT公司微信小程序

项目介绍 项目背景: 一家IT公司,业务包含以下六大块: 1、IT设备回收 2、IT设备租赁 3、IT设备销售 4、IT设备维修 5、IT外包 6、IT软件开发 通过小程序,提供在线下单,在线制单,在线销售,业务介绍,推广,会员 项目目的: 业务介绍: 包含企业业务介绍 客户需…

怎么样的布局是符合可制造性的PCB布局?

满足可制造性、可装配性、可维修性要求,方便调试的时候于检测和返修,能够方便的拆卸器件: 1)极性器件的方向不要超过2种,最好都进行统一方向等要求,如图1-1所示; 图1-1 极性器件方向统一摆放 2…

【Qt5】QString的成员函数trimmed

2024年1月19日,周五下午 QString 的 trimmed 方法是用于移除字符串两端的空白字符(空格、制表符、换行符等)的方法。它返回一个新的字符串,该字符串是原始字符串去除两端空白后的结果。 下面是一个简单的示例: #incl…

轻量化/高效扩散模型文献综述

🎀个人主页: https://zhangxiaoshu.blog.csdn.net 📢欢迎大家:关注🔍点赞👍评论📝收藏⭐️,如有错误敬请指正! 💕未来很长,值得我们全力奔赴更美好的生活&…

Unity—配置lua环境变量+VSCode 搭建 Lua 开发环境

每日一句:保持须臾的浪漫,理想的喧嚣,平等的热情 Windows 11下配置lua环境变量 一、lua-5.4.4版本安装到本地电脑 链接:https://pan.baidu.com/s/14pAlOjhzz2_jmvpRZf9u6Q?pwdhd4s 提取码:hd4s 二、高级系统设置 此电…

uniapp微信小程序投票系统实战 (SpringBoot2+vue3.2+element plus ) -投票帖子排行实现

锋哥原创的uniapp微信小程序投票系统实战: uniapp微信小程序投票系统实战课程 (SpringBoot2vue3.2element plus ) ( 火爆连载更新中... )_哔哩哔哩_bilibiliuniapp微信小程序投票系统实战课程 (SpringBoot2vue3.2element plus ) ( 火爆连载更新中... )共计21条视频…

如何实现 H5 秒开?

我在简历上写了精通 H5,结果面试官上来就问: 同学,你说你精通 H5 ,那你能不能说一下怎么实现 H5 秒 由于没怎么做过性能优化,我只能凭着印象,断断续续地罗列了几点: 网络优化:http2、…