服务搭建系列(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