Linux系统进行DNS域名解析

文章目录

    • 一、DNS
      • 1.1 DNS概述
        • 1.2 DNS的通俗解释
        • 1.3 域名的体系结构
        • 1.4 DNS解析的参数
      • 1.5 DNS域名解析的过程
    • 二、如何实现DNS(内网)
      • 2.1 DNS正向解析
      • 2.2 DNS反向解析
      • 2.3 主从DNS

一、DNS

1.1 DNS概述

DNS :Domain Name System,是域名系统的简称,是域名和IP地址之间的映射关系。

互联网中,IP地址是通信的唯一标识,逻辑地址。

访问网站、域名,IP地址不好记,域名通常朗朗上口,好记。域名解析应运而生,实现访问域名就能访问对应的IP地址。

访问域名的时候,通过DNS解析,把域名映射的IP地址解析出来,然后实际访问的还是域名映射的IP地址。

1.2 DNS的通俗解释

以访问www.baidu.com为例

访问baidu,就是计算机向DNS服务器发起查询请求,DNS搜索自己的数据库,找到域名和IP的映射关系,然后把IP地址返回给计算机,计算机访问的还是域名对应的IP地址。

国内的DNS服务器都是三大运营商的DNS服务器。

1.3 域名的体系结构
  • www.baidu.com.cn.为例:从右向左
  • .根域,根域名DNS服务器,专门负责解析根域
  • cn.一级域,一般是国家或者地区的名称
  • com.二级域,组织名称:com商业组织,edu教育机构,org非盈利组织,net运营商,gov政府机构
  • baidu.三级域,域名,要花钱买
  • www.:主机名,也称子域名,就是一台具体的计算机
1.4 DNS解析的参数
  • 协议:TCP和UDP协议
  • 端口:53
  • TCP的53端口用于连接DNS服务
  • UDP的53端口用于解析DNS

​ DNS域名的长度限制

​ 每一级的域名长度限制是63个字符,域名的总长度不能超过253个字符

1.5 DNS域名解析的过程

在这里插入图片描述

迭代:从根域到一级域到二级域的过程叫迭代

递归:结果返回给用户的过程是递归

DNS解析的优先级

  • hosts :本地文件,优先级最高。只对当前主机有效,可以提高访问速度。Linux系统的hosts文件在/etc/hosts
  • DNS服务器(运营商),优先级第二。

二、如何实现DNS(内网)

bind:用来做局域网内部的域名解析。

Linux系统中,bind对应的服务名是named

内网的DNS不需要注册。

2.1 DNS正向解析

要求:主机test1,IP地址 20.0.0.10 作为DNS域名服务器,实现正向解析。

实现:

  1. 首先安装bind服务,关闭防火墙、安全机制
yum -y install bind
systemctl stop firewalld
setenforce 0
  1. 修改bind服务的主配置文件/etc/named.conf

在这里插入图片描述

对图中内容的解释:

listen-on port 53 { 20.0.0.10; };
#对外提供解析服务的IP地址:自己的IP地址,也可以改成any,即任意地址
directory       "/var/named";
#区域数据文件的默认存放位置
dump-file       "/var/named/data/cache_dump.db";
#域名缓存数据的位置
statistics-file "/var/named/data/named_stats.txt";
#状态统计文件
memstatistics-file "/var/named/data/named_mem_stats.txt";
#内存统计文件
recursing-file  "/var/named/data/named.recursing";
secroots-file   "/var/named/data/named.secroots";
allow-query     { any; };
#谁能访问解析服务器,any表示所有

保存文件并退出。

  1. 修改区域配置文件/etc/named.rfc1912.zones

​ 编辑是可以套用文件中现成的模板:

在这里插入图片描述

保存文件并退出。

  1. 配置区域数据文件/var/named/named.localhost,进行地址解析

    保留权限复制配置文件,重命名为步骤3中自定义的区域数据文件的文件名

cd /var/named
cp -p named.localhost ykw102.com.zone
#保留权限复制(要保留所在组.named,不然服务会报错)

vim ykw102.com.zone编辑内容:

在这里插入图片描述

对内容的解释:

$TTL 1D		#DNS的检索记录,保存在缓存中的时间是一天,在一天之内,#如果有缓存就不需要再向DNS服务器发起请求。
@		IN SOA ykw102.com.
#@ :当前DNS的区域名,@全局变量
IN :Internet,协议
SOA :解析类型,第一条解析记录,从起始位置开始记录0		;serial		#更新序列号,0不更新1D		;refresh	#刷新时间,地址数据如果有变动,一天刷新一次1H		;retry		#解析失败,重置的间隔时间1W		;expiere	#失效时间,解析地址下载失败后,多长时间放弃3H)		 ;minimum		#无效解析记录的生存时间

保存文件并退出。

  1. 修改域名服务器地址vim /etc/resolve.conf

在第一行添加

nameserver 20.0.0.10		#域名服务器IP地址

重启bind对应的服务named

systemctl restart named

使用nslookup验证DNS解析服务。

在这里插入图片描述

2.2 DNS反向解析

