【RL-TCPnet网络教程】第27章 DNS域名系统基础知识

第27章      DNS域名系统基础知识

本章节为大家讲解DNS(Domain Name System,域名系统),通过前面章节对TCP和UDP的学习,需要大家对DNS也有个基础的认识。

(本章的知识点主要整理自网络)

27.1  初学者重要提示

27.2  DNS基础知识参考资料

27.3  DNS基础知识点

27.4  DNS函数

27.5  总结

27.1  初学者重要提示

  1. 通过前面几个章节对TCP和UDP的学习,需要初学者对DNS的基础知识点也有个了解。
  2. 域名解析是把域名指向网站空间IP,让人们通过注册的域名可以方便地访问到网站的一种服务。IP地址是网络上标识站点的数字地址,为了方便记忆,采用域名来代替IP地址标识站点地址。域名解析就是域名到IP地址的转换过程。域名的解析工作由DNS服务器完成。

27.2  DNS基础知识参考资料

为了对TCP和UDP有更全面的认识,需要对DNS的一些基础知识有个了解。大家可以从以下地址获得DNS协议基础知识:

对于初学者来说,学习上面五个参考资料就够了。如果大家有网络方面的书籍,比如《TCP/IP详解》,也可以直接看书籍。

27.3  DNS基础知识点

(这里的知识点整理自上面的参考资料地址)

教程这里也对DNS的基础知识做个介绍,方便大家先有个大概的认识。

27.3.1 DNS简要说明

DNS(Domain Name System,域名系统)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS使用TCP和UDP端口53。RFC文档中RFC 2181对DNS有规范说明,RFC 2136对DNS的动态更新进行说明,RFC 2308对DNS查询的反向缓存进行说明。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。

开始时,域名的字符仅限于ASCII字符的一个子集。2008年,ICANN通过一项决议,允许使用其它语言作为互联网顶级域名的字符。使用基于Punycode码的IDNA系统,可以将Unicode字符串映射为有效的DNS字符集。因此,诸如“x.中国”、“x.中国台湾”等这样的域名可以在地址栏直接输入,而不需要安装插件。但是,由于英语的广泛使用,使用其他语言字符作为域名会产生多种问题,例如难以输入、难以在国际推广等。

27.3.2 DNS功能

每个IP地址都可以有一个主机名,主机名由一个或多个字符串组成,字符串之间用小数点隔开。有了主机名,就不需要死记硬背每台IP设备的IP地址,只要记住主机名即可。这就是DNS协议所要完成的功能。

主机名到IP地址的映射有两种方式:

  • 静态映射

每台设备上都配置主机到IP地址的映射,各设备独立维护自己的映射表,而且只供本设备使用。

  • 动态映射

建立一套域名解析系统(DNS),只在专门的DNS服务器上配置主机到IP地址的映射,网络上需要使用主机名通信的设备,首先需要到DNS服务器查询主机所对应的IP地址。

通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。在解析域名时,可以首先采用静态域名解析的方法,如果静态域名解析不成功,再采用动态域名解析的方法。可以将一些常用的域名放入静态域名解析表中,这样可以大大提高域名解析效率。

27.3.3 域名解析

在域名注册商那里注册了域名之后如何才能看到自己的网站内容,用一个专业术语就叫域名解析。

域名是为了方便记忆而专门建立的一套地址转换系统。要访问一台互联网上的服务器,最终还必须通过IP地址来实现,域名解析就是将域名重新转换为IP地址的过程。一个域名对应一个IP地址,一个IP地址可以对应多个域名,所以多个域名可以同时被解析到一个IP地址。域名解析需要由专门的域名解析服务器(DNS)来完成。

人们习惯记忆域名,但机器间互相只认IP地址,域名与IP地址之间是对应的,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,整个过程是自动进行的。域名解析协议(DNS)用来把便于人们记忆的主机域名和电子邮件地址映射为计算机易于识别的IP地址。DNS是一种C/S的结构(Client/Server),客户机就是用户用于查找一个名字对应的地址,而服务器通常用于为别人提供查询服务。

27.3.4 域名结构

通常 Internet 主机域名的一般结构为:主机名.三级域名.二级域名.顶级域名。Internet 的顶级域名由 Internet网络协会中负责网络地址分配的委员会进行登记和管理,它还为 Internet的每一台主机分配唯一的 IP 地址。全世界现有三个大的网络信息中心:位于美国的 Inter-NIC,负责美国及其他地区; 位于荷兰的RIPE-NIC,负责欧洲地区;位于日本的APNIC ,负责亚太地区。

27.3.5 域名解析器

域名解析器,是把域名转换成主机所在IP地址的中介。通常上网的时候,敲入一个域名地址,电脑会首先向DNS服务器搜索相对应的IP地址,服务器找到对应值之后,会把IP地址返回给你的浏览器,这时浏览器根据这个IP地址发出浏览请求,这样才完成了域名寻址的过程。操作系统会把你常用的域名IP地址对应值保存起来,当你浏览经常光顾的网站时,就可以直接从系统的DNS缓存里提取对应的IP地址,加快连线网站的速度。

