首页 > 其他分享 >DNS介绍与实现方法

DNS介绍与实现方法

时间:2024-11-01 18:19:50浏览次数:1  
标签:00 01 记录 介绍 查询 域名 DNS 方法

简介:域名系统(Domain Name System,缩写:DNS)是互联网的一项服务。是一种可以将域名和IP地址相互映射的以层次结构分布的数据库系,允许终端用户设备将给定的人类可读URL转换为网络可以理解的机器可用IP地址。

工作原理:DNS是一种基于TCP/UDP可以将域名和IP地址相互映射的层次结构的分布式数据库系统,主要包括如下3个组成部分:

(1)域名空间(domain name space)和资源记录(resource record);

(2)域名服务器(name server);

(3)解析器(resolver)。

DNS系统采用递归查询请求的方式来响应用户的查询,其一般过程如下:

(1)客户端首先向首选域名服务器查询。

(2)首选域名服务器检查本地资源记录,如果存在则作权威回答,如果不存在,则检查本地缓存,如果有记录则直接返回结果。若本地资源记录和缓存记录都不存在,则向根域名服务器查询。

(3)根域名服务器返回相应顶级域的权威域名服务器的地址,首选域名服务器继续向该顶级权威域名服务器查询。

(4)顶级权威域名服务器返回次级域的权威域名服务器地址,首选域名服务器如此迭代查询,直到得到对查询域名的权威回答,保存在本地缓存中并返回给客户端,完成此次查询。目前绝大多数的网络都会开放DNS服务,DNS数据包不会被防火墙等网络安全防护设备拦截,因此,可以基于DNS协议建立隐蔽通道,从而顺利穿过防火墙,在客户端和服务器之间隐蔽地传输数据。

DNS报文结构:

DNS报文结构分两部分:DNS查询报文和DNS应答报文。

DNS报文首部

  • 标识(Identification): 16位字段,用于标识报文,用于匹配查询和响应。
  • 标志(Flags): 包含多个标志位,如查询/响应标志、递归标志等。
  • 查询记录数(QDCount): 指定查询部分的问题数目。
  • 回答记录数(ANCount): 指定回答部分的记录数目。
  • 授权回答记录数(NSCount): 指定权威部分的记录数目。
  • 附加信息记录数(ARCount): 指定附加部分的记录数目

查询部分:

  • 域名(QNAME): 一个以字节为单位的域名列表,表示查询的域名。
  • 查询类型(QTYPE): 16位字段,表示查询的资源记录类型。
  • 查询类别(QCLASS): 16位字段,表示查询的资源记录类别。

回答部分:

  • 域名(NAME): 一个以字节为单位的域名列表,表示查询的域名。
  • 类型(TYPE): 16位字段,表示资源记录的类型。
  • 类别(CLASS): 16位字段,表示资源记录的类别。
  • 生存时间(TTL): 32位字段,表示资源记录的生存时间。
  • 数据长度(RDLENGTH): 16位字段,表示资源记录数据字段的长度。
  • 资源记录数据(RDATA): 实际的资源记录数据,可以是IPv4地址、IPv6地址、CNAME等。

权威部分:

  • 类似于回答部分,包含权威服务器的资源记录信息。

附加部分:

  • 类似于回答部分,包含额外的资源记录信息,通常用于提供额外的信息,如DNSSEC签名等。

基于CH394的DNS实现:

  1. 初始化CH394并创建1个UDP的socket;
  2. link成功后可通过CH394向DNS服务器发查询报文,DNS服务器ip要与路由器DNS服务器IP一致,目的端口为53.
  3. CH394发送查询报文:

Domain Name System (query)

Transaction ID: 0x1101 * 11 01

Flags: 0x0100 Standard query * 01 00

Questions: 1 * 00 01

Answer RRs: 0 * 00 00

Authority RRs: 0 * 00 00

Additional RRs: 0 * 00 00

Queries

Name: www.wch.cn * 03 77 77 77 03 77 63 68 02 63 6e 00

Type: A (1) (Host Address) * 00 01

Class: IN (0x0001) * 00 01

  1. CH394解析回答报文:

Domain Name System (response)

Transaction ID: 0x1102 * 11 02

Flags: 0x8180 Standard query response, No error * 81 80

Questions: 1 * 00 01

Answer RRs: 1 * 00 01

Authority RRs: 0 * 00 00

Additional RRs: 0 * 00 00

Queries

Name: www.wch.cn * 03 77 77 7703 77 63 68 02 63 6e 00

Type: A (1) (Host Address) * 00 01

Class: IN (0x0001) * 00 01

Answers

Name: www.wch.cn * c0 0c

