当前位置: 首页 > news >正文

Linux系统——DNS解析详解

目录

一、DNS域名解析

1.DNS的作用

2.域名的组成

2.1域名层级结构关系特点

2.2域名空间构成

2.3域名的四种不同类型

2.3.1延伸

2.3.2总结

3.DNS域名解析过程

3.1递归查询

3.2迭代查询

3.3一次DNS解析的过程

4.DNS系统类型

4.1缓存域名服务器

4.2主域名服务器

4.3从域名服务器

二、Bind(Berkeley Internet Name Daemon)

1.搭建内网DNS服务器

1.1安装bind软件包

1.2修改DNS地址

1.3重启网卡

1.4再次ping百度地址

1.5配置本机为DNS内网解析服务器

1.6修改客户端配置

1.7验证

2.正向解析——通过域名解析IP地址

2.1安装bind工具包——bind-utlis

2.2修改配置

2.3手写域名配置文件

2.4手写配置文件

2.5开启named服务

2.6验证

2.6.1检测命令

3.反向解析

3.1修改配置文件

3.2检查主配置文件格式

3.3复制数据库文件进行修改

3.4重启dns服务

3.5修改配置文件

3.6重启网卡

3.7测试

4.主从复制

4.1原理

4.2主从服务器一起配置

4.3统一安装bind-utils

4.4修改主配置文件

4.5修改域名配置文件

4.6修改网卡配置——主从复制

4.7重启网卡 

4.8验证主服务器

4.9从服务器配置

4.10修改监听与权限配置

4.11修改从配置文件

4.212重启网卡验证从服务器

4.13关闭主服务器,测试从服务器

4.14补充

5.分离解析

5.1安装工具包

5.2修改配置文件

5.3复制文件格式修改配置文件

5.4添加网卡

5.5复制且修改网卡配置信息

5.6设置Windows地址

6.CDN——内容分发网络


 

一、DNS域名解析

首先,我们要知道DNS是什么,DNS(Domain Name System)是域名系统的英文系统,是一种组织成域层次结构和计算机和网络服务命名系统,用于TCP/IP网络。

DNS实际上是域名解析协议,将域名转化为IP地址;

在早期的域名解析的时候,是iana组织负责将域名和IP地址进行对应,并对其进行排列综合,形成了hosts文件,一个IP地址对应一个域名

我们可以进入/etc/hosts配置文件为www.baidu.com.域名配置192.168.241.123的IP地址;

hosts配置文件的优先级最高;

可以进入 /etc/nsswotch.conf   #可以修改DNS的优先级

将dns写在file前面 

1.DNS的作用

通常识别主机的方式为主机名或者IP地址。人们更倾向于去记忆主机名,类似于www.baidu.com,而IP地址复杂且难记。为了解决这种问题,我们使用DNS域名解析服务,对IP地址进行解析,将可用的IP地址转化为域名,域名系统作为将域名和IP地址相互映射的一个分布式数据库,基于C/S架构,服务端口号为tcp53,udp53;实际上每台DNS域名解析服务器都只负责一个有限的范围(只负责自己范围内的解析)

正向解析:根据域名查找对应的IP地址

反向解析:根据IP地址查找对应的域名

DNS系统的分布式数据结构

2.域名的组成

2.1域名层级结构关系特点

  • 因特网采用层次树状结构的域名结构
  • 域名的结构由若干个分量组成,各分量之间用“点”隔开,分别代表不同级别的域名。
  • 每一级的域名都由英文字母和数字组成,不超过63个字符,不区分大小写字母。
  • 级别最低的域名写在最左边,而级别最高的顶级域名写在最右边。
  • 完整的域名不超过255个字符。

2.2域名空间构成

上图展示了 DNS 服务器的部分层次结构,从上到下依次为根域名服务器、顶级域名服务器和权威域名服务器。域名和IP地址的映射关系必须保存在域名服务器中,供所有其他应用查询。

