DNS域名原理介绍

本文涉及的产品
.cn 域名,1个 12个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
简介: DNS域名原理介绍

.DNS 介绍

1.1什么是域名?

域名(Domain Name),简称域名、网域,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位。具有独一无二,不可重复的特性。

1.2什么是 DNS?

域名系统(Domain Name System,缩写:DNS)是互联网的一项服务。域名解析是把域名指向网站空间IP,让人们通过注册的域名可以方便地访问到网站的一种服务。IP地址是网络上标识站点的数字地址,为了方便记忆,采用域名来代替IP地址标识站点地址。域名解析就是域名到IP地址的转换过程。

域名的解析工作由DNS服务器完成。可以理解为DNS就是翻译官。

正向解析:域名 --> IP 地址

反向解析:IP 地址 --> 域名

1.3域名的组成和分类

  • . 根域,可省略不写
  • com 顶级域,由ICANN组织指定和管理
  • 国家地区域名:cn(中国)、hk(香港)、sg(新加坡)等
  • 通用顶级域名:com(商业机构)、org(非营利组织)、edu(教育机构)等
  • 新通用顶级域名:red(红色、热情)、top(顶级、高端)等
  • baidu 二级域(注册域),可由个人或组织申请注册
  • www 三级域(子域),服务器网站名代表
  • 主机名:s1.www.baidu.com.中的s1就是主机名,一般用来表示具体某一台主机

拓展:com.cn属于“二级域名”,是cn顶级域的子域

2.域名解析过程

如客户机发起查询请求

www.kernel.org

1.客户机首先查看查找本地hosts文件,如果有则返回,否则进行下一步

2.客户机查看本地缓存,是否存在本条目的缓存,如果有则直接返回,否则进行下一步。

3.将请求转发给指向的 DNS 服务器。

4.查看域名是否本地解析,是则本地解析返回,否则进行下一步。

5.本地DNS服务器首先在缓存中查找,有则返回,无则进行下一步。

6.向全球13个根域服务器发起DNS请求,根域返回org域的地址列表。

7.使用某一个 org 域的 IP 地址,发起 DNS 请求,org 域返回 kernel 域服务器地址列表。

8.用某一个kernel域IP地址,发起DNS请求,kernel域返回www.kernel.org主机的IP地址,本地 DNS 服务收到后,返回给客户机,并在本地 DNS 服务器保存一份。


3.DNS 软件信息

软件名称:bind

服务名称:named

软件端口:

UDP 53 数据通信(域名解析)

TCP 53 数据同步(主从同步)

配置文件:


主配置文件:/etc/named.conf(服务器运行参数)


