DNS详解

server/2024/11/14 12:24:47/

DNS详解

DNS 是一个域名系统,它主要用于将人类容易记忆的域名转换成ip地址。

默认情况下,设备会自动从网络供应商获取DNS服务器地址,并使用DNS服务器对域名进行解析。

此外,你也可以手动设置DNS服务器,具体操作系统的操作步骤可以进行网络查询。

分布式架构

DNS是分布式架构的,全球拥有多个根服务器。

  • 根服务器:DNS最顶层,管理顶级域(.com,.net…)。
  • 顶级域名服务器:管理特定顶级域下的域名信息。(如.com)
  • 权威DNS服务器:存储特定域名的信息。
  • 递归解析器:用于接收用户DNS查询请求,并递归的向其他DNS服务器查询ip地址。

查询过程

这里在以浏览器输入一个域名开始为例:

  1. 查询本地是否包含DNS缓存,如果不存在则向递归解析器发起请求
  2. 递归解析器查看本地是否包含缓存结果,如果没有,则向根服务器发起查询请求。
  3. 根服务器返回管理特定顶级域的顶级域名服务器
  4. 递归解析器向顶级服务器发起查询请求
  5. 顶级服务器返回管理特定域名权威DNS服务器的地址
  6. 递归解析器向权威DNS服务器发起查询请求,权威DNS服务器返回特定域名的ip地址。
  7. 递归解析器将ip地址返回给设备。

在这里插入图片描述

例子

dig +trace www.baidu.com
; <<>> DiG 9.10.6 <<>> +trace www.baidu.com
;; global options: +cmd
.                       352657  IN      NS      j.root-servers.net.
.                       352657  IN      NS      h.root-servers.net.
.                       352657  IN      NS      l.root-servers.net.
.                       352657  IN      NS      d.root-servers.net.
.                       352657  IN      NS      k.root-servers.net.
.                       352657  IN      NS      b.root-servers.net.
.                       352657  IN      NS      e.root-servers.net.
.                       352657  IN      NS      i.root-servers.net.
.                       352657  IN      NS      g.root-servers.net.
.                       352657  IN      NS      m.root-servers.net.
.                       352657  IN      NS      f.root-servers.net.
.                       352657  IN      NS      c.root-servers.net.
.                       352657  IN      NS      a.root-servers.net.
;; Received 811 bytes from 192.168.2.1#53(192.168.2.1) in 24 mswww.baidu.com.          600     IN      CNAME   www.a.shifen.com.
www.a.shifen.com.       600     IN      A       180.101.50.242
www.a.shifen.com.       600     IN      A       180.101.50.188

可以看到 www.baidu.com 是一个别名,它的真实域名是www.a.shifen.com。j.root-servers.net代表根服务器名称。

网站访问、负载均衡、内容分发系统(CDN)

在网站访问,负载均衡,CDN经常会用到DNS。

如负载均衡,将同一个域名解析为不同的ip地址,根据不同服务器的负载转给不同服务器去执行。

CDN,将域名的ip的地址解析为离用户较近的服务器,加快数据传输,减少传输延迟等。

其他

DNS缓存污染

攻击者向DNS解析器里注入恶意的DNS记录,导致用户访问恶意网站或者钓鱼网站。

DNS劫持

将用户DNS请求重定向到恶意DNS服务器,导致用户不正确的ip地址。


http://www.ppmy.cn/server/106852.html

相关文章

python自动化脚本:让工作自动化起来

Python是一种流行的编程语言&#xff0c;以其简洁和易读性而闻名。它提供了大量的库和模块&#xff0c;使其成为自动化各种任务的绝佳选择。 我们将探讨9个Python脚本及其代码&#xff0c;可以帮助您自动化各种任务并提高工作效率。无论您是开发人员、数据分析师还是只是想简化…

iPhone短信误删如何恢复,四种方法找回短信

在日常使用手机的过程中&#xff0c;我们可能会因为误操作或其他原因不小心删除了重要的短信。这些短信可能包含了工作沟通、家人关怀或朋友间的温馨对话&#xff0c;一旦丢失&#xff0c;难免让人感到焦虑和不安。不过&#xff0c;别担心&#xff0c;针对iPhone短信误删的问题…

【设计模式之原型模式——矩形原型】

原型模式的基本实现 创建⼀个抽象类或接⼝&#xff0c;声明⼀个克隆⽅法 clone 具体原型类去实现接口&#xff0c;重写克隆⽅法 客户端中实例化具体原型类的对象&#xff0c;并调⽤其克隆⽅法来&#xff08;赋给&#xff09;创建新的对象。 什么时候实现原型模式 &#xff1f;…

数据库集群技术

源码安装mysql mysql.com [https://downloads.mysql.com/archives/community/]: 官网下载 安装依赖性&#xff1a; [rootmysql-node2 ~]# dnf install cmake gcc-c openssl-devel \ ncurses-devel.x86_64 libtirpc-devel-1.3.3-8.el9_4.x86_64.rpm rpcgen.x86_64 下载并解压源…

java多线程(七)AQS(AbstractQueuedSynchronizer)技术解析:以赛跑起跑场景为例

AQS概括 核心思想 AQS&#xff08;AbstractQueuedSynchronizer&#xff09;是Java并发包中的一个核心同步器框架&#xff0c;它定义了一套多线程访问共享资源的同步机制。 其核心思想是&#xff1a;利用一个volatile的int类型的变量state来表示同步状态&#xff0c;并通过一…

[C++]一、C++基础编程

G:\Cpp\2023版C教程 C语言程序设计 第一部分 基础篇 一、什么是C 1.1 C 简介 C 是一门非常经典的高级编程语言。顾名思义&#xff0c;C可以看做是C语言的增强版&#xff0c;在C的基础上扩展了更多的功能&#xff1b;最主要的扩展&#xff0c;就是面向对象和泛型编程。 因…

如何解决:Failed to start jenkins.service: Unit not found.

当在 CentOS 上尝试启动 Jenkins 服务时&#xff0c;出现 Failed to start jenkins.service: Unit not found 的错误&#xff0c;这通常表示 Jenkins 服务未安装或未正确配置。请按照以下步骤进行排查和解决&#xff1a; 解决步骤 检查 Jenkins 是否已安装&#xff1a; 确认 J…

Linux系统编程:UDP和TCP

UDP&#xff08;用户数据报协议&#xff09; recvfrom 函数 ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags, struct sockaddr *src_addr, socklen_t *addrlen); 功能: 从指定的 UDP 套接字接收数据。参数: sockfd: 套接字的文件描述符。buf: 指向接收数据…