2.3域名的四种不同类型

  • 根域名服务器 根域名服务器是最高层次的域名服务器。每个根域名服务器都知道所有的顶级域名服务器的域名及其IP地址。因特网上共有13个不同IP地址的根域名服务器。当本地域名服务器向根域名服务器发出查询请求时,路由器就把查询请求报文转发到离这个DNS客户最近的一个根域名服务器。这就加快了DNS的查询过程,同时也更合理地利用了因特网的资源。

根域:“ . ”;全球根域服务器节点只有13个,10个在美国,1个在荷兰,1个在瑞典,1个在日本

  • 顶级域名服务器 这些域名服务器负责管理在该顶级域名服务器注册的所有二级域名。当收到DNS查询请求时就给出相应的回答(可能是最后的结果,也可能是下一级权限域名服务器的IP地址)。

顶级域名也称一级域名(Top Level Domain:tid);顶级域:“ .com ”

  • 权限域名服务器 这些域名服务器负责管理某个区的域名。每一个主机的域名都必须在某个权限域名服务器处注册登记。因此权限域名服务器知道其管辖的域名与IP地址的映射关系。另外,权限域名服务器还知道其下级域名服务器的地址。

权限域名服务器也称组织与,国家域(.cn .ca  .hk  .tw);比如像.baidu就是权限域名服务器

  • 本地域名服务器 本地域名服务器不属于上述的域名服务器的等级结构。当一个主机发出DNS请求报文时,这个报文就首先被送往该主机的本地域名服务器。本地域名服务器起着代理的作用,会将该报文转发到上述的域名服务器的等级结构中。本地域名服务器离用户较近,一般不超过几个路由器的距离,也有可能就在同一个局域网中。本地域名服务器的IP地址需要直接配置在需要域名解析的主机中。

本地域名服务器也称主机名,比如www就是主机名

最多可达127级域名

2.3.1延伸

ICANN(The internet Corpora-tion for Assigned Names and Numbers)互联网名称与数字地址分配机构,负责在全球范围内对互联网通用顶级域名(gTLD)以及国家和地区顶级域名(ccTLD)系统的管理、以及根服务器系统的管理

2.3.2总结

根dns服务器只能解析  主机名  +  根域  ;例如根域无法解析www.baidu.com.,只能解析com.,但是会告诉该地址,它的下一级地址可以解析baidu.com.

顶级域(一级域)的dns服务器只能解析  主机名  +  一级域   +根域  ;例如www.baidu.com.

二级域的dns服务只能解析  主机名  +  二级域  +  一级域   +根域 ;例如www.baidu.com.

3.DNS域名解析过程

域名解析包含两种查询方式,分别是递归查询迭代查询,两种查询方式都可以得到结果,但是递归只需要询问一次即可得到结果,迭代需要询问多次才可以得到结果。

DNS域名解析的次数和域名长度有关 

3.1递归查询

一般客户机和本地DNS服务器之间属于递归查询,即当客户机向DNS服务器发出请求后,若DNS服务器不能解析,则会向另外的DNS服务器发出查询请求,得到最终的肯定或否定的结果后转交给客户机。此查询的源和目标保持不变,为了查询结果只需要发起一次查询。(不需要自己动手)

3.2迭代查询

一般情况下,本地的DNS服务器向其他DNS服务器的查询属于迭代查询,如:若对方不能返回权威的结果,则它会向下一个DNS服务器(参考前一个DNS服务器返回的结果)再次发起进行查询,直到返回查询的结果为止。此查询的源不变,但查询的目标不断变化,为查询结果一般需要发起多次查询(需要自己手动)

3.3一次DNS解析的过程

假如我要访问www.baidu.com.服务器

1.首先看我本机的 /etc/hosts 文件,如果有的话直接访问,如果没有就去找你设置的缓存DNS服务器

2.如果缓存服务器有,直接反馈结果(递归)如果没有就需要迭代查询,直接去找根域服务

3.由于根域服务器只能解析根,无法解析www.baidu.com. ;但是,根域服务器会让你去找一级域服务器