要求:主机test1,IP地址 20.0.0.10 作为DNS域名服务器,实现反向解析。

实现:步骤和2.1基本一致。

  1. 安装bind服务,关闭防火墙、安全机制
  2. 修改bind服务的主配置文件/etc/named.conf,和2.1一致
  3. 修改区域配置文件/etc/named.rfc1912.zones

在这里插入图片描述

  1. 配置区域数据文件/var/named/named.localhost,进行地址解析

    保留权限复制配置文件,重命名为步骤3中自定义的区域数据文件的文件名

cd /var/named
cp -p ykw102.com.zone ykw102.com.zone.reverse
#保留权限复制(要保留所在组.named,不然服务会报错)

vim ykw102.com.zone.reverse编辑内容:

在这里插入图片描述

保存文件并退出。

  1. 修改域名服务器地址vim /etc/resolve.conf

在第一行添加

nameserver 20.0.0.10		#域名服务器IP地址

重启bind对应的服务named

systemctl restart named

使用nslookup验证DNS反向解析服务。

[root@test1 named]# nslookup 20.0.0.103
103.0.0.20.in-addr.arpa	name = mail.ykw102.com.
#反向解析成功

2.3 主从DNS

主从DNS实际上就是实现DNS服务的高可用(冗余),主服务器down了,从服务器可以接替工作。

要求:在实验2.1 , 2.2的基础上,进行以下配置

test1@20.0.0.10 作为主DNS服务器

test2@20.0.0.20作为从DNS服务器

实现:

首先对test1test2安装bind服务,关闭防火墙、安全机制。

  1. test1配置:
    • 修改区域配置文件/etc/named.rfc1912.zones在这里插入图片描述
      保存退出。
    • 修改域名服务器地址vim /etc/resolve.conf
nameserver 20.0.0.10		#主域名服务器IP地址
nameserver 20.0.0.20		#从域名服务器IP地址
  1. test2配置

    • 修改bind服务的主配置文件/etc/named.conf

      在这里插入图片描述

    • 修改区域配置文件/etc/named.rfc1912.zones

      在这里插入图片描述

      保存退出。

      修改域名服务器地址vim /etc/resolve.conf

      nameserver 20.0.0.10		#主域名服务器IP地址
      nameserver 20.0.0.20		#从域名服务器IP地址
      
  2. test1test2都重启bind对应的服务named

    systemctl restart named
    

    检查区域数据文件有没有传输到从服务器的/var/named/slaves

在这里插入图片描述

区域数据文件传输成功,配置完成。

在主服务器test1systemctl stop named停止DNS服务,在从服务器test2上使用nslookup验证,速度变慢,但任然可以完成解析。

[root@test2 slaves]# vim /etc/resolv.conf
[root@test2 slaves]# nslookup www.ykw102.com
Server:		20.0.0.20
Address:	20.0.0.20#53Name:	www.ykw102.com
Address: 20.0.0.102[root@test2 slaves]# nslookup 20.0.0.103
103.0.0.20.in-addr.arpa	name = mail.ykw102.com.

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

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

相关文章

Flutter Bloc之简单记录

目录 0.库安装 1.插件和自动生成 2.状态的配置 1.初始化中: 2.赋值完成后: 3.如果出错: 3.事件的配置 1.定义一个读取事件 2.定义一个更改事件 4.Bloc的设置 5.Bloc的使用 1.BlocProvider 2.内部调用 参考文章进行类的配置 0.库…

NSS题目练习7

[MoeCTF 2022]baby_file 打开看见一串源代码,需要get传参传入file 题目提示php伪协议 用dirsearch扫描发现flag.php 用php伪协议查看,回显一串base64编码 解码后得到flag [鹤城杯 2021]Middle magic 读取这两个文件 一个php正则表达式 补充&#xff1a…

解锁ArrayBlockingQueue奥秘:深入源码的精彩之旅

1.简介 ArrayBlockingQueue 是 BlockingQueue 接口的一个实现类,它基于数组实现了一个有界阻塞队列。创建 ArrayBlockingQueue 实例时需要指定队列的容量,队列的大小是固定的,无法动态增长。 主要特点包括: 有界性:A…

STM32——hal_SPI_(介绍)

SPI(串行外围设备接口)是一种高速的、全双工、同步的通信协议,通常用于短距离通信,尤其是在嵌入式系统中与各种外围设备进行通信。SPI接口由摩托罗拉公司推出,由于其简单和灵活的特性,它被广泛用于多种应用…

2023年计算机图形学课程知识总结

