[ Content contribution] 服务搭建系列(4):DNS服务配置
Tofloor
poster avatar
废物头子
deepin
2024-02-28 14:54
Author

服务搭建系列(4):DNS服务配置

一、DNS作用

DNS(Domain Name System)用于完成IP地址和域名之间的相互转换。

在互联网早期,设备和用户较少的时候,用户可以之间通过IP地址进行设备间的访问。随着用户和设备数量的增多,IP地址的数量也越来越多,并且IP地址对于用户而言不方便记忆。但域名便于用户使用。例如,百度的IP地址为 182.61.200.7,对于普通用户来说这个数字不好记忆,但是www.baidu.com就方便了许多。

最初,计算机通过一个叫hosts文件来记录域名和IP的对应关系。通过互联网信息中心来管理这个文件,如果一个计算机想接入网络,或者某个计算机IP地址变更,都需要向互联网信息中心申请变更hosts。其他计算机也需要定期更新,才能正常上网。随着互联网规模越来越大,就出现了DNS系统。

DNS域名结构

为了避免域名重复和方便管理DNS系统,全世界域名最高管理机构,是一个叫做ICANN(Internet Corporation for Assigned Names and Numbers)的组织,总部在美国加州。

域名其实是具有一定的层次结构的,从上到下依次为:根域名、顶级域名、二级域名、三级域名

eg:以www.baidu.com为例

com为顶级域名;baidu为二级域名;www为三级域名

顶级域名(TLD)

最高层级的域名。就是网址的最后一个部分。ICANN的一项主要工作,就是规定哪些字符串可以当作顶级域名。顶级域名分为两类:

  • 通用顶级域名(gTLD),比如.com,.net,.edu,.org等等,共有700多个
  • 国家顶级域名(ccTLD),代表不同的国家和地区,比如,.cn,.io,.cc等,共有300多个

二级域名(SLD)

二级域名在通用顶级域名或国家顶级域名之下具有不同的意义。

  • 通用顶级域名下的二级域名:一般是指域名注册人选择使用的网上名称,如 baidu.com(商业组织通常使用自己的商标、商号或其他商业标志作为自己的网上名称,如 baidu.com
  • 国家顶级域名下的二级域名:一般是指类似于通用顶级域名的表示注册人类别和功能的标志。例如,在 .com.cn 域名结构中,.com 此时是置于国家顶级域名 .cn 下的二级域名,表示中国的商业性组织,以此类推。

三级域名

三级域名甚至不能称为域名,一般称之为域名下的 “二级目录”。

根域名

由于 ICANN 管理着所有的顶级域名,所以它是最高一级的域名节点,被称为根域名(root domain)。在有些场合,www.xxx.com 被写成 www.xxx.com.,即最后还会多出一个点。这个点就是根域名。

二、DNS工作原理

DNS系统采用C/S架构,使用TCP或UDP协议,端口号为53。域名解析通过服务器上的解析器完成,DNS域名解析按照域名层级自顶至下进行。

解析过程

以访问www.uniontech.com为例

  • DNS客户端向本地域名服务器请求域名解析,如果本地域名服务器中不存在对应的域名解析结果缓存,本地域名服务器首先会向根服务器查询,根服务器里面记录了各个顶级域所在的服务器位置,根会返回.com域名服务器信息
  • 本地域名服务器在获取.com域名服务器信息后,会向.com域名服务器请求uniontech.com的服务器地址,.com域名服务器返回uniontech.com服务器信息。
  • 最终在uniontech.com域名系统中请求www主机的信息,进行http的连接。

三、DNS配置

1.安装DNS软件包

[root@1060a ~]# yum -y install bind
DNS服务器所包含的配置文件
[root@1060a ~]# rpm -qc bind
/etc/logrotate.d/named
/etc/named.conf
/etc/named.rfc1912.zones
/etc/named.root.key
/etc/rndc.conf
/etc/rndc.key
/etc/sysconfig/named
/var/named/named.ca
/var/named/named.empty
/var/named/named.localhost
/var/named/named.loopback

2.修改DNS主配置文件 /etc/named.conf

options {
        listen-on port 53 { any; };	//ipv4监听地址和端口,一般设置为any
        listen-on-v6 port 53 { ::1; };		//ipv6监听地址和端口
        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";
        secroots-file   "/var/named/data/named.secroots";
        recursing-file  "/var/named/data/named.recursing";
        allow-query     { any; };		//允许使用本DNS服务的网段,一般设置为any

3.修改DNS区域配置文件 /etc/named.rfc1912.zones

正向解析
zone "text.com" IN {			域名
        type master;
        file "text.com.file";		区域数据文件名
        allow-update { none; };
};
反向解析文件
zone "200.168.192.in-addr.arpa" IN {
        type master;
        file "192.168.200.file";	区域数据文件名
        allow-update { none; };
};

4.配置正反向区域数据文件

正向解析区域配置文件/var/named/text.com.file
$TTL 1D		'有效解析记录的生存周期'
[root@1060a named]# cp -p named.localhost text.com.file
[root@1060a named]# vim text.com.file
@       IN SOA  @ text.com. (		‘SOA标记	域名’
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry	
                                        1W      ; expire
                                        3H )    ; minimum
        NS      @
        A       127.0.0.1
        AAAA    ::1
www     IN      A       192.168.200.10
主机名	  网络/协议裂隙	资源记录类型	IP地址
IN就是internet
A记录就是IPv4主机地址
其余资源记录类型
AAAA	IPv6地址
NS		name server域名服务器
MX		Mail Exchanger邮件交换
CNAME	别名
PTR		Pointer指针
反向解析区域配置文件/var/named/192.168.200.file
[root@1060a named]# cp -p named.loopback 192.168.200.file
[root@1060a named]# vim 192.168.200.file
$TTL 1D
@       IN SOA  @ text.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      @
        A       127.0.0.1
        AAAA    ::1
        PTR     localhost.
10      IN      PTR     www.text.com
[root@1060a named]# systemctl restart named

5.验证DNS结果

[root@client ~]# vim /etc/resolv.conf 
# Generated by NetworkManager
nameserver 192.168.200.10
[root@client ~]# nslookup www.text.com
Server:         192.168.200.10
Address:        192.168.200.10#53

Name:   www.text.com
Address: 192.168.200.10
Reply Favorite View the author
All Replies
废物头子
deepin
2024-02-28 14:55
#1

失踪人口回归applaud

Reply View the author
阿尼樱奈奈
Moderator
2024-02-28 15:04
#2

like

Reply View the author
晚秋(lateautumn)
Moderator
2024-02-28 16:04
#3

学习了,果然是高手。joy

Reply View the author
babyfengfjx
Super Moderator
CQA
2024-02-29 09:05
#4
优秀的科普 agree
Reply View the author
我是小强
deepin
2024-03-02 14:43
#5

上来就 YUM 大佬你去深度打这个好用吗? 我新手 。

Reply View the author
废物头子
deepin
2024-03-04 08:29
#6
我是小强

上来就 YUM 大佬你去深度打这个好用吗? 我新手 。

不好用,深度是apt

Reply View the author
liuyongjin1987
deepin
2024-03-18 09:55
#7

提个问题:如何有条件的使用上游DNS ,比如只有baidu.com使用,其它的都返回失败

Reply View the author
花雨落逝
Moderator
2024-05-03 11:57
#8
liuyongjin1987

提个问题:如何有条件的使用上游DNS ,比如只有baidu.com使用,其它的都返回失败

本地加载个防火墙拦截一下?

Reply View the author