4.一级域发现自己也解析不了,让你去找二级域

5.二级域发现这台服务器在自己的管理范围内,直接反馈结果给缓存服务器

6.缓存服务器再交给客户

4.DNS系统类型

4.1缓存域名服务器

  • 缓存域名服务器也称DNS高速缓存服务器
  • 通过向其他域名服务器查询获得域名→IP地址记录
  • 将域名查询结果缓存到本地,提高重复查询时的速度

4.2主域名服务器

  • 特定DNS区域的权威服务器,具有唯一性
  • 负责维护该区域内所有域名→IP地址的映射记录
  • 需要自行建立所负责区域的地址数据文件

4.3从域名服务器

  • 也称为辅助域名服务器,是对主域名服务器的热备份
  • 其维护的域名→IP地址记录来源于主域名服务器
  • 需要从主域名服务器自动同步区域地址数据库

权威DNS服务器,最后谁解析DNS,谁为权威服务器,最后解析成功的服务器为权威服务器

二、Bind(Berkeley Internet Name Daemon)

  • Bind是应用最广泛的DNS服务程序
  • 官方站点:https://www.isc.org/

DNS服务器软件:bind,powerdns,dnsmasq,unbound,coredns

  • bind:服务器
  • bind-libs:相关库
  • bind-utils: 客户端
  • bind-chroot: 安全包,将dns相关文件放至 /var/named/chroot/

1.搭建内网DNS服务器

实验目的:在内网服务器上可以使用域名进行上网

1.1安装bind软件包

安装bind的时候会自动生成一个名叫named的用户

安装完软件后   要找到两个东西 (1.配置文件位置  2.主程序的位置)

rpm -qc 可以找到配置文件的位置

rpm -ql可以找到主程序的位置

1.2修改DNS地址

 安装完软件后,要找到两个东西(1.配置文件位置;2主程序位置)

rpm -qc  #可以找到配置文件的位置

rpm -qc  #可以找到主程序的位置

其中,bind是安装包的名字,namde是程序的名字

named程序的主要文件:

/etc/named.conf  #主配置文件

/etc/named.rfc1912.zones  #子配置文件  域名配置文件

/var/named   #程序库文件 

启动named程序的话 会先读取主配置文件

然后读取include包含的子配置文件

1.3重启网卡

会出现如下报错

1.4再次ping百度地址

DNS解析使用的是TCP和UDP的53端口

1.5配置本机为DNS内网解析服务器

修改监听端口为任意;修改权限为任意 

1.6修改客户端配置

1.7验证

此时内网DNS服务器就搭好了

2.正向解析——通过域名解析IP地址

实验目的:在内网环境中,需要有一台自己的dns服务器,去解析内网的服务

2.1安装bind工具包——bind-utlis

2.2修改配置

2.3手写域名配置文件

vim /etc/named.rpc1912.zones

2.4手写配置文件

拷贝named.localhost例子,到cxk.com.zone

vim /var/named/cxk.com.zone

@:域名;

IN:使用Internet协议

SOA:这条配置的基本功能

A:正向解析(将域名转化为IP地址);PTR:反向解析(将IP地址转化为域名)

master:定义了谁是dns服务器

2.5开启named服务

2.6验证

使用dig来解析域名

显示www.cxk.com的地址是192.168.241.111

2.6.1检测命令

named-checkconf  主配置文件

named-chechconf  /etc/named.conf

named-checkzone  域名  数据库文件

named-checkzone cxk.com /var/named/cxk.com.zone

3.反向解析

3.1修改配置文件

vim /etc/named.rfc1912.zones

3.2检查主配置文件格式

3.3复制数据库文件进行修改

3.4重启dns服务

3.5修改配置文件

vim /etc/sysconfig/network-scripts/ifcfg-ens33

3.6重启网卡

 

3.7测试

4.主从复制

4.1原理

4.2主从服务器一起配置

在Xshell中选择工具一栏,选择“发送键输入到所有会话”