Type: A (1) (Host Address) * 00 01

Class: IN (0x0001) * 00 01

Time to live: 2710 (45 minutes, 10 seconds) * 00 00 0a 96

Data length: 4 * 00 04

Address: www.wch.cn (58.213.45.186) * 3a d5 2d ba

 

附工程:https://files.cnblogs.com/files/blogs/745523/CH394_DNS.zip?t=1730456830&download=true

标签:00,01,记录,介绍,查询,域名,DNS,方法
From: https://www.cnblogs.com/llidd/p/18521014

相关文章

  • 给予爱快路由器使用阿里云DDNS远程访问家庭网络
    一、阿里云域名准备1、首先需要购买一个阿里云域名,选简短好记性价比高的即可,如果域名只是用来解析路由器IP地址,不做服务器类应用,则不需要备案。 2、想做动态域名解析,光有域名还不行,还需要在阿里云控制台建立一个访问授权,路由器才能动态同步远营商的IP地址到DNS服......
  • 【MemTester】内存测试工具Memtester使用方法
    1.MemTester简介MemTester是一个用于压力测试内存子系统的工具,它特别有效于发现间歇性和非确定性的故障。以下是MemTester的一些主要特点和功能:内存错误捕获:MemTester主要用于捕获内存错误和识别一直处于高或低电平的坏位。多种测试项目:它提供了一系列测试项目,包括随机值测试......
  • MySQL 死锁日志分析方法
    作者:京东物流张凯引言MySQL死锁是线上经常遇到的现象,但是死锁分析却并不总是件容易的事情,本文介绍MySQL死锁日志的分析方法,帮助研发从日志中快速提取有效信息,从而提高死锁原因分析的效率。 死锁介绍触发条件死锁的触发条件包括四个:•互斥•占有且等待•不可抢占用......
  • Java方法设计原则与实践:从Effective Java到团队案例
    作者:京东物流京东物流背景本文通过阅读《EffectiveJava》、《CleanCode》、《京东JAVA代码规范》等代码质量书籍,结合团队日常代码实践案例进行整理,抛砖引玉、分享一些在编写高质量代码方面的见解和经验。这些书籍提供了丰富的理论知识,而团队的实际案例则展示了这些原则在实际......
  • 科普|企业如何做好防泄密?10种方法让企业数据固若金汤
    在当今数字化信息的时代,企业的数据安全问题愈发严峻,防泄密已经成为企业在信息化建设中的重中之重。泄密可能导致商业机密的流失、企业声誉的受损,甚至严重的法律风险。为了帮助企业更好地保护数据安全,以下是十种有效的防泄密方法。1.建立严格的访问控制制度企业首先要通过合......
  • 批量下载文件的方法解析:为什么forEach不行,而for of却能成功?
    在日常开发中,我们经常需要处理批量下载文件的需求。本文将介绍一种批量下载文件的方法,并分析为什么在使用JavaScript进行批量操作时,forEach循环无法成功,而forof循环却能顺利完成。一、批量下载文件的方法在实现批量下载文件的功能时,我们可以采用以下步骤:获取需要下载的文......
  • sklearn当中fit_transform和transform方法的区别;数据标准化
    为什么要标准化?如何标准化?内容fit_transform和transform的区别这两个方法都用于对数据进行转换,但它们的适用场景和作用略有不同。1.fit_transform()作用:对数据执行拟合(fit)和转换(transform)操作。用法:用于训练数据,计算均值和标准差等统计量,并基于这些统计量对数据进行转......
  • 详细介绍磁珠的工作原理
    磁珠在电路中也是用得非常多的,下面是一些经常会看到的知识点,或者说是经验吧。①电感的单位是亨H,磁珠的单位是欧姆Ω②电感是储存能量的,磁珠是通过发热来消耗能量的③磁珠是用来吸收超高频信号,多用于信号回路及EMC对策不知道同志们想过没有,这些结论是怎么来的呢?要理解......
  • 无约束最优化方法基本结构-数值最优化方法-课程学习笔记-2
    无约束最优化方法的基本结构现在我们正式进入第二章的学习,在开始学习无约束最优化方法之前我们先学习几个知识.在以后的章节,如果没有特殊说明,我们总假定目标函数f(......
  • Cloudera Manager 前后端分离部署方法
    现状如果大数据团队使用ClouderaManager产品,那极有可能会遇到以下场景:有多套环境,需要维护各个环境的scmserver地址(http://10.x.x.x:7180)给每个scmserver申请域名,但域名的变更需要走流程方案采取前后端分离部署方案(niginx+域名),将cloudera-scm-server的前端静态文......