Linux服务篇之DNS服务器搭建

2023-11-07

一、DNS介绍

1.DNS简介

DNS,全称 Domain Name System,域名系统。

DNS是将域名解析成IP地址,然后找到IP对应的主机或者服务器。我们平常上网查找资料的时候,总是在浏览器的搜索栏输入 www.baidu.com ,当出现百度一下的界面,我们就进行搜索,实际上,在输入 www.baidu.com 按下回车键的时候,就已经开始了域名解析的过程,最后解析成一个ip地址,然后找到ip对应的百度的服务器,将页面呈现。

我们可以在windows系统或者Linux系统中 ping 一下www.baidu.com 来看看。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.DNS工作原理

DNS服务使用TCP和UDP的53端口,TCP的53端口用于连接DNS服务器,UDP的53端口用于解析DNS。每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。

DNS分布式系统结构:
在这里插入图片描述
DNS分为两种解析方式:

  1. 正向解析:将域名解析成IP地址
  2. 逆向解析:将IP地址解析成域名

我们通常使用的都是正向解析,即将域名www.baidu.com输入浏览器,然后解析成IP地址,进行访问。

DNS递归查询和迭代查询,简单的来说:

  1. 递归查询:就是主机发送DNS请求给本地的DNS服务器,本地服务器有记录,就直接回给主机;若没有,本地的DNS服务器就会以DNS客户端的身份向根服务器发送请求,根没有,就像其他顶级服务器查询,直到查到结果,返还给本地DNS服务器,然后交由本地服务器发给主机,整个过程中,主机只和本地服务器建立连接。
  2. 迭代查询:主机发送请求给本地服务器,若本地没有,则返回一个可以进行查询的其他的服务器的列表,然后主机再向列表中的服务器进行请求,直至查出,返回给主机。整个过程,主机不知建立和本地服务器的连接,还会和其他的服务器进行连接。

在这里插入图片描述

3.DNS的资源记录

记录类型:A,AAAA,PTR,SOA,NS,CNAME,MX

  1. SOA:Start Of Authority,起始授权记录;一个区域解析库有且仅能有一个SOA记录,必须位于解析库的第一条记录SOA,是起始授权机构记录,说明了在众多 NS 记录里哪一台才是主要的服务器。在任何DNS记录文件中,都是以SOA ( Startof Authority )记录开始。SOA资源记录表明此DNS名称服务器是该DNS域中数据信息的最佳来源。

  2. A:域名解析成IP地址

  3. AAAA:IPV6

  4. PTR:反向解析,ip地址解析成域名

  5. NS:专用于标明当前区域的DNS服务器,服务器类型为域名服务器

  6. CNAME:别名记录

  7. MX:邮件交换器

SOA记录与NS记录的区别:NS记录表示域名服务器记录,用来指定该域名由哪个DNS服务器来进行解析;SOA记录设置一些数据版本和更新以及过期时间等信息。

二、实验