关闭防火墙

4.3统一安装bind-utils

4.4修改主配置文件

4.5修改域名配置文件

4.6修改网卡配置——主从复制

4.7重启网卡 

4.8验证主服务器

4.9从服务器配置

4.10修改监听与权限配置

4.11修改从配置文件

4.212重启网卡验证从服务器

4.13关闭主服务器,测试从服务器

重启从服务器的dns服务 

4.14补充

5.分离解析

分离解析:一个服务器可以解析两个服务器地址

5.1安装工具包

5.2修改配置文件

 vim /etc/named.rfc1912.zones

5.3复制文件格式修改配置文件

 

5.4添加网卡

5.5复制且修改网卡配置信息

5.6设置Windows地址

6.CDN——内容分发网络

静态资源:不需要服务器二次处理的(图片、txt、视频)

动态资源:需要服务器二次处理的(java、Python、php)

状态代码:404错误、200正确、304缓存

相关文章:

Linux系统——DNS解析详解

目录 一、DNS域名解析 1.DNS的作用 2.域名的组成 2.1域名层级结构关系特点 2.2域名空间构成 2.3域名的四种不同类型 2.3.1延伸 2.3.2总结 3.DNS域名解析过程 3.1递归查询 3.2迭代查询 3.3一次DNS解析的过程 4.DNS系统类型 4.1缓存域名服务器 4.2主域名服务器 4…...

初识Ubuntu

其实还是linux操作系统 命令都一样 但是在学习初级阶段,我还是将其分开有便于我的学习和稳固。 cat 查看文件 命令 Ubuntu工作中经常是用普通用户,在需要时才进行登录管理员用户 sudn -i 切换成管理用户 我们远程连接时 如果出现 hostname -I没有出现…...

Casper Network (CSPR)2024 年愿景:通过投资促进增长

Casper Network (CSPR)是行业领先的 Layer-1 区块链网络之一,通过推出了一系列值得关注的技术改进和倡议,已经为 2024 年做好了准备。 在过去的一年里,Casper Network (CSPR)不断取得里程碑式的进展,例如推…...

《MySQL系列-InnoDB引擎06》MySQL锁介绍

文章目录 第六章 锁1 什么是锁2 lock与latch3 InnoDB存储引擎中的锁3.1 锁的类型3.2 一致性非锁定读3.3 一致性锁定读3.4 自增长与锁3.5 外键和锁 4 锁的算法4.1 行锁的三种算法4.2 解决Phantom Problem 5 锁问题5.1 脏读5.2 不可重复读5.3 丢失更新 6 阻塞7 死锁 第六章 锁 开…...

获取多个PDF文件的内容并保存到excel上

# shuang # 开发时间:2023/12/9 22:03import pdfplumber import re import os import pandas as pd import datetimedef re_text(bt, text):# re 搜索正则匹配 包含re.compile包含的文字内容m1 re.search(bt, text)if m1 is not None:return re_block(m1[0])return…...

深入了解网络流量清洗--使用免费的雷池社区版进行防护

​ 随着网络攻击日益复杂,企业面临的网络安全挑战也在不断增加。在这个背景下,网络流量清洗成为了确保企业网络安全的关键技术。本文将探讨雷池社区版如何通过网络流量清洗技术,帮助企业有效应对网络威胁。 ![] 网络流量清洗的重要性&#x…...

【FFMPEG应用篇】基于FFmpeg的转码应用(FLV MP4)

方法声明 extern "C" //ffmpeg使用c语言实现的&#xff0c;引入用c写的代码就要用extern { #include <libavcodec/avcodec.h> //注册 #include <libavdevice/avdevice.h> //设备 #include <libavformat/avformat.h> #include <libavutil/…...

LInux初学之路linux的磁盘分区/远程控制/以及关闭图形界面/查看个人身份