options {

listen-on port 53 { 127.0.0.1; };

listen-on-v6 port 53 { ::1; };

#设置服务器监听网卡(可以写具体某一个IP,也可以写成any)

directory "/var/named";

dump-file "/var/named/data/cache_dump.db";

statistics-file "/var/named/data/named_stats.txt";

memstatistics-file "/var/named/data/named_mem_stats.txt";

recursing-file "/var/named/data/named.recursing";

secroots-file "/var/named/data/named.secroots";

#数据文件位置

allow-query { localhost; };

#设置可以访问服务器的客户端IP(可用any)

区域配置文件:/etc/named.rfc1912.zones(服务器解析的区域配置,正反向区域定义信息)


zone "localhost.localdomain" IN {

#正向区域配置文件标签,修改为要解析的域

type master;

#DNS服务器类型(master/slave)

file "named.localhost";

#正向数据配置文件名称(默认保存在/var/name/下)

allow-update { none; };

#允许数据更新的列表(填写IP地址)

};

zone "1.0.0.127.in-addr.arpa" IN {

# 反向区域配置文件标签,仅修改IP位置,并且将IP反写例如:0.168.192.in-addr.arpa

type master;

file "named.loopback";

allow-update { none; };

};

数据配置文件:/var/named/xx.xx(主机名和IP地址的对应解析关系,及主从同步信息)


$TTL 1D #域名有效解析生存周期(一般指缓存时间)

@ IN SOA @ rname.invalid. (

0 ; serial

1D ; refresh

1H ; retry

1W ; expire

3H ) ; minimum

NS @ #设置DNS服务器的域名

A 127.0.0.1 #IPv4的域名IP解析记录

AAAA ::1 #IPv6的 域名IP解析记录

~

# @: 域名有效解析生存周期(一般指缓存时间)

# SOA:SOA标记(起始授权机构的资源记录,描述了域名的管理品 电子邮件地址 和一此时间参数

#serial 配置文件修改版本(如:20190826)

#refresh 更新频率(从向主的查询周期)

# retry 更新失败的重试时间周期

# expire 无法更新时的失效周期

#minimum 缓存服务器无法更新时的失效时间

记录类型:

A:

地址记录,用来指定域名的IPv4地址的记录

CNAME:

将域名指向另一个域名,再由另一个域名提供ip地址,就需要添加CNAME记录

TXT:

可填写任何东西,长度限制255.绝大多数的TXT记录是用来做SPF的(反垃圾邮件)

NS:

域名服务器记录,如果需要把子域名交给其他DNS服务商解析,就需要添加NS记录。

AAAA:

地址记录,用来指定域名的IPv6地址的记录

MX:

邮件交换记录,如果需要设置邮箱,让邮箱能收到邮件,就需要添加MX记录。

DNS 实验搭建

4.1 DNS服务搭建

先关闭服务器和客户机上的防火墙和SELinux

1.软件安装

yum install bind -y

2.配置主配置文件(/etc/named.conf)

options {

listen-on port 53 { any; }; #监听网卡改为any

listen-on-v6 port 53 { any; };

directory "/var/named";

dump-file "/var/named/data/cache_dump.db";

statistics-file "/var/named/data/named_stats.txt";

memstatistics-file "/var/named/data/named_mem_stats.txt";

recursing-file "/var/named/data/named.recursing";

secroots-file "/var/named/data/named.secroots";

allow-query { any; }; #设置可以访问服务器的客户端为any

3.配置区域文件(/etc/named.rfc1912.zones)

注:先对区域文件进行备份,删除多余的模板,只留下一个正向和一个反向(反向修改时,网络位的反写格式,如192.168.100.20 -> 100.168.192.)


zone "ajaj.com" IN {

type master;

file "ajaj.localhost"; #自定义正向解析文件名

allow-update { none; };

};




zone "100.168.192.in-addr.arpa" IN {

type master;

file "ajaj.loopback"; # 自定义反向解析文件名

allow-update { none; };

};

4.配置数据文件/var/named/

A. 先复制生成正向解析文件和反向解析文件


cp -a named.localhost ajaj.localhost

cp -a named.loopback ajaj.loopback


B. 编辑正向解析文件(注意域名结尾的“.”)


vim ajaj.localhost

$TTL 1D

@ IN SOA ajaj.com. rname.invalid. (

0 ; serial

1D ; refresh

1H ; retry

1W ; expire

3H ) ; minimum

NS dns.ajaj.com.

dns A 192.168.100.20

www A 192.168.100.21


C.编辑反向解析文件(注意域名结尾的".")


vim ajaj.loopback

$TTL 1D

@ IN SOA ajaj.com. rname.invalid. (

0 ; serial

1D ; refresh

1H ; retry

1W ; expire

3H ) ; minimum

NS dns.ajaj.com.

20 PTR dns.ajaj.com.

21 PTR www.ajaj.com.

5.重启DNS服务

systemctl restart named

6.客户端测试

在网卡配置文件中添加 DNS 服务器的地址,然后用 nslookup 测试。

[root@localhost ~]# nslookup www.ajaj.com

Server: 192.168.100.20

Address: 192.168.100.20#53


Name: www.ajaj.com

Address: 192.168.100.21


4.2 DNS主从

实验目的:

减轻主服务器的压力

先关闭服务器和客户机上的防火墙和SELinux

实验准备:

一台主服务器、一台从服务器、一台测试机

搭建过程:

1.搭建主服务器步骤

安装 bind 软件

yum install bind -y

主配置文件的修改

options {

listen-on port 53 { any; };

listen-on-v6 port 53 { any; };

directory "/var/named";

dump-file "/var/named/data/cache_dump.db";

statistics-file "/var/named/data/named_stats.txt";

memstatistics-file "/var/named/data/named_mem_stats.txt";

recursing-file "/var/named/data/named.recursing";

secroots-file "/var/named/data/named.secroots";

allow-query { any; };


区域配置文件的修改


zone "ajaj.com" IN {

type master;

file "ajaj.localhost";

allow-update { 192.168.100.21; };

};




zone "100.168.192.in-addr.arpa" IN {

type master;

file "ajaj.loopback";

allow-update { 192.168.100.21; };

};


主 DNS 的区域配置文件中 allow-updata 参数添加从服务器 IP 地址。


配置数据文件


cp -a named.localhost ajaj.localhost

cp -a named.loopback ajaj.loopback


正向数据文件


vim ajaj.localhost

$TTL 1D

@ IN SOA ajaj.com. rname.invalid. (

0 ; serial

1D ; refresh

1H ; retry

1W ; expire

3H ) ; minimum

NS dns.ajaj.com.

dns A 192.168.100.20

www A 192.168.100.23


反向数据文件


vim ajaj.loopback

$TTL 1D

@ IN SOA ajaj.com. rname.invalid. (

0 ; serial

1D ; refresh

1H ; retry

1W ; expire

3H ) ; minimum

NS dns.ajaj.com.

20 PTR dns.ajaj.com.

23 PTR www.ajaj.com.


启动 named 服务


systemctl start named

4.搭建从服务器步骤:

安装 bind 软件

yum install bind -y

修改主配置文件

vim /etc/named.conf


options {

listen-on port 53 { any; };

listen-on-v6 port 53 { any; };

directory "/var/named";

dump-file "/var/named/data/cache_dump.db";

statistics-file "/var/named/data/named_stats.txt";

memstatistics-file "/var/named/data/named_mem_stats.txt";

recursing-file "/var/named/data/named.recursing";

secroots-file "/var/named/data/named.secroots";

allow-query { any; };


配置区域文件


注意:从配置文件的类型需要修改为 slave,并且需要填写主服务器的地址

zone "ajaj.com" IN {

type slave;

masters { 192.168.100.20; };

file "slaves/ajaj.localhost";

};




zone "100.168.192.in-addr.arpa" IN {

type slave;

masters { 192.168.100.20; };

file "slaves/ajaj.loopback";

};

文件保存位置修改为 file“slaves/atguigu.localhost”;


重启服务


systemctl start named


在测试机上填写从服务器的IP,并使用nslookup测试


nslookup www.ajaj.com

Server: 192.168.100.21

Address: 192.168.100.21#53


Name: www.ajaj.com

Address: 192.168.100.23

4.3DNS缓存服务器

先关闭服务器和客户机上的防火墙和SELinux

实验作用:

加快解析速度,提高工作效率

实验软件:

dnsmasq

配置文件:

/etc/dnsmasq.conf

domain=域名

#需要解析的域名

server=ip

#主 DNS 服务器 IP

cache-size=15000

#声明缓存条数

重启服务:

systemctl restart dnsmasq

测试效果:

在测试机上填写DNS 缓存服务器服务器的 ip 地址

相关文章
|
29天前
|
存储 缓存 算法
HashMap深度解析:从原理到实战
HashMap,作为Java集合框架中的一个核心组件,以其高效的键值对存储和检索机制,在软件开发中扮演着举足轻重的角色。作为一名资深的AI工程师,深入理解HashMap的原理、历史、业务场景以及实战应用,对于提升数据处理和算法实现的效率至关重要。本文将通过手绘结构图、流程图,结合Java代码示例,全方位解析HashMap,帮助读者从理论到实践全面掌握这一关键技术。
80 13
|
1月前
|
域名解析 缓存 网络协议
减少域名dns解析时间
域名解析中的TTL值设置多少合适
84 5
|
2月前
|
运维 持续交付 云计算
深入解析云计算中的微服务架构:原理、优势与实践
深入解析云计算中的微服务架构:原理、优势与实践
87 1
|
4天前
|
机器学习/深度学习 自然语言处理 搜索推荐
自注意力机制全解析:从原理到计算细节,一文尽览!
自注意力机制(Self-Attention)最早可追溯至20世纪70年代的神经网络研究,但直到2017年Google Brain团队提出Transformer架构后才广泛应用于深度学习。它通过计算序列内部元素间的相关性,捕捉复杂依赖关系,并支持并行化训练,显著提升了处理长文本和序列数据的能力。相比传统的RNN、LSTM和GRU,自注意力机制在自然语言处理(NLP)、计算机视觉、语音识别及推荐系统等领域展现出卓越性能。其核心步骤包括生成查询(Q)、键(K)和值(V)向量,计算缩放点积注意力得分,应用Softmax归一化,以及加权求和生成输出。自注意力机制提高了模型的表达能力,带来了更精准的服务。
|
14天前
|
存储 物联网 大数据
探索阿里云 Flink 物化表:原理、优势与应用场景全解析
阿里云Flink的物化表是流批一体化平台中的关键特性,支持低延迟实时更新、灵活查询性能、无缝流批处理和高容错性。它广泛应用于电商、物联网和金融等领域,助力企业高效处理实时数据,提升业务决策能力。实践案例表明,物化表显著提高了交易欺诈损失率的控制和信贷审批效率,推动企业在数字化转型中取得竞争优势。
68 14
|
23天前
|
网络协议 安全 网络安全
探索网络模型与协议:从OSI到HTTPs的原理解析
OSI七层网络模型和TCP/IP四层模型是理解和设计计算机网络的框架。OSI模型包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,而TCP/IP模型则简化为链路层、网络层、传输层和 HTTPS协议基于HTTP并通过TLS/SSL加密数据,确保安全传输。其连接过程涉及TCP三次握手、SSL证书验证、对称密钥交换等步骤,以保障通信的安全性和完整性。数字信封技术使用非对称加密和数字证书确保数据的机密性和身份认证。 浏览器通过Https访问网站的过程包括输入网址、DNS解析、建立TCP连接、发送HTTPS请求、接收响应、验证证书和解析网页内容等步骤,确保用户与服务器之间的安全通信。
86 1
|
28天前
|
域名解析 弹性计算 安全
阿里云服务器租用、注册域名、备案及域名解析完整流程参考(图文教程)
对于很多初次建站的用户来说,选购云服务器和注册应及备案和域名解析步骤必须了解的,目前轻量云服务器2核2G68元一年,2核4G4M服务器298元一年,域名注册方面,阿里云推出域名1元购买活动,新用户注册com和cn域名2年首年仅需0元,xyz和top等域名首年仅需1元。对于建站的用户来说,购买完云服务器并注册好域名之后,下一步还需要操作备案和域名绑定。本文为大家展示阿里云服务器的购买流程,域名注册、绑定以及备案的完整流程,全文以图文教程形式为大家展示具体细节及注意事项,以供新手用户参考。
|
2月前
|
网络协议 安全 文件存储
动态DNS(DDNS)技术在当前网络环境中日益重要,它允许使用动态IP地址的设备通过固定域名访问
动态DNS(DDNS)技术在当前网络环境中日益重要,它允许使用动态IP地址的设备通过固定域名访问,即使IP地址变化,也能通过DDNS服务保持连接。适用于家庭网络远程访问设备及企业临时或移动设备管理,提供便捷性和灵活性。示例代码展示了如何使用Python实现基本的DDNS更新。尽管存在服务可靠性和安全性挑战,DDNS仍极大提升了网络资源的利用效率。
102 6
|
2月前
|
域名解析 网络协议 安全
反向DNS解析是从IP地址到域名的映射,主要作用于验证和识别,提高通信来源的可信度和可追溯性
在网络世界中,反向DNS解析是从IP地址到域名的映射,主要作用于验证和识别,提高通信来源的可信度和可追溯性。它在邮件服务器验证、网络安全等领域至关重要,帮助识别恶意行为,增强网络安全性。尽管存在配置错误等挑战,但正确管理下,反向DNS解析能显著提升网络环境的安全性和可靠性。
160 3
|
2月前
|
存储 供应链 算法
深入解析区块链技术的核心原理与应用前景
深入解析区块链技术的核心原理与应用前景
74 0

推荐镜像

更多