0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

什么是域名?什么是DNS?DNS域名原理你知道吗?

马哥Linux运维 来源:博客园 2024-03-11 17:01 次阅读

1.DNS 介绍

1.1什么是域名?

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

1.2什么是 DNS?

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

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

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

1.3域名的组成和分类

常见格式:www.baidu.com
完整格式:www.baidu.com.

. 根域,可省略不写

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 地址



审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 计算机
    +关注

    关注

    19

    文章

    7490

    浏览量

    87878
  • TCP
    TCP
    +关注

    关注

    8

    文章

    1353

    浏览量

    79061
  • DNS
    DNS
    +关注

    关注

    0

    文章

    218

    浏览量

    19829
  • UDP
    UDP
    +关注

    关注

    0

    文章

    325

    浏览量

    33933

原文标题:DNS域名原理你知道吗?

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    什么是域名DNS

    什么是域名DNS为什么要注册DNS呢,申请了DNS后,客户可以自己为域名作解析,或增设子域名.客
    发表于 07-19 00:13

    什么是域名DNS

       为什么要注册DNS呢,申请了DNS后,客户可以自己为域名作解析,或增设子域名.客户申请DNS时,建议客户
    发表于 11-22 00:39

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

    转最新网络教程本章节为大家讲解DNS(Domain Name System,域名系统),通过前面章节对TCP和UDP的学习,需要大家对DNS也有个基础的认识。(本章的知识点主要整理自网络)27.1
    发表于 11-23 15:50

    如何解决DNS解析错误故障

    DNS解析出现错误,就是把一个域名解析成一个错误的IP地址,或者根本不知道某个域名对应的IP地址是什么时,我们就无法通过域名访问相应的站点了
    发表于 09-29 15:14

    使用JavaScript代码在Rapid板子上实现DNS解析域名得到IP地址操作分享!

    DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名
    发表于 08-15 04:17

    域名服务器(DNS

    域名服务器(DNS) whois命令在UNIX计算机上,您可以使用whois命令来查找有关域
    发表于 08-05 09:04 1525次阅读

    什么是DNS

    什么是DNS  英文缩写: DNS 中文译名: 域名系统 分  类: IP与多媒体 解  释: 遍布于因特网的数据库。它
    发表于 02-22 17:25 1085次阅读

    基于DNS的停靠域名检测方法

    域名系统是互联网的重要基础设施之一,人们通过域名快速访问网络中的各种资源。近些年,随着域名注册成本的逐步低廉,域名注册量快速增长,但注册的域名
    发表于 12-08 15:40 0次下载
    基于<b class='flag-5'>DNS</b>的停靠<b class='flag-5'>域名</b>检测方法

    dns地址如何查询

    DNS(Domain Name Server,域名服务器)是进行域名(domain name)和与之相对应的IP地址 (IP address)转换的服务器。DNS中保存了一张
    发表于 01-15 16:09 1311次阅读

    了解DNS的工作原理,了解根域名的管理机制

    而每一个根DNSDNS报文中都要占用一定的字节数,比如根的名称、TTL、IP地址等。这样,13个根域名服务器基本上就把空间占差不多了,剩余的字节还要用于包装DNS报头以及其它协议参数
    的头像 发表于 09-03 10:43 4940次阅读

    域名系统DNS的概念和设施详细说明

    本RFC是对域名系统(DNS)的介绍,它省略了许多可以在RFC中找到的细节,“域名-实现和规范”〔RFC-1035〕。RFC假设读者熟悉本备忘录中讨论的概念。DNS函数和数据类型的子集
    发表于 11-23 08:00 0次下载
    <b class='flag-5'>域名</b>系统<b class='flag-5'>DNS</b>的概念和设施详细说明

    DNS服务器和DNS服务器地址是什么

    域名系统,属于一种组织成域层次结构的计算机和网络服务器命名系统。域名系统主要用于分配域名地址、IP地址给互联网中的主机,系统再将用户提供的域名地址自动转为IP地址。
    的头像 发表于 03-30 15:57 8902次阅读

    DNS污染是是什么,DNS污染怎么解决

    DNS污染是指有意或无意进行的域名服务器分组,将域名指向错误的IP地址。 什么是DNS污染? DNS污染有哪些处理方法 一般而言,网站通常在
    发表于 04-19 09:43 1.1w次阅读

    DNS的结构和工作原理

    DNS 代表域名系统或域名服务器。DNS 将IP 地址解析为主机名,反之亦然。
    的头像 发表于 08-05 15:23 518次阅读
    <b class='flag-5'>DNS</b>的结构和工作原理

    华纳云:Ubuntu18.04系统如何查询域名的具体dns信息

    在Ubuntu18.04系统中查询域名DNS信息是一项常见且重要的操作。本文将介绍几种实用的方法,帮助用户快速获取所需的DNS信息。 使用dig命令 dig命令是一个强大的DNS查询
    的头像 发表于 08-08 15:50 423次阅读