阿里云云解析DNS核心概念与应用

文章目录

    • 1.DNS解析基本概念
      • 1.1.DNS基本介绍
      • 1.2.域名的分层结构
      • 1.3.DNS解析原理
      • 1.4.DNS递归查询和迭代查询的区别
      • 1.5.DNS常用的解析记录
    • 2.使用DNS云解析将域名与SLB公网IP进行绑定
      • 2.1.进入云解析DNS控制台
      • 2.2.添加域名解析记录
      • 2.3.验证解析是否生效

1.DNS解析基本概念

DNS官方文档:https://help.aliyun.com/document_detail/102237.html

1.1.DNS基本介绍

DNS 是域名系统 (Domain Name System) 的缩写,是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。

我们在访问一个应用系统时,在没有使用DNS前,都是使用IP去访问的,IP的组成都是数字,难以记忆,DNS可以将IP解析成方便记忆的域名,例如jiangxl.com,在浏览器中输入jiangxl.com就可以跳转到对应的应用服务器,为我们提供服务,域名和IP相比,域名是非常好记忆的。

DNS核心功能

  • 记录域名与IP的对应关系
  • 通过DNS可以将经常需要变换IP的固定成一个访问入口,即使变换了IP,使用者无感知。

DNS的分类

  • 公网DNS(万网)通过此类DNS可以访问任意互联网应用。
  • 私网DNS(bind9)此类DNS只能在局域网环境使用。

一个典型使用DNS迁移场景 如下图所示

当我们的MySQL数据库需要进行迁移,数据库从上海迁移到了北京机房,IP肯定是要变的,当更改了IP,连接数据库的程序都需要进行修改成新的IP,如果我们WEB节点较少还可以接收,如果我们的WEB节点有几十台甚至上台,我们一个个的去修改程序连接会变得非常麻烦,即使我们有自动化更新流程,时间也是很长的,也会涉及到WEB程序的重启。

针对这种情况,我们可以将数据库的IP和域名写入到一个本子里,方便程序记忆,这个本子就是/etc/hosts文件,这个文件可以记录域名与IP的对应关系,我们给MySQL服务器设置一个域名,比如叫mysql.example.com,将数据库的IP和域名的对应关系写入到/etc/hosts文件中,当我们需要更换数据库IP时,只需要将每个服务器/etc/hosts中域名对应的IP进行修改即可完成迁移,并且程序也不需要重启。

虽然将IP和域名写入到了一个文件里,修改文件即可,但是如果面对上千台服务器时,过程也会变得繁琐。

针对新的问题,从而就需要应用DNS服务器了,在服务器环境中部署一个DNS服务器,在DNS服务器中记录数据库IP与域名的对应关系,并且在DNS中开启for转发配置,然后在每台WEB服务器中指定本地DNS的地址,当我们程序需要连接数据库时,会通过DNS找到提供MySQL服务的地址,当访问互联网时也会通过for配置转发到公网DNS服务器,当我们需要更换数据库IP时,就可以直接修改DNS的域名解析记录即可完成。

image-20220126141140184

DNS的几个关键的专业术语

  • DNS缓存

    • DNS缓存也就是CDN,在使用CDN之前一定要搞清楚DNS,DNS缓存就是将解析的数据存储在距离用户最近的网络节点,最终目的就是让用户减少迭代查询的速度,从而加速网站的访问。
  • TTL

    • TTL全称为Time To Live,这个值用于去设定域名解析结果缓存的时间,时间结束后会自动删除解析记录,再次使用时还需要重新进行递归和迭代查询。
  • TLD Server

    • 顶级域服务器
  • DNS Resolver

    • 本地DNS服务器
  • Root Server

    • 根域服务器

1.2.域名的分层结构

在互联网中使用域名的用户非常多,因特网在命名时将域名分为根域、顶级域、主域名、子域名四层。

根域服务器全球只有13台,并且根域只有一个,那就是点".",DNS的解析流程最开始到达的也就是根域。

