Linux网络服务之DNS域名解析

news2025/4/24 12:32:49

重要的DNS域名解析

  • 一、DNS概述
    • 1.1 DNS简介
    • 1.2 本地hosts文件
    • 1.3 DNS架构
    • 1.4 查询方式
  • 二、DNS域名解析原理
    • 2.1 解析类型
    • 2.2 原理详解
    • 2.3 举例
  • 三、bind服务端程序
    • 3.1 什么是bind?
    • 3.2 配置文件详解
      • 3.2.1 主配置文件概述及内容主要格式
      • 3.2.2 域名文件概述及内容主要格式
      • 3.2.3 数据库文件概述及内容主要格式
  • 四、正向解析
    • 4.1 什么是正向解析?
    • 4.2 正向解析实例
      • 1)编辑主配置文件 /etc/named.conf
      • 2)编辑域名文件 /etc/named.rfc1912.zones
      • 3)根据域名文件中定义的名称,来建立数据库文件
      • 4)修改dns
      • 5)开启服务,进行域名解析
  • 五、反向解析
    • 5.1 什么是反向解析?
    • 5.2 反向解析实例
      • 1)编辑主配置文件
      • 2)编辑域名文件
      • 3)建立数据库文件
      • 4)修改dns
      • 5)开启服务,进行域名解析
  • 六、主从复制(哨兵模式)
    • 6.1 什么是主从复制?
      • 6.1.1 主服务器和从服务器
      • 6.1.2 主从复制的优缺点
    • 6.2 主从复制实例
      • 1)主服务器的配置
      • 2)从服务器的配置
      • 3)测试主从复制是否成功

一、DNS概述

1.1 DNS简介

DNS是什么

DNS(Domain Name System)是互联网中用于将域名转换为对应IP地址的分布式命名系统。

为什么要用DNS?

IP地址不便于记忆,DNS使用户可以通过易记的域名快速访问各种网络资源。

域名结构

域名采用层次结构表示,从右向左依次表示更高的级别。

以www.example.com为例
.com是一级域名
example是二级域名
www是主机名
#主机名用于标识特定的设备或计算机,而子域名用于对主域名下的特定部分进行分类或组织

域名解析类型

  • A记录:将域名解析为IPv4地址。
  • AAAA记录:将域名解析为IPv6地址。
  • CNAME记录:将域名解析为另一个域名,可用于创建别名。
  • MX记录:指定接收某域名邮件的邮件服务器地址。
  • NS记录:指定管理域名解析的权威域名服务器。
  • PTR记录:用于反向解析,将IP地址解析为域名。

DNS的风险

域名劫持、DNS欺骗和DDoS攻击等。

1.2 本地hosts文件

文件位置

/etc/hosts

本地hosts文件的作用

本地hosts文件用于在域名解析时将特定的域名与对应的IP地址进行映射。

在域名解析过程中,操作系统会首先检查本地hosts文件中是否存在与查询域名匹配的条目,如果有,则直接返回hosts文件中指定的IP地址,跳过后续的DNS查询过程。

缺点

  • 过于分散

  • 要手动更新文件

1.3 DNS架构

在这里插入图片描述
1)根域
使用“.”表示,位于域命名空间层次结构的最高层;
在根域服务器中只保存了其下层的一级域的DNS服务器名称和IP地址对应关系;
2)顶级域/一级域
顶级域位于根域下层,可以分为两类:
组织域(.com,.net,.org,.gov,.edu,.mil等)
国家域(.iq,.tw,.hk,.jp,.cn等);
3)二级域
二级域位于顶级域下层,是指为了在Internet上使用而注册到个人或企事业单位的域名;
4)子域
子域是根据具体情况从二级域中按部门或地理位置创建;
5)主机名
位于DNS域命名空间的最低层,主要指计算机的主机名;

1.4 查询方式

  • 递归查询:发送解析请求后,等待结果返回即可,不需要逐级查询;

  • 迭代查询:此查询的源不变,但查询的目标不断变化,为查询结果一般需要发起多次查询

二、DNS域名解析原理

2.1 解析类型