虚拟机磁盘分配 hostname -I 查看ip地址 ssh root虚拟就ip 远程连接 win10之后才有 远程控制重新启动 reboot xshell 使用&#xff08;个人和家庭版 免费去官方下载&#xff09; init 3 关闭界面 减小内存使用空间 init 5 回复图形界面 runlevel显示的是状态 此时和上…...

Netty 介绍、使用场景及案例

Netty 介绍、使用场景及案例 1、Netty 介绍 https://github.com/netty/netty Netty是一个高性能、异步事件驱动的网络应用程序框架&#xff0c;用于快速开发可扩展的网络服务器和客户端。它是一个开源项目&#xff0c;最初由JBoss公司开发&#xff0c;现在由社区维护。Netty的…...

小游戏选型(一):游戏化设计助力直播间互动和营收

一、社交直播间小游戏火爆 大家好&#xff0c;作为一个技术宅和游戏迷&#xff0c;今天来聊聊近期爆火的社交直播间小游戏的潮流。喜欢冲浪玩社交产品的小伙伴会发现&#xff0c;近期各大平台都推出了直播间社交小游戏&#xff0c;直播间氛围火爆&#xff0c;小游戏玩法简单&a…...

社区嵌入式服务设施建设为社区居家养老服务供给增加赋能

近年来&#xff0c;沈阳市浑南区委、区政府牢记在辽宁考察时的重要指示精神&#xff0c;认真践行以人民为中心的发展思想&#xff0c;聚集“一老一小”民生关切&#xff0c;统筹推进以社区为骨干结点的养老服务探索实践。围绕“品质养老”民生服务理念&#xff0c;针对社区老年…...

SpringBoot请求参数加密、响应参数解密

SpringBoot请求参数加密、响应参数解密 1.说明 在项目开发工程中&#xff0c;有的项目可能对参数安全要求比较高&#xff0c;在整个http数据传输的过程中都需要对请求参数、响应参数进行加密&#xff0c;也就是说整个请求响应的过程都是加密处理的&#xff0c;不在浏览器上暴…...

Mysql适配国产化数据库人大金仓冲突记录

1、mysql中查询中如果使用双引号&#xff0c;在人大金仓数据库中不支持&#xff0c;需改为单引号 例如&#xff1a; select 字段A&#xff0c;字段B&#xff0c;字段C from tableA where 字段A "1" 改为&#xff1a; select 字段A&#xff0c;字段B&#xff0c;字段…...

在微服务架构中认证和授权的那些事儿

在微服务架构中认证和授权是最基础的服务能力&#xff0c;其中这一块行业类的标准就是OAuth2 和 SSO &#xff0c;而OAuth2 和 SSO 可以归类为“用户管理和身份验证”工具&#xff0c;OpenID Connect 1.0是 OAuth 2.0 协议之上的一个简单身份层。 Part.1 认识OAuth 2.0 OAuth…...

Git使用统一规范

为什么要统一git使用的风格&#xff1f; 统一的风格使我们在工作的时候无需考虑工作流程上该如何去做的问题&#xff0c;按照一个风格去做就好了每个人风格不同&#xff0c;格式凌乱&#xff0c;查看很不方便commit没有准确的message&#xff0c;后续难以追踪问题 git messag…...

如何在前端优化中处理大量的图像资源?

在前端优化中&#xff0c;处理大量的图像资源是一项重要的任务。由于图像占据了网站带宽的大部分&#xff0c;因此优化图像可以显著提高网站的性能和用户体验。下面将介绍一些在前端优化中处理大量图像资源的常见方法。 一、压缩图像 压缩图像是减少图像文件大小和优化图像的…...

【MYSQL】性能相关

SQL 语句的性能分析是一个非常重要的任务&#xff0c;尤其是在处理大数据时。下面是一些常用的 SQL 性能分析方法&#xff1a; 执行计划: 使用 EXPLAIN 命令来查看 SQL 语句的执行计划。这可以帮助你了解查询是如何被数据库执行的&#xff0c;从而发现可能的性能瓶颈。 注意&…...

【Jmeter之get请求传递的值为JSON体实践】