顶级域就是我们常见的.com、.cn、.edu等等,这类域名统称为顶级域名,所有用户都可以在顶级域的基础上去申请主域名。

主域名也就被称为一级域名,如jiangxl.com这个主域名,每个用户都需要在顶级域的基础上去申请自己的一级域名,每个人每家企业都都独立的主域名。

子域名也就是我们常常说到的二级域名或者主机头,在主域名的基础上申请二级域名,可以为不同的应用程序申请不同的二级域名,例如www.jiangxl.com这个域名就是在主域名的基础上申请的二级域名。

另外还可有三级域名,三级域名就看个人和企业的需求了,可以在二级域名的基础上再申请三级域名,例如cn201212.www.jiangxl.com.cn这个域名,通常一个应用程序有不同的区域使用,不同的区域可以通过不同的三级域名作为区分的标准。

image-20220126144357503

1.3.DNS解析原理

以用户访问www.jiangxl.com域名为例讲解DNS的解析原理。

1)用户在浏览器中输入"www.jiangxl.com",若在/etc/hosts文件中有域名解析记录,则直接返回给用户,若不存在本地解析记录,则由本地DNS服务器开始递归查询。

2)本地DNS服务器没有域名解析记录,开始采用迭代查询找到根域服务器,并向根域服务起询问"你知道谁是.com吗"。

3)根域服务器向本地DNS服务器说我知道".com"域名是谁,并将.com的服务器信息一并告知本地DNS服务器。

4)本地DNS服务器根据信息找到了."com"的顶级域服务器,开始询问你知道谁是"jiangxl.com"吗。

5)顶级域服务器说我知道谁是"jiangxl.com",并将"jiangxl.com"域名发服务器信息告知本地服务器。

6)本地服务器根据信息找到了"jiangxl.com"主域服务器,开始询问你知道谁是"www.jiangxl.com"吗。

7)主域服务器说我知道谁是"www.jiangxl.com",并将"www.jiangxl.com"域名服务器的信息告知给本地服务器。

8)本地DNS拿到"www.jiangxl.com"域名对应的服务器信息后,将解析记录反馈给客户端。

9)浏览器根据解析记录,向"www.jiangxl.com"对应的WEB服务器发送HTTP请求。

10)该WEB服务器将结果呈现在用户的浏览器中。

在这里插入图片描述

1.4.DNS递归查询和迭代查询的区别

DNS查询分为递归查询和迭代查询两种。

  • 递归查询

    • 是指DNS服务器在收到用户发起的请求时,必须向用户返回一个准确的查询结果。如果DNS服务器本地没有存储与之对应的信息,则该服务器需要询问其他服务器,并将返回的查询结构提交给用户。
    • 简而言之,递归查询必须返回给用户一个准确的解析地址,如果查找的服务器不存在该记录就需要询问其他服务器
    • 递归查询就好比工作中领导安排一件事情,不管过程,只要最终的结果。
  • 迭代查询

    • 是指DNS服务器在收到用户发起的请求时,并不直接回复查询结果,而是告诉另一台DNS服务器的地址,用户再向这台DNS服务器提交请求,这样依次反复,直到返回查询结果。
    • 简而言之,迭代查询是指当前服务器并不知道这条解析记录,但是这个服务器知道哪个服务器拥有这条记录,并将信息告知。
    • 迭代查询就好比是在工作中,你要处理一个问题,询问了你的同事,你同事说我不知道但是领导肯定指定,让你去问领导。

递归查询和迭代查询效果图如下,蓝线表示递归查询,可以看到直接就需要返回给客户端,黑线表示迭代查询,一层层的进行查询。

在DNS的解析过程中,用户与本地服务器直接使用递归查询,本地服务器与其他服务器直接采用迭代查询。

image-20220126160755933

1.5.DNS常用的解析记录

A记录:将域名解析到指定的IPV4地址。

CNAME:将域名解析到另一个域名,由另一个域名提供具体的服务