去年就该写的,但是去年这个时候太忙了。 就写来自己看看。留个记录留个念 文章目录 1. 图形,图像的定义2. 点阵、矢量3. 走样,反走样4. 字符裁剪精度(1) 串精度(2) 字符精度(3&…

SpringBoot打war包并配置外部Tomcat运行

简介 由于其他原因,我们需要使用SpringBoot打成war包放在外部的Tomcat中运行,本文就以一个案例来说明从SpringBoot打war包到Tomcat配置并运行的全流程经过 环境 SpringBoot 2.6.15 Tomcat 8.5.100 JDK 1.8.0_281 Windows 正文 一、SpringBoot配置打war包 第一步&a…

J-Lin烧录

1、J-linK介绍 J-Link是由德国SEGGER公司推出的,主要用于支持仿真ARM内核芯片的JTAG仿真器。它支持JTAG和SWD两种模式,可以配合多种集成开发环境(如IAR EWAR, ADS, KEIL, WINARM, RealView等)使用,支持ARM7/ARM9/ARM…

odoo16 档案管理

档案管理,odoo15升级至odoo16完善 电子档案管理是指将传统纸质档案数字化,以便更加方便、快捷、安全地进行档案管理。电子档案管理系统可以对档案进行数字化、存储、检索、共享、传递和销毁等操作,从而提高了档案管理的效率和准确性&#xf…

使用cesiumLab使shp转为3dtlies

过程不做赘述,网上大把,说下注意事项。 1. 存储3DTiles 选项 若是打开则输出的文件为glb格式文件,因为glb文件好储存易传输跨平台。cesium可以使用但无法处理,例如改变颜色,改着色器等。若是不打开则输出的文件为bm3d格式文件,此…

Bond网卡

一、Bond网卡 1.1 Bond网卡概述 Bond网卡是指使用 Linux 系统中的 Bonding 技术创建的虚拟网络接口。 Bonding 技术允许将多个物理网卡(也称为接口或端口)绑定在一起,形成一个虚拟的网络接口,以增加网络带宽、提高网络容错性和…

表达式求值中的“整型提升”概念

一.基本原理和概念 如:代码 char a,b,c ; a b c ; 该代码在计算的时候就会先将 b 和 c 提升为 int 类型进行加法后,再将数据进行截断存放在内存存放变量 a 的空间中。 (1)提升和截…

眼底照 + OCT图 + 精神状态 ,预测阿尔兹海默症

眼底照片和OCT图像,预测阿尔兹海默症 数据多模态网络模型集成可视化分析 论文:https://www.ophthalmologyretina.org/action/showPdf?piiS2468-6530%2824%2900045-9 目前,认知障碍的诊断依赖于血清和蛋白质生物标志物的检测、脑脊液检查和正…

【教程】WordPress主题子比主题 添加私密评论功能

教程如下 打开子比主题的 functions.php 文件,在最后一个 ?> 的前面添加以下代码: //私密评论 function liao_private_message_hook( $comment_content , $comment){$comment_ID = $comment->comment_ID; $parent_ID = $comment->comment_parent; $parent_emai…

[SaaS] AI+数据,tiktok选品,找达人,看广告数据

TK观察专访丨前阿里“鲁班”创始人用AIGC赋能TikTok获千万融资用AI数据做TikTokhttps://mp.weixin.qq.com/s/xp5UM3ROo48DK4jS9UBMuQ主要还是爬虫做数据的。 商家做内容:1.找达人拍内容,2.商家自己做原生自制内容,3.广告内容。 短视频&…

南京观海微电子----焊机用DC-DC 24V 升压电路分析

焊机用DC-DC 24V 升压电路分析 辅电升压电路关键元件有:UC3843、电感、MOS功率管、整流二极管等组成。其核心是UC3843。UC3843是脉宽调制IC,工作频率可达500kHz,组成电路引脚少、外围元件简单,启动电流仅需1mA,开启电压…

BC C language

题目汇总 No.1 打印有规律的字符(牛牛的字符菱形) 代码展示 #include<stdio.h> int main() {char ch=0;scanf("%c"

Meta Llama 3 残差结构

Meta Llama 3 残差结构 flyfish 在Transformer架构中&#xff0c;残差结构&#xff08;Residual Connections&#xff09;是一个关键组件&#xff0c;它在模型的性能和训练稳定性上起到了重要作用。残差结构最早由He et al.在ResNet中提出&#xff0c;并被广泛应用于各种深度…

ArUco与AprilTag 标签

一、简介 在许多计算机视觉应用程序中&#xff0c;姿势估计非常重要&#xff1a;机器人导航&#xff0c;增强现实等等。 该过程基于发现真实环境中的点与其2d图像投影之间的对应关系。 这通常是一个困难的步骤&#xff0c;因此通常使用合成或基准标记来简化操作。 最受流行的…

Day13 配置AutoMapper关系映射

在上一节 中,无论ToDoController 控制器,或 IToDoService 服务的接口中,方法的实参必须是传实体类。但在实际开发过程中,这样是不允许的。标准且规范的做法是,定义一个数据传输层,即DTO层。 DTO(Data Transfer Objects)数据传输对象,它是一种设计模式,主要用于在不同…

【机器学习-09】 | Scikit-Learn工具包进阶指南:Scikit-Learn工具包之高斯混合sklearn.mixture模块研究

&#x1f3a9; 欢迎来到技术探索的奇幻世界&#x1f468;‍&#x1f4bb; &#x1f4dc; 个人主页&#xff1a;一伦明悦-CSDN博客 ✍&#x1f3fb; 作者简介&#xff1a; C软件开发、Python机器学习爱好者 &#x1f5e3;️ 互动与支持&#xff1a;&#x1f4ac;评论 &…