zoukankan      html  css  js  c++  java
  • 域名服务器简介

    域名为互联网提供了更加用户友好的引用服务器的方式,但是你有没有想过它是如何在幕后工作的吗?

    在阿帕网(ARPANET)开始时,只有少数几台主机可以保存在一个简单的主机名文本文件中。 多年来,随着互联网的爆炸性增长,需要一个系统来帮助组织无数的现有域名和地址。

    为什么是DNS?

    最初,域名系统(DNSDomain Name System的缩写)是为了支持电子邮件通信的发展而创建的,第一个电子邮件地址只包括 user@host。 随着时间的推移,用户的增加,RFC 805(https://tools.ietf.org/html/rfc805)被创建来将电子邮件地址扩展到 user@host.domain,其中 domain 应该是一个主机层次结构。

    DNS当前使用此模型在全球范围内支持互联网(Internet)。

    IP和主机名

    为了区分作为网络一部分的每个主机,将为每个主机分配一个主机名和一个唯一的数字地址。 主机名易于使用并为人类记住,而数字地址则由计算机所基于的内部二进制系统处理。

    IP地址是一组数字,用于分层标识网络中设备的接口。 这种分组层次结构的形成方式称为寻址,例如192. 168. 1. 34。

    这些组或段中的每一个都指示与它们进行通信所必需的路由机制。 DNS是双向执行翻译的系统,因此人类可以与主机进行通信,反之亦然。

    DNS解析

    域名系统有三个主要组成部分:

    1. 域名称空间(domain namespace),是域名树结构的规范。
    2. 名称服务器(name servers),是包含域树的结构信息的服务器程序。 这些服务器可以设置信息或将其缓存。
    3. 解析器(resolvers),是客户端程序,可响应用户请求从名称服务器提取信息。

    域名解析(或DNS解析)是将IP地址与域名相关联的过程。 从用户的角度来看,解析器通过程序的简单调用来访问域名系统,该解析器与名称服务器联系并获取包含在域名空间中的信息。

    域名和名称委托

    域名称空间是树结构。 整个数据库可以看作是一棵倒置的树,其根在顶部。 树上的每个节点和叶子都对应一个资源集。 根名称是空字符串(“”),通常用点(.)表示:

                                    · <- root
                                    |
                  +--------+------------------+-------+ <- Top Level Domains
                  |        |        |         |       |
                 .net     .edu     .com      .cc     .gov
                                    |
                                  xu.com
                                    |
                     +---------------------------+ <- Second Level Domains
                     |              |            |
              cluster.xu.com       www.xu.com   mail.xu.com <- subdomains
                     |
        node1.cluster.xu.com <-host
    

    域名标识一组资源,这些资源又与单独的资源注册表(RR)集成在一起。 RR的主要组成部分之一是标识存储该记录的资源,因此是信息的所有者或权威来源。

    公共域名是通过ICANN(https://www.icann.org/)授权的注册商进行注册的,ICANN是一个非营利性实体,负责对其进行管理。 在大多数情况下,这些注册人提供接管域名管理的服务。 此过程称为域名委托。

    互联网上最常用的DNS服务器,伯克利互联网名称域名(BIND是Berkeley Internet Name Domain的缩写),提供了许多查询和验证域名信息的工具。 这是系统管理员的主要任务之一,该系统管理员使用提供给Internet的服务来管理服务器。

    要安装BIND及其工具,请运行:

    yum install bind-utils -y # CentOS
    sudo apt-get install bind # Ubuntu
    brew install bind # macOS
    # Windows用户 请前往“http://ftp.isc.org/isc/bind9/9.11.0rc3/”下载

    要验证的最常见的RR类型为:

    1. A-与域名关联的主机地址。
    2. NS-域的权威名称服务器。
    3. SOA-标识授权区域的开始。
    4. CNAME-标识别名的规范名称。
    5. PTR-标识与域名/主机名关联的IP地址。
    6. TXT-用于将任意文本关联到域,一般指为某个主机名或域名设置的说明。最常见的是,TXT记录用于将SPF记录与域相关联,以提高电子邮件的可传递性,并防止垃圾邮件发送者在发送垃圾邮件时滥用域名。

    例如,如果我们要验证baidu.com域的记录类型A:

    ~ dig baidu.com
    
    ; <<>> DiG 9.10.6 <<>> baidu.com
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 53035
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
    
    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 512
    ;; QUESTION SECTION:
    ;baidu.com.			IN	A
    
    ;; ANSWER SECTION:
    baidu.com.		578	IN	A	220.181.38.148
    baidu.com.		578	IN	A	39.156.69.79
    
    ;; Query time: 45 msec
    ;; SERVER: 114.114.114.114#53(114.114.114.114)
    ;; WHEN: Tue Dec 03 14:24:25 CST 2019
    ;; MSG SIZE  rcvd: 70

    PTR(或反向)记录查询用于验证IP地址是否已分配给在Mail eXchanger(MX)记录查询中解析的同一主机:

    ~ dig baidu.com -t MX
    
    ; <<>> DiG 9.10.6 <<>> baidu.com -t MX
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31939
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 0
    
    ;; QUESTION SECTION:
    ;baidu.com.			IN	MX
    
    ;; ANSWER SECTION:
    baidu.com.		2328	IN	MX	20 jpmx.baidu.com.
    baidu.com.		2328	IN	MX	15 mx.n.shifen.com.
    baidu.com.		2328	IN	MX	20 mx1.baidu.com.
    baidu.com.		2328	IN	MX	20 mx50.baidu.com.
    baidu.com.		2328	IN	MX	10 mx.maillb.baidu.com.
    
    ;; Query time: 31 msec
    ;; SERVER: 114.114.114.114#53(114.114.114.114)
    ;; WHEN: Tue Dec 03 14:26:18 CST 2019
    ;; MSG SIZE  rcvd: 143

    当域管理自己的邮件服务时,此配置是必需的,因为否则,服务器可能会被列入黑名单(blacklisted)并且不受信任。

    另一个有用的故障排除过程是检查查询路由留下的跟踪:

    ~ dig baidu.com @114.114.114.114 +trace
    
    ; <<>> DiG 9.10.6 <<>> baidu.com @114.114.114.114 +trace
    ;; global options: +cmd
    .			1501	IN	NS	m.root-servers.net.
    .			1501	IN	NS	c.root-servers.net.
    .			1501	IN	NS	j.root-servers.net.
    .			1501	IN	NS	e.root-servers.net.
    .			1501	IN	NS	f.root-servers.net.
    .			1501	IN	NS	g.root-servers.net.
    .			1501	IN	NS	i.root-servers.net.
    .			1501	IN	NS	d.root-servers.net.
    .			1501	IN	NS	a.root-servers.net.
    .			1501	IN	NS	l.root-servers.net.
    .			1501	IN	NS	k.root-servers.net.
    .			1501	IN	NS	b.root-servers.net.
    .			1501	IN	NS	h.root-servers.net.
    ;; Received 239 bytes from 114.114.114.114#53(114.114.114.114) in 88 ms
    
    com.			172800	IN	NS	a.gtld-servers.net.
    com.			172800	IN	NS	b.gtld-servers.net.
    com.			172800	IN	NS	c.gtld-servers.net.
    com.			172800	IN	NS	d.gtld-servers.net.
    com.			172800	IN	NS	e.gtld-servers.net.
    com.			172800	IN	NS	f.gtld-servers.net.
    com.			172800	IN	NS	g.gtld-servers.net.
    com.			172800	IN	NS	h.gtld-servers.net.
    com.			172800	IN	NS	i.gtld-servers.net.
    com.			172800	IN	NS	j.gtld-servers.net.
    com.			172800	IN	NS	k.gtld-servers.net.
    com.			172800	IN	NS	l.gtld-servers.net.
    com.			172800	IN	NS	m.gtld-servers.net.
    com.			86400	IN	DS	30909 8 2 E2D3C916F6DEEAC73294E8268FB5885044A833FC5459588F4A9184CF C41A5766
    com.			86400	IN	RRSIG	DS 8 1 86400 20191216050000 20191203040000 22545 . MVqSzDbsmBO7A5ZOZM+nsI6B/afLgrCqOMNCyfyPl5W8nBnv0VhpB1qr By6um9s9OgjJ/XRLtWfLYtIr5UPINMEbxY3OMyvdPCI4Tqe/kuG0hsCr iJM+X26kh+QTMQ4mpL1cj04SKek8f394KIAO0UeSeYvM/JQ9N4a0WdrT sHpDOUlssYvhnxR8LP1ZZGiCZz4ZRTpcdFJoRGBFyB4K3mSZDSpmoE7B fS3jz+ucDvZvXx39SO7kjvpQwhcaZRJBXauhY3AfCBH3PxZtRqZDzZrE BcOSXGu5+gXHA8YHxZ69ktZVRbGvOSEwGRr7vLYveeBIhitzf/V4Zn5z OHgUEw==
    ;; Received 1169 bytes from 193.0.14.129#53(k.root-servers.net) in 73 ms
    
    baidu.com.		172800	IN	NS	ns2.baidu.com.
    baidu.com.		172800	IN	NS	ns3.baidu.com.
    baidu.com.		172800	IN	NS	ns4.baidu.com.
    baidu.com.		172800	IN	NS	ns1.baidu.com.
    baidu.com.		172800	IN	NS	ns7.baidu.com.
    CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 86400 IN NSEC3 1 1 0 - CK0Q1GIN43N1ARRC9OSM6QPQR81H5M9A  NS SOA RRSIG DNSKEY NSEC3PARAM
    CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 86400 IN RRSIG NSEC3 8 2 86400 20191209054950 20191202043950 12163 com. S9i2P8sKc5s+dCJwh/UR7HlyuiRL5Iz6cCd3oPPV71iyHoYlqq7Q8qFO OVZj5tJP0BTXw9po8arg1iBmd5yJ7mpHCaVCKmY+dssg3fyfPlSl/lXd a4YL4xoHWNCa0Ow5Ywds7/AqtqDfhN0dnP6i+eaFD9rgrmfO6CVoto6B UYrEQbB2Es6vyUvE/ITtkZUI8wfOQjmLXp3jnQ7PUcWSdw==
    HPVV2B5N85O7HJJRB7690IB5UVF9O9UA.com. 86400 IN NSEC3 1 1 0 - HPVVN3Q5E5GOQP2QFE2LEM4SVB9C0SJ6  NS DS RRSIG
    HPVV2B5N85O7HJJRB7690IB5UVF9O9UA.com. 86400 IN RRSIG NSEC3 8 2 86400 20191207055135 20191130044135 12163 com. IaSBRLbvBZR4FD6viNRV3ApdH9d64mA+QWTq5EFRzns1nlizGwD3nYKE p3Or+JtNAhZxILcU5g4jtfY7xRnxACI42fruWP+Z4W7XPTHY0DU94bwG sZE50s8Po/0aAXbKsRhLT4cTWUGlrPB+T9MWuHuxIX9dD+Dwm6+jTuYL 0jHPrL3OB8WsHzOsV8kEbGejPQITC2fRi9MdOIko5ELt0Q==
    ;; Received 757 bytes from 192.43.172.30#53(i.gtld-servers.net) in 245 ms
    
    baidu.com.		600	IN	A	39.156.69.79
    baidu.com.		600	IN	A	220.181.38.148
    baidu.com.		86400	IN	NS	ns7.baidu.com.
    baidu.com.		86400	IN	NS	ns3.baidu.com.
    baidu.com.		86400	IN	NS	ns4.baidu.com.
    baidu.com.		86400	IN	NS	ns2.baidu.com.
    baidu.com.		86400	IN	NS	dns.baidu.com.
    ;; Received 240 bytes from 112.80.248.64#53(ns3.baidu.com) in 60 ms

    在此查询中,我们可以看到它始于根DNS服务器,后者移至顶级域(TLD),直到找到请求的域名注册并返回与之标识的主机为止。

    主区域和从属区域

    从前面的示例中,我们可以注意到域名已分配给多个权威主机。 此设置类似于群集,以提供解析服务的可用性。

    域名记录信息包含在区域文件中,可以将其配置为读/写或只读。 具有读/写的区域文件称为“主区域”。 一次在DNS服务器上只能有一个“主区域”文件。 必须在“主区域”中添加或修改所有DNS记录。

    从属区域是从DNS主设备传输的主区域的只读副本,并且每隔一定时间进行同步,以保留域名记录中信息的完整性。

    区域同步是一个可以由异步密钥保护的过程,用于加密通信和限制主机。

    动态DNS

    当将可变IP地址分配给设备时,需要DNS服务器的变体才能分配域主机名。 动态域名系统(DDNS)监视设备IP地址的更改,并在修改后更新注册表。

    当您在局域网上有需要通过Internet访问的设备时,通常会使用DDNS。 Web上有多个提供此类服务的提供商,例如:FreeDNS,Securepoint DynDNS,Dynu,DynDNS服务,DuckDNS或No-IP,其中一些提供完全免费的计划或付费服务。

    我们先前安装的工具包包含实用程序(nsupdate),用于将RFC 2136中定义的DDNS更新请求提交给名称服务器。

    在以后的文章中,我将向您展示一种简单的方法来设置我们自己的DNS和DDNS服务器。

    原文:https://xushanxiang.com/2019/12/dns-domain-name-servers.html

  • 相关阅读:
    android intent 传递list或者对象
    MyEclipse快捷键大全
    keystore 介绍
    oracle存储过程学习---包的概念
    判断变量类型
    Android自定义控件之TextView
    Myeclipse SVN 修改用户名和密码
    关于Inflater
    windowsxp系统下SVN添加新用户
    【原创】python:open函数的使用方法
  • 原文地址:https://www.cnblogs.com/xusx2014/p/11976897.html
Copyright © 2011-2022 走看看