AAAA:将域名解析到IPV6地址。

NS:将域名指定到另一个DNS服务器进行解析。

MX:将域名解析到邮箱服务器。

2.使用DNS云解析将域名与SLB公网IP进行绑定

2.1.进入云解析DNS控制台

在控制台中找到云解析,点击进入云解析DNS的控制台。

1642477916630

2.2.添加域名解析记录

1)在域名解析这里找到我们的域名,点击解析设置。

1642478029543

2)点击添加记录—>记录类型为A记录—>在主机记录这里填写主机名—>记录值为SLB的公网地址,也就是域名要解析的地址。

1642482365652

2.3.验证解析是否生效

解析添加完成后,就可以在本地cmd中ping我们的域名,并且从此以后可以直接在浏览器中通过域名访问我们的程序。

1642482879745

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C++超基础语法

💓博主个人主页:不是笨小孩👀 ⏩专栏分类:数据结构与算法👀 C👀 刷题专栏👀 C语言👀 🚚代码仓库:笨小孩的代码库👀 ⏩社区:不是笨小孩👀 🌹欢迎大…

SSH远程连接MacOS catalina并进行终端颜色配置

一、开关SSH服务 在虚拟机上安装了MacOS catalina,想要使用SSH远程进行连接,但是使用“系统偏好设置”/“共享”/“远程登录”开关进行打开,却一直是正在启动“远程登录”: 难道是catalina有BUG?不过还是有方法的&…

AcrelEMS-SW智慧水务能效管理平台解决方案-安科瑞黄安南

系统概述 安科瑞电气具备从终端感知、边缘计算到能效管理平台的产品生态体系,AcrelEMS-SW智慧水务能效管理平台通过在污水厂源、网、荷、储、充的各个关键节点安装保护、监测、分析、治理装置,用于监测污水厂能耗总量和能耗强度,重点监测主要…

Spring系列七:声明式事务

