Linux搭建dns主从服务器

news2024/9/23 23:34:51

一、实验要求

配置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 (
                                        0
                                        3M
                                        3M
                                        3M
                                        3M
                                        )
        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#53

aaa.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 (
                                        0
                                        3M
                                        3M
                                        3M
                                        3M
                                        )
        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#53

aaa.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.coloradmin.cn/o/1397803.html

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

相关文章

git提交代码到远端仓库的方法详解

一、何为git git就是版本控制器,就比如说你新建了一个git文件夹,里面用于存放你的C语言实习报告,现在要用git对该文件夹进行接管。当你修改了你的C语言实习报告点击保存之后,就用git的相关命令,提交给git,让…

ctfshow命令执行(web29-web52)

目录 web29 web30 web31 web32 web33 web34 web35 web36 web37 web38 web39 web40 web41 web42 web43 web44 web45 web46 web47 web48 web49 web50 web51 web52 web29 <?php error_reporting(0); if(isset($_GET[c])){$c $_GET[c];if(!preg_match…

go语言(十)---- 面向对象封装

面向对象的封装 package mainimport "fmt"type Hero struct {Name stringAd intLevel int }func (this Hero) Show(){fmt.Println("Name ", this.Name)fmt.Println("Ad ", this.Ad)fmt.Println("Level ", this.Level)}func (thi…

模型的 F1 分数

模型的 F1 分数是一个综合评估模型性能的指标&#xff0c;同时考虑了模型的精确率&#xff08;Precision&#xff09;和召回率&#xff08;Recall&#xff09;。F1 分数的计算公式为&#xff1a; 其中&#xff1a; Precision 是模型正确识别为正例的样本数量与所有被模型识别为…

PYG中torch_scatter, torch_sparse等pip安装包错解决

原安装命令&#xff1a; pip install pyg_lib torch_scatter torch_sparse torch_cluster torch_spline_conv -f https://data.pyg.org/whl/torch- 1.13.0cu117.html报错&#xff1a; 正确安装命令&#xff1a; pip install --no-index pyg_lib torch_scatter torch_sparse …

JavaWeb:servlet+jsp+mybatis商品管理增删改查

文章目录 1、环境准备1.1、创建数据库1.2、创建项目导入依赖1.3、创建包1.4、创建实体类1.5、准备mybatis环境1.6、编写Mybatis工具类1.7、编写主页面 2、功能实现2.1、查询所有2.2、添加功能2.3、修改数据回显2.4、修改数据2.5、删除数据 1、环境准备 1.1、创建数据库 CREAT…

Python文件自动化处理

os模块 Python标准库和操作系统有关的操作创建、移动、复制文件和文件夹文件路径和名称处理 路径的操作 获取当前Python程序运行路径不同操作系统之间路径的表示方式 windows中采用反斜杠(\)作为文件夹之间的分隔符 Mac和Linux中采用斜杠(/)作为文件夹之间的分隔符 把文件…

【用队列实现栈】【用栈实现队列】Leetcode 232 225

【用队列实现栈】【用栈实现队列】Leetcode 232 225 队列的相关操作栈的相关操作用队列实现栈用栈实现队列 ---------------&#x1f388;&#x1f388;题目链接 用队列实现栈&#x1f388;&#x1f388;------------------- ---------------&#x1f388;&#x1f388;题目链…

React Store及store持久化的使用

1.安装 npm insatll react-redux npm install reduxjs/toolkit npm install redux-persist2. 使用React Toolkit创建counterStore并配置持久化 store/modules/counterStore.ts&#xff1a; import { createSlice } from reduxjs/toolkit// 定义状态类型 interface Action {…

4个值得使用的免费爬虫工具

在信息时代&#xff0c;数据的获取对于各行业都至关重要。而在数据采集的众多工具中&#xff0c;免费的爬虫软件成为许多用户的首选。本文将专心分享四款免费爬虫工具&#xff0c;突出介绍其中之一——147采集软件&#xff0c;为您揭示这些工具的优势和应用&#xff0c;助您在数…

使用Sqoop从Oracle数据库导入数据

在大数据领域&#xff0c;将数据从关系型数据库&#xff08;如Oracle&#xff09;导入到Hadoop生态系统是一项常见的任务。Sqoop是一个强大的工具&#xff0c;可以帮助轻松完成这项任务。本文将提供详细的指南&#xff0c;以及丰富的示例代码&#xff0c;帮助了解如何使用Sqoop…

什么是低代码(Low-Code)?低代码平台的适用人群

低代码平台是一种革命性的工具&#xff0c;它让非专业的开发人员也能轻松创建应用程序。通过直观的可视化界面和拖放功能&#xff0c;开发人员能够轻松地构建和部署应用程序&#xff0c;无需专业的编程知识。低代码平台的出现&#xff0c;降低了应用程序开发的门槛&#xff0c;…

对象存储, 开源MinIO docker-compose.yml 文件

文章目录 python SDK 文档地址&#xff1a;docker-compose.yml 文件控制台使用&#xff1a;应用服务中使用样例&#xff1a; python SDK 文档地址&#xff1a; https://min.io/docs/minio/linux/developers/python/API.html docker-compose.yml 文件 version: 3services:min…

自动化测试:5分钟了解Selenium以及如何提升自动化测试的效果

在快节奏的技术世界里&#xff0c;自动化测试已经成为确保 Web 应用程序质量和性能的重要手段。自动化测试不仅加快了测试过程&#xff0c;还提高了测试的重复性和准确性。Selenium&#xff0c;作为领先的自动化测试工具之一&#xff0c;为测试人员提供了强大的功能来模拟用户在…

站长为什么都说WordPress太复杂不会用要放弃?

网络上经常看到有站长说要放弃WordPress&#xff0c;理由各有不同&#xff0c;比如有些说WordPress太复杂不会用&#xff1b;有些说WordPress是国外建站系统&#xff0c;在国内用来搭建访问速度太慢&#xff1b;也有些说WordPress是针对谷歌优化的&#xff0c;不适合国内的搜索…

springboot知识04

1、集成swaggershiro放行 &#xff08;1&#xff09;导包 &#xff08;2&#xff09;SwaggerConfig&#xff08;公共&#xff09; package com.smart.community.common.swagger.config;import io.swagger.annotations.ApiOperation; import org.springframework.beans.facto…

C语言基础语法跟练 day4

41、牛牛有一个半径为 r 的球&#xff0c;他想知道这个球的体积。 #include <stdio.h> #include<math.h> int main() {float r;scanf("%f",&r);float v (4.0/3)*3.14*pow(r,3);printf("%.2f",v);return 0; } 42、小乐乐比较懒惰&#x…

Red Hat Enterprise Linux 9.3 安装图解

引导和开始安装 选择倒计时结束前&#xff0c;通过键盘上下键选择下图框选项&#xff0c;启动图形化安装过程。需要注意的不同主板默认或者自行配置的固件类型不一致&#xff0c;引导界面有所不同。也就是说使用UEFI和BIOS的安装引导界面是不同的&#xff0c;如图所示。若手动调…

Stable Code 3B:边缘编程

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

力扣hot100 最长有效括号 动态规划

Problem: 32. 最长有效括号 文章目录 思路Code 思路 &#x1f468;‍&#x1f3eb; 参考题解 Code ⏰ 时间复杂度: O ( n ) O(n) O(n) &#x1f30e; 空间复杂度: O ( n ) O(n) O(n) class Solution {public int longestValidParentheses(String s){int n s.length();…