1.DNS正向解析实验

  1. 首先开启两台虚拟机
    在这里插入图片描述

  2. 服务器端下载bind和bind-utils,这是dns的服务软件(yum install -y bind bind-utils
    在这里插入图片描述
    在这里插入图片描述

  3. 查看配置文件位置(rpm -qc bind
    在这里插入图片描述

  4. 修改配置文件

    1. 编辑 /etc/named.conf 文件
      在这里插入图片描述
    2. 编辑 /etc/named.rfc1912.zones 文件
      在这里插入图片描述
    3. 进入 /var/named 目录,新建一个 yyh.com.zone 文件,这个名字熟悉吧,就是1912文件中 file 的参数
      在这里插入图片描述
      在这里插入图片描述
  5. 编辑网卡文件(vim /etc/sysconfig/network-scripts/ifcfg-ens33
    在这里插入图片描述

  6. 重启network和named服务(systemctl restart network && systemctl restart named
    (注:先关闭防火墙(systemctl stop firewalld && setenforce 0))
    在这里插入图片描述

  7. 使用客户端测试
    在这里插入图片描述
    在这里插入图片描述

2.反向解析

具体步骤和正向解析一样的,只是将 /etc/named.rfc1912.zone 和 /var/named/yyh.com.zone 文件修改一下就行,我就只上图了,不做过多解释。
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.主从服务器配置

这时,我们需要再建一台虚拟机,做dns备份服务器。
在这里插入图片描述
如图,7-1 和 7-2 都要安装bind 和 bind-utils

主服务器,即7-1上的配置不用动

从服务器配置:

  1. 修改 /etc/named.conf 文件
    在这里插入图片描述
  2. 修改 /etc/named.rfc1912.zone 文件
    在这里插入图片描述
  3. 从服务器从重启服务,查看 /etc/named/slaves目录下的文件
    在这里插入图片描述
  4. 测试
    1. 将7-4客户端网卡配置更改,dns1为主服务器,dns2为从服务器
      在这里插入图片描述
    2. 测试1(主从都没down)
      在这里插入图片描述
    3. 测试2(主down)
      在这里插入图片描述
      在这里插入图片描述

三、总结

  1. 每次首先要干的务必关掉防火墙(systemctl stop firewalld && setenforce 0)
  2. 每次修改完配置文件,务必重启相关服务
  3. 一定要细心,配置文件中错一点,服务都跑不起来
  4. 网卡配置文件中的dns地址务必填写正确
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux服务篇之DNS服务器搭建 的相关文章

随机推荐

  • 【Java愚公】gitlab设置中文

    gitlab设置中文 设置步骤 设置完成后效果图 设置步骤 gitlab版本自带了中文语言包 可以通过上述方式直接切换 设置流程说明如下 访问gitlab服务 在用户偏好设置中设置用户语言类别 如下图所示 设置完成后效果图
  • 【STM32】电子时钟(1)

    一直想系统的学习STM32 但是公司的项目主要是电机算法 每天看到头都快炸了 打算仿照手机上的时钟应用写一个电子时钟 因为这个任务的定位是 好吧 就没有定位 主要是边玩边学 也不设时间期限和具体的功能指标 有空了就搞搞 想到了什么就加上去
  • 成功解决Myeclipse2017破解时遇到的crack.bat文件闪退问题

    解决问题 解决Myeclipse2017破解时遇到的crack bat文件闪退问题 解决方法 是环境变量设置有错 1 新建系统环境变量 JAVA HOME D Program Files MyEclipse2017CI7 binary co
  • Linux 音视频开发杂记之一-环境配置使用vscode

    开发环境 开发环境选择window10 Visual Studio Code ubuntu20 64 虚拟机 一Windows 安装 1 安装git for windows 安装过程直接下一步 主要原因是windows OpenSSH在vs
  • Flutter - Route传参

    Navigator 组件支持通过使用通用标识符从应用程序的任何地方导航到特定路由 在某些情况下 你可能还希望能够传递参数给特定路由 例如 你希望导航到 user 路由并携带上用户信息 在 Flutter 中 你能通过提供额外的 argume
  • 博客使用方法

    这里写自定义目录标题 凯哥英语视频 欢迎使用Markdown编辑器 新的改变 功能快捷键 合理的创建标题 有助于目录的生成 如何改变文本的样式 插入链接与图片 如何插入一段漂亮的代码片 生成一个适合你的列表 创建一个表格 设定内容居中 居左
  • 数据模型所描述的内容包括三个部分:数据结构、数据操作、数据约束。

    http www cnblogs com joechinochl articles 5252518 html 数据模型所描述的内容包括三个部分 数据结构 数据操作 数据约束 1 数据结构 数据模型中的数据结构主要描述数据的类型 内容 性质以
  • 大数据毕业设计题目选题推荐

    文章目录 0 前言 1 如何选题 1 1 选题技巧 如何避坑 重中之重 1 2 为什么这么说呢 1 3 难度把控 1 4 题目名称 1 5 最后 2 大数据 选题推荐 2 1 大数据挖掘类 2 2 大数据处理 云计算 区块链 毕设选题 2
  • if语句c语言编程题,c语言if语句的练习题答案

    1 编写程序输入a和b 求a和b的余数和商 includevoid main int a b scanf printf 商为 d 余数为 d 2 输入一个整型数据 分别求出各位数字 如 469 则个位数是9 十位数是6 百位数 是4 inc
  • 某型雷达的报文收发实录

    某型雷达的报文收发实录 前言 工作中需要与某型激光雷达进行通讯 读写报文解析出相应的角度 位置 在目前的工作中 切实遇到的问题是报文的收发 这里记录之 以下内容尚未进过实践检验2020 6 20 激光雷达的报文的接收 使用的API为wins
  • matlab怎么搭建神经网络,matlab实现神经网络算法

    怎样用matlab建立bp神经网络 net train net p t 把这句改成net train net p t 试试 matlab应该默认使用列向量 或者直接使用matlab提供的图形界面取训练 在命令行输入nnstart 谷歌人工智
  • 递归求解迷宫问题

    package com yg recursion author GeQiLin date 2020 2 24 16 01 public class MiGong private static int col 7 private static
  • Codeforces Round 881 (Div. 3) 题解

    目录 A Sasha and Array Coloring 题意 思路 代码 B Long Long 题意 思路 代码 C Sum in Binary Tree 题意 思路 代码 D Apple Tree 树形dp 题意 思路 代码 E T
  • 2022年C语言程序设计题库习集带答案(史上最全版)

    C语言程序设计 试题一 一 填空题 1 C语言中基本的数据类型有 2 C语言中普通整型变量的类型说明符为 在内存中占 字节 有符号普通整型的数据范围是 3 整数 35在机内的补码表示为 4 执行下列语句int a 8 a a a a 后 a
  • springboot集成微信app支付

    一 准备工作 以下信息需要自行开通和申请 public static final String APP ID app的id 需要app应用 public static final String KEY api密钥 商户账户信息里面去获取 p
  • 一个mysql语句报错引发的故事

    昨天在自己的本上装了mysql 打算练习sql语句 在创建表的时候报了错 Invalid default value for sex 就是说我sql语句中有个性别的默认值设置是无效的 性别用的是enum数据类型 出错原因是因为数据库的编码不
  • 【Python字典】

    字典类型的基本概念 通过任意键信息查找一组数据中值信息的过程叫映射 Python语言中通过字典实现映射 Python语言中的字典可 以通过大括号 建立 建立模式如下 lt 键1 gt lt 值1 gt lt 键2 gt lt 值2 gt l
  • C++11--包装器与可变参数摸板

    文章目录 可变参数模板 递归函数方式展开参数包 函数包装器 举个例子 bind函数 举个例子 可变参数模板 C 11的新特性可变参数模板能够让我们创建可以接受可变参数的函数模板和类模板 Args是一个模板参数包 args是一个函数形参参数包
  • 【人脸检测】 Tinaface复现(数据集准备、测试与评估)

    转载自 https blog csdn net qq 35975447 article details 110430390 人脸检测 Tinaface复现 数据集准备 测试与评估 参考 TinaFace Strong but Simple
  • Linux服务篇之DNS服务器搭建

    文章目录 一 DNS介绍 1 DNS简介 2 DNS工作原理 3 DNS的资源记录 二 实验 1 DNS正向解析实验 2 反向解析 3 主从服务器配置 三 总结 一 DNS介绍 1 DNS简介 DNS 全称 Domain Name Syst