🐘声明式事务 和AOP有密切的联系, 是AOP的一个实际的应用. 🐲事务分类简述 ●分类 1.编程式事务: 示意代码, 传统方式 Connection connection JdbcUtils.getConnection(); try { //1.先设置事务不要自动提交 connection.setAutoCommit(false…

【爬虫】爬取旅行评论和评分

以马蜂窝“普达措国家公园”为例,其评论高达3000多条,但这3000多条并非是完全向用户展示的,向用户展示的只有5页,数了一下每页15条评论,也就是75条评论,有点太少了吧! 因此想了个办法尽可能多爬…

Swagger

目录 简介 使用方式: 常用注解 简介 使用Swagger你只需要按照他的规范去定义接口及接口相关信息再通过Swagger衍生出来的一系列项目和工具,就可以做到生成各种格式的接口文档,以及在线接口调试页面等等。 官网:https://swagger…

【0基础入门Python笔记】二、python 之逻辑运算和制流程语句

二、python 之逻辑运算和制流程语句 逻辑运算控制流程语句条件语句(if语句)循环结构(for循环、while循环)控制流程语句的嵌套以及elif 逻辑运算 Python提供基本的逻辑运算:不仅包括布尔运算(and、or、not&…

基于深度信念神经网络+长短期神经网络的降雨量预测,基于dbn-lstm的降雨量预测,dbn原理,lstm原理

目录 背影 DBN神经网络的原理 DBN神经网络的定义 受限玻尔兹曼机(RBM) LSTM原理 DBN-LSTM的降雨量预测 基本结构 主要参数 数据 MATALB代码 结果图 展望 背影 DBN是一种深度学习神经网络,拥有提取特征,非监督学习的能力,通过dbn进行无监督学习提取特征,然后长短期神经…

mysql 插入数据锁等待超时报错:Lock wait timeout exceeded; try restarting transaction

报错信息 Lock wait timeout exceeded; try restarting transaction 锁等待超时 Lock wait timeout exceeded; try restarting transaction,是当前事务在等待其它事务释放锁资源造成的 解决办法 1、数据库中执行如下sql,查看当前数据库的线程情况&…

[C++ 网络协议编程] TCP/IP协议

目录 1. TCP/IP协议栈 2. TCP原理 2.1 TCP套接字中的I/O缓冲 2.2 TCP工作原理 2.2.1 三次握手(连接) 2.2.2 与对方主机的数据交换 2.2.3 四次握手(断开与套接字的连接) TCP(Transmission Control Protocol传输控…

python bytes基本用法

目录 1 第一个字符变大写,其余字符变小写 capitalize() 2 生成指定长度内容,然后把指定的bytes放到中间 center() 3 计数 count() 4 解码 decode() 5 是否以指定的内容结尾 endswith() 6 将制表符调整到指定大小 expandtabs() 7 寻找指…

Springboot 实践(7)springboot添加html页面,实现数据库数据的访问

前文讲解,项目已经实现了数据库Dao数据接口,并通过spring security数据实现了对系统资源的保护。本文重点讲解Dao数据接口页面的实现,其中涉及页面导航栏、菜单栏及页面信息栏3各部分。 1、创建html页面 前文讲解中,资源目录已经…

2023年服贸会在哪里举行?北京有哪些媒体可以做宣传?

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 8月14日,”2023年服贸会新闻发布会在北京首钢园举行,宣布2023年服贸会将于9月2日至6日在国家会议中心和首钢园区举办,采用‘线下线上’‘综合专题’办…

【mysql报错解决】MySql.Data.MySqlClient.MySqlException (0x80004005)或1366

场景:c#使用mysql数据库执行数据库迁移,使用了新增inserter的语句,然后报错 报错如下: 1.MySql.Data.MySqlClient.MySqlException (0x80004005): Incorrect string value: ‘\xE6\x9B\xB4\xE6\x94\xB9…’ for column ‘Migratio…

2023.8.8巨人网络数据开发工程师面试复盘

1 概述 问题一览 总体感觉良好,通过面试官的介绍可知这个岗位偏向离线数仓。 1.自我介绍 2.询问了其中一段实习经历 3.讲下你说用过的Linux命令 4.讲下HIVE的内部表和外部表有什么不同 *5.讲下你使用过的Hive函数(好好在复习下多准备几个吧&#xff09…

CentOS 7 安装MySQL8.0.33

一、查看 CentOS 版本 要查看当前 CentOS 版本,你可以执行以下命令: cat /etc/centos-release 该命令将显示当前 CentOS 的版本信息,例如: CentOS Linux release 7.9.2009 (Core) 在这个示例中,CentOS 版本为 7.…

【历史上的今天】8 月 18 日:硅谷神话的衰落;微软发布 QuickBASIC;Adobe Audition 问世

整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来。 8 月 18 日,这是科技历史上难以翻过的一页,因为今天发生的几个主要事件很巧合地都集中在惠普这家公司。在《浪潮之巅》中,吴军评价惠普“某…

IntelliJ IDEA热部署:JRebel插件的安装与使用

热部署 概述JRebel 概述 热部署,指修改代码后,无需停止应用程序,即可使修改后的代码生效,其有利于提高开发效率。 热部署方式: 手动热部署:修改代码后,重新编译项目,然后启动应用程…

音视频实时通话解决方案

1、问题提出 想要实现音视频通话,对于大部分人可能会觉得很难,但是实际上,有些事情并没有大家想的那样困难,只要功夫深,铁杵磨成针。 机缘巧合下,在业务中,我也遇到了一个业务场景需要实现音视频通话,我们不可能自己从零开始干,我本次用到的核心是WebRTC。 2、WebRT…

基于python+django+mysql的校园影院售票系统(可做计算机毕设)

开发柚子校园影院,不仅可以改善用户查看信息难的局面,还可以提高管理效率,同时也可以增强系统的竞争力。利用柚子校园影院的可以有效地提高系统的人事的效率和信息化水平,快速了解信息更新及服务的进度。这既可以确保系统服务的品…