1)正向解析:由域名查找IP地址;
2)反向解析:由IP地址查找域名;

2.2 原理详解

1.用户在浏览器中输入目标域名,应用程序发送域名解析请求;

2.先查询本地dns缓存,如果有历史解析记录,直接获取IP地址,进行访问;

3.如果没有,查询hosts文件中是否有相关配置,如果有直接获取IP地址;

4.如果没有,向本地DNS服务器发起递归查询,等待反馈结果;

5.本地DNS服务器先检查服务器的本地缓存,如果有历史记录,直接反馈IP地址;

如果没有,发起迭代查询

7.首先,向根域服务器发起迭代查询,找到域名所属的一级域服务器;

8.再向一级域服务器发起迭代查询,找到域名所属的二级域服务器;

9.本地dns服务器会一直向下发起迭代查询,直到找到权威DNS服务器,向权威服务器发起递归查询,等待权威服务器反馈域名对应的IP地址

10.本地dns服务器将IP地址反馈给应用程序,递归查询结束;

2.3 举例

以访问www.baidu.com为例

1.用户输入www.baidu.com后,浏览器的应用程序发送解析请求;

2.先查询本机的缓存记录,查看是否有历史解析记录,如果有,直接访问,如果没有,去查看hosts文件是否有相关配置;

3hosts文件中有相关配置,获取IP地址,开始访问;

如果没有,向本地dns服务器发起递归查询;

4.本地dns服务器收到请求后,先查看本地dns缓存中是否有对应的解析结果,如果有,返回IP地址,如果没有,发起迭代查询;

5.本地dns服务器先向根域服务器发起迭代查询,根据根域服务器提供的信息,找到.com一级域;

6.本地dns服务器向.com一级域服务器发起迭代查询,根据一级域服务器提供的信息,找到baidu.com二级域,二级域服务器为权威服务器;

7.本地dns服务器向权威服务器发起递归查询,权威服务器反馈IP地址给本地dns服务器;

8本地dns服务器将域名的IP地址反馈给应用程序,递归查询结束。

三、bind服务端程序

3.1 什么是bind?

BIND是DNS服务器软件。

BIND 服务器可以提供域名解析服务,能够接收客户端的 DNS 查询请求,并返回相应的 IP 地址

3.2 配置文件详解

yum -y install bind*  #安装BIND服务

rpm -qc bind #查看所有配置文件

在这里插入图片描述

3.2.1 主配置文件概述及内容主要格式

主配置文件
#主配置文件比较重要,最好不要修改,所以将域名写到域名文件中
#路径#
/etc/named.conf 

#主要内容#
options {
        listen-on port 53 { any; };
        listen-on-v6 port 53 { ::1; };
        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; };

3.2.2 域名文件概述及内容主要格式

域名文件 ----指定域名的名称
#路径#
/etc/named.rfc1912.zones

#主要内容#
##正向解析##
zone "byyd.com" IN {
        type master;
        file "byyd.com.zone";
};

##反向解析##
zone "2.168.192.in-addr.apra" IN {
        type slave;
        file "dyyb.com.zone";
};


##主从复制##
###主服务器###
zone "byyd.com" IN {
        type master;
        file "byyd.com.zone";
        allow-transfer { 192.168.2.101; };
};
###从服务器###
zone "byyd.com" IN {
        type slave;
        file "slaves/byyd.com.zone";
        masters { 192.168.2.100; };
};

3.2.3 数据库文件概述及内容主要格式

数据库文件
#注意权限问题