Jmeter之get请求传递的值为JSON体实践 get请求的常见传参方式 1、在URL地址后面拼接&#xff0c;有多个key和value时&#xff0c;用&链接 2、在Parameters里面加上key和value 第一次遇到value的值不是字符串也不是整型&#xff0c;我尝试把json放到value里面&#xff0…...

(1)(1.13) SiK无线电高级配置(六)

文章目录 前言 15 使用FTDI转USB调试线配置SiK无线电设备 16 强制启动加载程序模式 17 名词解释 前言 本文提供 SiK 遥测无线电(SiK Telemetry Radio)的高级配置信息。它面向"高级用户"和希望更好地了解无线电如何运行的用户。 15 使用FTDI转USB调试线配置SiK无线…...

用JAVA实现樱花飘落

用java实现一个樱花飘落的方法 package Text2;import javax.swing.*; import java.awt.*; import java.util.ArrayList; import java.util.List;public class Sakura extends JFrame {private List<Point> sakuraList; // 樱花的位置列表public Sakura() {sakuraList n…...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销&#xff0c;平衡网络负载&#xff0c;延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...

java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别

UnsatisfiedLinkError 在对接硬件设备中&#xff0c;我们会遇到使用 java 调用 dll文件 的情况&#xff0c;此时大概率出现UnsatisfiedLinkError链接错误&#xff0c;原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用&#xff0c;结果 dll 未实现 JNI 协…...

376. Wiggle Subsequence

376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...

嵌入式学习笔记DAY33(网络编程——TCP)

一、网络架构 C/S &#xff08;client/server 客户端/服务器&#xff09;&#xff1a;由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序&#xff0c;负责提供用户界面和交互逻辑 &#xff0c;接收用户输入&#xff0c;向服务器发送请求&#xff0c;并展示服务…...

排序算法总结(C++)

目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指&#xff1a;同样大小的样本 **&#xff08;同样大小的数据&#xff09;**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...

LLMs 系列实操科普(1)

写在前面&#xff1a; 本期内容我们继续 Andrej Karpathy 的《How I use LLMs》讲座内容&#xff0c;原视频时长 ~130 分钟&#xff0c;以实操演示主流的一些 LLMs 的使用&#xff0c;由于涉及到实操&#xff0c;实际上并不适合以文字整理&#xff0c;但还是决定尽量整理一份笔…...

快刀集(1): 一刀斩断视频片头广告

一刀流&#xff1a;用一个简单脚本&#xff0c;秒杀视频片头广告&#xff0c;还你清爽观影体验。 1. 引子 作为一个爱生活、爱学习、爱收藏高清资源的老码农&#xff0c;平时写代码之余看看电影、补补片&#xff0c;是再正常不过的事。 电影嘛&#xff0c;要沉浸&#xff0c;…...

云原生周刊:k0s 成为 CNCF 沙箱项目

开源项目推荐 HAMi HAMi&#xff08;原名 k8s‑vGPU‑scheduler&#xff09;是一款 CNCF Sandbox 级别的开源 K8s 中间件&#xff0c;通过虚拟化 GPU/NPU 等异构设备并支持内存、计算核心时间片隔离及共享调度&#xff0c;为容器提供统一接口&#xff0c;实现细粒度资源配额…...

Matlab实现任意伪彩色图像可视化显示

Matlab实现任意伪彩色图像可视化显示 1、灰度原始图像2、RGB彩色原始图像 在科研研究中&#xff0c;如何展示好看的实验结果图像非常重要&#xff01;&#xff01;&#xff01; 1、灰度原始图像 灰度图像每个像素点只有一个数值&#xff0c;代表该点的​​亮度&#xff08;或…...

Python爬虫实战:研究Restkit库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的有价值数据。如何高效地采集这些数据并将其应用于实际业务中,成为了许多企业和开发者关注的焦点。网络爬虫技术作为一种自动化的数据采集工具,可以帮助我们从网页中提取所需的信息。而 RESTful API …...