type
status
date
slug
summary
tags
category
icon
password
dns:domain name system 域名解析系统
DNS的必要性
- IP地址标识主机、路由器,具有寻址的功能,但IP地址不好记忆,于是存在将一个字符串与IP地址相对应的必要性
- 人类用户提供要访问机器的字符串名称,而DNS负责将其转换为二进制的网络地址
DNS系统需解决的问题
- 问题1:如何命名设备
- 用有意义的字符串:便于记忆和使用
- 解决重名问题:层次化命名
- 问题2:如何完成名字到IP地址的转换
- 分布式数据库和响应名字查询
DNS的总体思路和目标
DNS的主要思路
- 分层的、基于域的命名机制
- 若干分布式的数据库完成名字到IP地址的转换
- 很多个数据库,并且维护着一个树状的关系
- 运行在UDP之上端口号为53的应用服务
- DNS是互联网的核心功能,但以应用层协议实现
- 在端系统(网络边缘)实现,而不是在网络核心实现
DNS的主要目的
- 实现主机名-IP地址的转换 name/IP translate
- 其他目的
- 主机别名到规范名字的转换:Host Aliasing
- 别名:便于用户访问
- 规范名字:有很多web服务器,为了便于管理,它们都需要有一个规范的名字,包括编号、地址等信息
- 邮件服务器别名到邮件服务器正规名字的转换:Mail Server Aliasing
- 负载均衡:Load Distribution
- 用户需要服务,需要决定是哪个具体的服务器来提供服务
IP和域名的关系
- IP和域名是一对多的关系,一个IP地址可以对应多个域名
- IP:32位二进制数,通常被分为4个8位二进制数(4字节)
主机名
- 不唯一
- PC’s computer name
什么叫有很多web服务器?
- the physical location or server refers to the actual location where the website's files and data are stored.
- IP地址决定了接收请求的是哪一个服务器
IP address determines the physical location or server where the website's files are stored and served to users.
- CDN出现:一个网站的数据可以存储在多个服务器中
With the advent of content delivery networks (CDNs), websites can store their files across multiple servers in different locations worldwide.
- The domain name serves as the entry point to a website, while the physical location or server houses the website's files and data. By understanding this relationship, website owners can ensure that their domain name is properly linked to the correct server, allowing for seamless access and optimal user experience.
问题1:DNS名字空间(The DNS Name Space)
DNS域名结构
- 一个层面命名设备会有很多重名
- DNS采用层次树状结构的命名方法
- Internet根被划分为几百个顶级域(top level domains)
- 通用的(generic)
- 国家的
.com(一般是国际化公司) .edu .gov…
.cn .us .jp…
- 每个域下面可以划分为若干子域
- 二级域
- 三级域
- …
- 树叶是主机
对一个设备做域名的标识:
从叶子往上走,每走一层用doc(.)来标识,直到到达树根
对一个域做域名的标识
从树枝往上走,每走一层用doc(.)来标识,直到到达树根
DNS:根名字服务器
- 共有13个根名字服务器
- 根顶级域一级域…
域名的管理
- 一个域管理其下的子域
- .jp被划分为ac.jp co.jp
- .cn被划分为edu.cn com.cn
- 域与物理网络无关
- 域遵从组织界限,而不是物理网络
- 一个域的主机可以不在一个网络
- 一个网络的主机不一定在一个域
- 域的划分是逻辑的,而不是物理的
问题2:解析问题-名字服务器(Name Server)
一个名字服务器的问题
- 可靠性问题:单点故障
由一个机器来维护所有的域名:若机器坏了怎怎么办?
- 扩展性问题:通信容量
- 维护问题:远距离的集中式数据库
解决方法:distributed, hierarchical database(分布式层次数据库)
区域(Zone)
- 区域的划分由区域管理者自己决定
- 将DNS名字空间划分为互不相交的区域,每个区域都是树的一部分
- 名字服务器:
- 每个区域都有一个名字服务器:维护着它所管辖区域的权威信息(authoritative record)
- 名字服务器允许被放置在区域之外,以保障可靠性
权威DNS服务器:维护这个区域内部所有名字到IP地址的对应关系
根DNS服务器
- 根名字服务器提供TLD服务器的IP地址
TLD服务器
- 顶级域(Top-level domain)服务器:负责顶级域名和所有国家级顶级域名
上层的域需要一个指针,来指向下一层的子域的名字服务器
Authoritative DNS servers
- 在因特网上具有公共可访问主机的每个组织机构必须提供公共可访问的DNS记录
Local DNS Server
- 每个ISP都有一个local DNS server,也叫default name server
- host(主机)与ISP连接时,ISP提供一台主机的IP地址,该主机具有一台或多台其本地DNS服务器的IP地址
- 当host发送DNS请求时,这个请求被发给local DNS server,起一个代理作用,local DNS server将该请求转发到DNS服务器层次结构中
主机A查询主机B的IP地址的大致流程
递归查询
- 名字解析负担都放在当前联络的名字服务器上
- 问题:根服务器的负担太重
要查询的东西列表长度太长
- 解决:迭代查询
迭代查询
- 根及各级域名服务器返回的不是查询结果,而是下一个名字服务器的地址
- 最后由权威名字服务器来给出解析结果
- 当前联络的服务器给出可以联系的服务器的名字
“我不知道这个名字,但是我可以向这个服务器请求”
两种查询方法示意图
先递归再迭代查询:
A(requesting host)A’s local DNS serverroot DNS serverA’s local DNS serverTLD serverA’s local DNS server权威服务器A
递归查询
DNS缓存(caching)
- DNS缓存的作用
DNS extensively exploits DNS caching in order to improve the delay performance and to reduce the number of DNS messages ricocheting around the Internet.
- DNS缓存的原理
- 当DNS server收到一个DNS reply之后,他可以把这种主机-IP地址的映射存在它的本地内存里面
- 如果一个hostname/IP address pair被缓存在了DNS服务器中,另一个对相同主机名的查询到达该DNS服务器时,该DNS服务器就能够提供所要求的IP地址,即使它不是该主机名的权威服务器
- 由于主机名-IP地址的映射不是永久的,DNS服务器在一段时间之后将丢弃缓存的信息
DNS记录和报文
资源记录(resource records)
- RR提供了主机名到IP地址之间的映射
- 是一个包含了下列字段的4元组
- TTL:该记录的生存时间,决定了资源记录应当从缓存中删除的时间
[Name, Value, Type, TTL]
- Name和Value的意义取决于Type
- type=A 主机记录
- type=NS 域名服务器记录
- type=CNAME 别名记录
- type=MX 邮件交换记录
name为主机,value为IP地址
name为域名,value为一个权威DNS服务器的主机名,这个权威DNS服务器知道如何获得这个域中的主机的IP地址
例如(foo.com, dns.foo.com, NS)
name为规范名字的别名,value为规范名字
value为name对应的邮件服务器的名字
通常:
- 如果一台DNS服务器是某特定主机名的权威DNS服务器,则该DNS服务器会有一条包含用于该主机名的类型A记录(即使不是权威DNS服务器,也有可能在缓存里有一条A记录)
- 如果服务器不是用于某主机名的权威服务器,那么该服务器将包含一条NS记录,该记录对应于包含主机名的域;它还将包含一条类型A记录,记录提供了再NS记录中的value里面的DNS服务器的IP地址
DNS报文
- Author:orangec
- URL:orange’s blog | welcome to my blog (clovy.top)/16e50ad959f14e86aa3d31d1722e7c7e
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!
Relate Posts