/var/named/*.zone  #自定义的,在域名配置文件中定义  
#为什么将数据库文件放在这里?
#/var/named为named用户的家目录,以named用户身份运行
#root用户的权限过高
#比如复制文件 cp -p 才能成功

##主要内容,以正向解析为例##
##;后的内容为注释,注释可不写##
##要不就统一写缩写,要么就统一写完整##

$ORIGIN kgc.com. #域名的基础名称

$TTL 1D          #默认生存时间,即生命周期

@                  IN                    SOA        master.kgc.com.  admin.kgc.com.(
#@表示定义的域名    IN表示使用Internet协议  初始记录

                    0               ; serial #数据库的版本 版本相同表示主从服务器一致,主服务器的版本更改后,从服务器的版本也要修改
                    3600            ; refresh # 刷新时间,拉取时间。隔多久会同步配置
                    1800            ; retry   # 失败重试等待时间
                    604800          ; expire  #过期时间,一直无法拉取,这个时间后过期
                    86400           ; minimum [TTL] 
                    )

; Name Servers #服务器名称,此注释可不写 

#记录指定域名    域名名称
NS             master

; DNS A Records #域名映射到IP地址,此注释可不写
#域名       正向映射    IP地址
master       A       192.168.1.10
mail         A       192.168.1.20


rndc reload #重载 专用于bind服务

四、正向解析

4.1 什么是正向解析?

正向解析(forward resolution)是将域名(例如:example.com)解析为对应的 IP 地址的过程

4.2 正向解析实例

1)编辑主配置文件 /etc/named.conf

自带网络解析功能(因为数据库文件已经配置完成)

只需要修改监听的地址   listen-on port 53,any表示所有

还有权限  allow-query  ,any表示所有

在这里插入图片描述

2)编辑域名文件 /etc/named.rfc1912.zones

在这里插入图片描述

3)根据域名文件中定义的名称,来建立数据库文件

cd /var/named

cp -a named.localhost  byyd.com.zone 
#     配置模板            以kgc.com为例

vim byyd.com.zone

在这里插入图片描述

4)修改dns

vim /etc/sysconfig/network-scripts/ifcfg-ens33  #编辑网卡配置

systemctl restart network #重启网络服务

在这里插入图片描述

5)开启服务,进行域名解析

systemctl start named

host master.bbyd.com

在这里插入图片描述

五、反向解析

5.1 什么是反向解析?

反向解析技术用于将IP地址解析为主机名(域名)。

5.2 反向解析实例

systemctl stop firewalld.service  #关闭防火墙
setenforce 0  

1)编辑主配置文件

vim /etc/named.conf #编辑主配置文件,和正向解析相同

2)编辑域名文件

vim /etc/named.rfc1912.zones #编辑域名文件

在这里插入图片描述

3)建立数据库文件

vim 321.com.zone  #编辑数据库文件

在这里插入图片描述

4)修改dns

vim /etc/sysconfig/network-scripts/ifcfg-ens33  #编辑网卡配置


DNS1=192.168.2.102 #将本机作为dns服务器


systemctl restart network #重启网络服务

在这里插入图片描述

5)开启服务,进行域名解析

systemctl start named #开启

host 192.168.2.200 #反向解析

在这里插入图片描述

六、主从复制(哨兵模式)

6.1 什么是主从复制?

主从复制是一种数据库复制技术,可以实现数据备份、读写分离和故障恢复等功能。
在主从复制中,一个数据库服务器充当主服务器(Master),而其他服务器作为从服务器(Slaves)

6.1.1 主服务器和从服务器

主服务器(Master)

  • 主服务器是系统中的数据源,负责处理所有的写操作(如插入、更新、删除)。
  • 它将这些写操作记录到二进制日志(Binary Log)中,二进制日志是主服务器上的一个持久化日志文件,记录了所有的写操作。
  • 主服务器将二进制日志发送给从服务器,以便从服务器可以复制主服务器上的操作。

从服务器(Slaves)

  • 从服务器是系统中的数据副本,可以用作备份、读操作和故障恢复。
  • 从服务器连接到主服务器,并通过复制主服务器上的二进制日志来获取更新的数据。
  • 从服务器不处理写操作,它只接收主服务器发送的二进制日志,并将其应用到自己的数据库上。

6.1.2 主从复制的优缺点

主从复制的优势

  • 数据备份和容灾:从服务器可以作为主服务器的备份,提供数据的冗余和灾备能力。
  • 读写分离:将读操作分发到从服务器上,减轻主服务器的负载并提高系统性能。
  • 故障恢复:如果主服务器发生故障,可以快速将从服务器切换为主服务器,保持服务的连续性。

主从复制的缺点

  • 主从复制是异步的,从服务器上的数据复制可能会有一定的延迟。
  • 主从复制需要管理和监控,以确保复制的稳定性和一致性。

6.2 主从复制实例

1)主服务器的配置

systemctl stop firewalld.service  #关闭防火墙
setenforce 0  
vim /etc/named.conf #编辑主配置文件

在这里插入图片描述

vim /etc/named.rfc1912.zones #编辑域名文件

在这里插入图片描述

cd /var/named #切换到数据库文件所在路径

cp -p named.localhost byyd.com.zone  #导入配置模板

vim byyd.com.zone  #编辑数据库文件

在这里插入图片描述

vim /etc/sysconfig/network-scripts/ifcfg-ens33  #编辑网卡配置

systemctl restart network #重启网络服务

在这里插入图片描述

##测试正向解析是否成功##
systemctl start named  #启动bind服务
host www.byyd.com    #解析域名

systemctl stop named #关闭服务

在这里插入图片描述

2)从服务器的配置

systemctl stop firewalld.service  #关闭防火墙
setenforce 0 
vim /etc/named.conf #编辑主配置文件

在这里插入图片描述

vim /etc/named.rfc1912.zones  #编辑域名文件

在这里插入图片描述

systemctl start named #开启bind服务
ls /var/named/slaves   #查看数据库文件是否生成

在这里插入图片描述

3)测试主从复制是否成功

##由于没有配置数据文件,从服务器要解析域名,需要拷贝主服务器的数据库文件##
dig @192.168.2.102 www.byyd.com #测试
#dig为解析命令       
#www.byyd.com为要解析的域名      
#@192.168.2.102 表示用从服务器作为dns服务器解析

在这里插入图片描述

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

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

相关文章

leetcode118. 119.杨辉三角

118 题目: 给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中,每个数是它左上方和右上方的数的和。 思路: 可以发现从第三行开始,从第二个元素到倒数第二个元素,每个元素都…

电视盒子什么品牌好?实测20天后分享电视盒子推荐

电视盒子可以让老旧电视机重生,解决卡顿、资源少等问题,只需要联网就能观看海量视频资源。不过对于电视盒子如何选购很多人并不了解,我通过对比十几款主流电视盒子后整理了这份电视盒子推荐清单,跟着我一起看看电视盒子什么品牌好…

记一件异常访问记录

一、问题描述 某安全护网期间,web日志中大量出现异常账户请求,虽然报404错误,但是不同异常账号的连续尝试在特殊时期,还是令人担忧. 进程如下:/usr/bin/python2 -Es /usr/sbin/tuned -l -P 二、处理及说明 1&#x…

涛思数据联合长虹佳华、阿里云 Marketplace 正式发布 TDengine Cloud

近日,涛思数据联合长虹佳华,正式在阿里云 Marketplace 发布全托管的时序数据云平台 TDengine Cloud,为用户提供更加丰富的订购渠道。目前用户可通过阿里云 Marketplace 轻松实现 TDengine Cloud 的订阅与部署,以最低的成本搭建最高…

跨境多语言商城源码搭建--定制代码+源码开源

搭建一个跨境多语言商城需要以下步骤: 1. 确定需求:首先,需要明确商城的功能和需求,比如支持哪些语言、支持哪些支付方式、支持哪些货币等。根据需求来决定使用的开发语言和技术栈。 2. 寻找源码:可以在互联网上搜索…

赛码网-上台阶(dp) 100%AC代码(C)

———————————————————————————————————— ⏩ 大家好哇!我是小光,嵌入式爱好者,一个想要成为系统架构师的大三学生。 ⏩最近在准备秋招,一直在练习编程。 ⏩本篇文章对赛码网的上台阶 题目做一个…

【Pytorch:nn.Embedding】简介以及使用方法:用于生成固定数量的具有指定维度的嵌入向量embedding vector

文章目录 1、nn.Embedding2、使用场景 1、nn.Embedding 首先我们讲解一下关于嵌入向量embedding vector的概念 1)在自然语言处理NLP领域,是将单词、短语或其他文本单位映射到一个固定长度的实数向量空间中。嵌入向量具有较低的维度,通常在几…

医院国际医疗中心智能化系统规划设计方案[81页PPT]

导读:原文《医院国际医疗中心智能化系统规划设计方案[81页PPT]》(获取来源见文尾),本文精选其中精华及架构部分,逻辑清晰、内容完整,为快速形成售前方案提供参考。 完整版领取方式 完整版领取方式&#xff…

如何对分布式光伏发电站进行智能化监测?安科瑞 顾语欢

—、概述 随着“双碳”目标提出及逐步落实,本就呈现出较好发展势头的分布式光伏发展有望大幅提速。“双碳”目标意味 着国家产业结构的调整,未来10年,新能源装机将保持在110GW以上的年增速,这里面包含集中式光伏电站和分布式光伏…

02 - git 文件重命名

第一种方式: mv kongfu_person.txt kongfu.txt git add .第二种方式: git mv kongfu_person.txt kongfu.txt

Baklib: 逆袭语雀的在线帮助中心,知识库管理工具

1. 介绍 在现代的技术发展中,知识管理变得越来越重要。特别是对于企业来说,拥有一个高效的知识库管理工具可以极大地提高工作效率和团队合作。Baklib就是这样一款在线帮助中心和知识库管理工具,它可以帮助企业集中管理和共享知识&#xff0c…

红帽8.2版本CSA题库:第七题配置 NTP

红帽8.2版本CSA题库:第七题配置 NTP systemctl status chronyd #查看状态 yum -y install chrony #如果没有安装,就安装一下 vim /etc/chrony.conf server materials.example.com iburst :wq syste…

MySQL缓存策略

文章目录 一、MySQL缓存方案的作用二、提高MySQL访问性能的方式2.1 读写分离2.1.1 是什么?2.1.2 解决了什么?2.1.3 原理是什么? 2.2 连接池2.1.1 是什么?2.1.2 解决了什么?2.1.3 原理是什么? 2.3 异步连接2…

【论文阅读】NoDoze:使用自动来源分类对抗威胁警报疲劳(NDSS-2019)

NODOZE: Combatting Threat Alert Fatigue with Automated Provenance Triage 伊利诺伊大学芝加哥分校 Hassan W U, Guo S, Li D, et al. Nodoze: Combatting threat alert fatigue with automated provenance triage[C]//network and distributed systems security symposium.…

Arcgis中直接通过sde更新sqlserver空间数据库失败

问题 背景 不知道有没有人经历过这样一个情况,我们直接在Arcgis中通过sde更新serserver数据库会失败,就是虽然在sde更新sqlserver数据库,但是在Navicat中通过sql语句来查询,发现数据并没有更新,如:上图中,更新数据库后,第一张图是sde打开的sqlserver数据库,它的数据库…

自动测试框架airtest应用一:将XX读书书籍保存为PDF

一、Airtest的简介 Airtest是网易出品的一款基于图像识别和poco控件识别的一款UI自动化测试工具。Airtest的框架是网易团队自己开发的一个图像识别框架,这个框架的祖宗就是一种新颖的图形脚本语言Sikuli。Sikuli这个框架的原理是这样的,计算机用户不需要…

24届近5年南京工业大学自动化考研院校分析

今天给大家带来的是南京工业大学控制考研分析 满满干货~还不快快点赞收藏 一、南京工业大学 学校简介 南京工业大学(Nanjing Tech University),简称“南工”,位于江苏省南京市,由国家国防科技工业局、住…

宿舍管理系统--前后端分离式项目架构流程复盘(三万字详解)

文章目录 🐒个人主页🏅JavaEE系列专栏📖前言:【🎇前端】先创建Vue-cli项目(版本2.6.10,仅包含babel),请选择此项目并创建 【整理简化项目模板】【🎀创建路由】…

恒运资本:申购新股中签率技巧?

新股IPO被称为出资市场上最受欢迎的范畴之一,由于它可以一起给企业和出资者带来许多好处。股市炒作一直是出资者想要的收益方法之一,而新股IPO是这种收益方法的最好代表。尽管IPO市场潜力巨大,但新股申购的中签率确实是一个值得考虑的问题。在…