27.3.6 域名解析流程

域名解析的流程是:域名->DNS(域名解析服务器)->网站空间。

Internet上的计算机是通过IP地址来定位的,给出一个IP地址,就可以找到Internet上的某台主机。而因为IP地址难于记忆,又发明了域名来代替IP地址。但通过域名并不能直接找到要访问的主机,中间要加一个从域名查找IP地址的过程,这个过程就是域名解析。域名注册后,注册商为域名提供免费的静态解析服务。一般的域名注册商不提供动态解析服务,如果需要用动态解析服务,需要向动态域名服务商支付域名动态解析服务费。

解析过程举个例子,比如,一个域名为:abc.com,如果要访问网站,就要进行解析,首先在域名注册商那里通过专门的DNS服务器解析到一个WEB服务器的一个固定IP上,比如:211.214.1.XXX,然后,通过WEB服务器来接收这个域名,把abc.com这个域名映射到这台服务器上。那么,输入abc.com这个域名就可以实现访问网站内容了,即实现了域名解析的全过程。

27.3.7 DNS记录类型

DNS系统中,常见的资源记录类型有:

  • 主机记录(A记录)

RFC 1035定义,A记录是用于名称解析的重要记录,它将特定的主机名映射到对应主机的IP地址上。

  • 别名记录(CNAME记录)

RFC 1035定义,CNAME记录用于将某个别名指向到某个A记录上,这样就不需要再为某个新名字另外创建一条新的A记录。

  • IPv6主机记录(AAAA记录)

RFC 3596定义,与A记录对应,用于将特定的主机名映射到一个主机的IPv6地址。

  • 服务位置记录(SRV记录):

RFC 2782定义,用于定义提供特定服务的服务器的位置,如主机(hostname),端口(port number)等。

  • NAPTR记录

RFC 3403定义,它提供了正则表达式方式去映射一个域名。NAPTR记录非常著名的一个应用是用于ENUM查询。

27.4 总结

本章节就为大家讲解这么多,更多DNS的相关知识需要大家查阅相关书籍进行学习,或者网上搜索相关资料进行学习。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏FreeBuf

如何使用Cron Jobs实现Linux提权

今天给各位渗透测试同行们提供一种Linux提权方法,在这篇文章中,我们将介绍如何使用Cron Jobs来实现Linux下的权限提升,并获取远程主机的root访问...

2240
来自专栏运维小白

10.11 Linux网络相关

linux网络相关 ifconfig查看网卡ip(yum install net-tools) ifup ens33/ifdown ens33 设定虚拟网卡en...

3046
来自专栏pangguoming

ant安装、环境变量配置及验证

一、安装ant 到官方主页http://ant.apache.org下载新版(目前为Ant1.8.1)的ant,得到的是一个apache-ant-1.8.1-...

3967
来自专栏前端杂货铺

socket.io搭配pm2(cluster)集群解决方案

socket.io与cluster 在线上系统中,需要使用node的多进程模型,我们可以自己实现简易的基于cluster模式的socket分发模型,也可以使用比...

9397
来自专栏向治洪

gulp+webpack工具整合简介

webpack简介 Webpack 是一个模块打包器。它将根据模块的依赖关系进行静态分析,然后将这些模块按照指定的规则生成对应的静态资源。 ? webpa...

4385
来自专栏PHP技术大全

使用Frp内网穿透快速搭建Web应用实践

笔者最近折腾docker服务比较多,这几天想把在内网中的服务搬到公网当中,但docker对内存要求较高,而云服务高内存的服务器又比较贵,家里虽然有一台旧笔记本内...

1.5K5
来自专栏云计算教程系列

如何在Ubuntu 16.04上使用Icinga监视主机和服务

Icinga是一个开源监控系统,用于监控网络主机和服务的运行状况。在本教程中,我们将使用Icinga设置两种不同类型的监视配置。第一种是基于对主机外部服务的简单...

1551
来自专栏java一日一条

MySQL两种不完全恢复的方法

MySQL 5.6.14 生产环境凌晨3点的备份,不完全恢复到中午12点. (xtrabackup_binlog_pos_innodb的内容是mysql-bin...

1171
来自专栏Java帮帮-微信公众号-技术文章全总结

单点登录原理及CAS实现【面试+工作】

单点登录原理及实现sso【面试+工作】 WEB的登录那些事 说道账户登录和注册,其实我们每天都在亲身感受着,像微博、知乎还有简书等等。我们总是需要定期的去重新登...

5179
来自专栏Young Dreamer

webpack的Hot Module Replacement运行机制

使用webpack打包,难免会使用Hot Module Replacement功能,该功能能够实现修改、添加或删除前端页面中的模块代码,而且是在页面不刷新的前提...

3135

扫码关注云+社区

领取腾讯云代金券