域名解析是把域名指向网站空间IP,让人们通过注册的域名可以方便地访问到网站的一种服务。IP地址是网络上标识站点的数字地址,为了方便记忆,采用域名来代替IP地址标识站点地址。域名解析就是域名到IP地址的转换过程。域名的解析工作由DNS服务器完成。
域名解析也叫域名指向、服务器设置、域名配置以及反向IP登记等等。说得简单点就是将好记的域名解析成IP,服务由DNS服务器完成,是把域名解析到一个IP地址,然后在此IP地址的主机上将一个子目录与域名绑定。
互联网中的地址是数字的IP地址,域名解析的作用主要就是为了便于记忆。
DNS系统在网络中的作用就是维护着一个地址数据库,其中记录了各种主机域名与IP地址的对应关系,以便为客户程序提供正向或者反向的地址查询服务,及正向解析和反向解析。
正向解析:根据域名查相对应的IP地址
反向解析:根据IP地址查相对应的域名
DNS系统的分布式数据结构
实际上,每一台DNS服务器都只负责管理一个有限范围(一个或几个域)内的主机域名和IP地址的对应关系,这些特定的DNS域或IP地址段称为“zone”(区域)。根据地址解析的方向不同,DNS区域相应地分为正向区域(包含域名到IP地址的解析记录,)和反向区域(包含IP地址到域名的解析记录)。
根据所管理的区域数据的来源不同,DNS系统可以分为不同的类型。在同一台DNS服务器中,相对于不同的区域来说,也拥有不同的身份。如下常见的几种类型:
BIND 的安装和控制
BIND不是唯一能够提供域名服务的DNS服务程序,但它却是应用最为广泛的,BIND可以运行在大多数Linux/UNIX主机中。其官方站站点为https://www/isc/org/。
系统光盘自带了BIND服务的安装软件,可以用yum进行安装,主要包括以下几个软件包:
各软件包的主要作用如下。
bind:提供了域名服务的主要程序及相关文件
bind-utils:提供了对DNS服务器的测试工具程序,如nslookup等
bind-libs:提供了bind,bind-utils需要使用的库函数
bind-chroot:为BIND服务提供一个伪装的根目录(将/var/named/chroot文件夹作为BIND的根目录),以提高安全性
BIND 服务的配置文件
使用BIND软件构建域名服务时,主要涉及两种类型的配置文件:主配置文件和区域数据文件。其中,主配置文件用于设置named服务的全局选项、注册区域及访问等各种运行参数;区域数据文件用于存放某个DNS区域的地址解析记录(正向或反向记录)。
缓存域名服务器通常架设在公司的局域网内,主要目的是提高域名解析的速度,减少对互联网访问的出口量。
1、建立主配置文件named.conf
另外需要额外添加一行参数
forwarders { 20.0.0.13; }
2、确认根域的区域数据文件named.ca
根区域的区域数据文件默认位于/var/named/named.ca中,该文件记录了Internet中根域服务器的域名和IP地址等相关信息。
3、启动named 服务
执行“systemctl stat named”命令,启动named服务。
4、验证缓存域名服务器
nslookup www.bdqn.com
完成解析即成功
1、构建主域名服务器(20.0.0.11)
(1)设置主配置文件
(2)设置区域配置文件
vi /etc/named.rfc1912.zones
zone "bdqn.com" IN {
type master;
file "bdqn.com.zone";
allow-transfer { 20.0.0.12; };
also-notify { 20.0.0.12; };
};
zone "0.0.20.in-addr.arpa" IN {
type master;
file "20.0.0.arpa";
allow-transfer { 20.0.0.12; };
also-notify { 20.0.0.12; };
};
(3)建立正、反向区域数据文件
[root@r1 ~]# cd /var/named/
[root@r1 named]# cp named.localhost bdqn.com.zone
[root@r1 named]# vi bdqn.com.zone
$TTL 1D
@ IN SOA bdqn.com. admin.bdqn.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 192.168.11.119
www IN A 192.168.11.119
ftp IN A 192.168.11.118
mail IN CNAME www
[root@r1 named]# chown named:named /var/named/bdqn.com.zone
[root@r1 named]# cp named.loopback 20.0.0.arpa
[root@r1 named]# vi 20.0.0.arpa
$TTL 1D
@ IN SOA bdqn.com.admin.bdqn.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS bdqn1.com.
A 20.0.0.100
119 IN PTR www.bdqn1.com.
120 IN PTR ftp.bdqn1.com.
121 IN PTR bbs.bdqn1.com.
记得开启named服务
2、构建从域名服务器(20.0.0.12)
(1)设置主配置文件
[root@r2 ~]# vi /etc/named.conf
options {
listen-on port 53 { 20.0.0.12; };
listen-on-v6 port 53 { ::1; };
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";
allow-query { any; };
zone "bdqn.com" IN {
type slave;
masters { 20.0.0.11; };
allow-notify { 20.0.0.11; };
file "slaves/bdqn.com.zone";
};
zone "0.0.20.in-addr.arpa" IN {
type slave;
masters { 20.0.0.11; };
allow-notify { 20.0.0.11; };
file "slaves/20.0.0.arpa";
};
[root@r2 ~]# cd /var/named/slaves/
[root@r2 slaves]# ll
total 0
[root@r2 slaves]# systemctl start named
[root@r2 slaves]# ll
total 8
-rw-r--r-- 1 named named 400 Jul 30 01:29 20.0.0.arpa
-rw-r--r-- 1 named named 311 Jul 30 01:29 bdqn.com.zone
(3)验证主域名服务器(20.0.0.13)
[root@localhost ~]# vi /etc/resolv.conf
nameserver 20.0.0.11
nameserver 20.0.0.12
[root@localhost ~]# nslookup www.bdqn.com
Server: 20.0.0.11
Address: 20.0.0.11#53
Name: www.bdqn.com
Address: 192.168.11.119
[root@localhost ~]# nslookup 20.0.0.119
Server: 20.0.0.11
Address: 20.0.0.11#53
119.0.0.20.in-addr.arpa name = www.bdqn1.com.
[root@localhost ~]# nslookup 20.0.0.120
Server: 20.0.0.11
Address: 20.0.0.11#53
120.0.0.20.in-addr.arpa name = ftp.bdqn1.com.
[root@localhost ~]# nslookup 20.0.0.121
Server: 20.0.0.11
Address: 20.0.0.11#53
121.0.0.20.in-addr.arpa name = bbs.bdqn1.com.
[root@localhost ~]# vi /etc/resolv.conf
#nameserver 20.0.0.11
nameserver 20.0.0.12
:wq
[root@localhost ~]# nslookup www.bdqn.com
Server: 20.0.0.12
Address: 20.0.0.12#53
Name: www.bdqn.com
Address: 192.168.11.119
[root@localhost ~]# nslookup 20.0.0.119
Server: 20.0.0.12
Address: 20.0.0.12#53
119.0.0.20.in-addr.arpa name = www.bdqn1.com.
[root@localhost ~]# nslookup 20.0.0.120
Server: 20.0.0.12
Address: 20.0.0.12#53
120.0.0.20.in-addr.arpa name = ftp.bdqn1.com.
[root@localhost ~]# nslookup 20.0.0.121
Server: 20.0.0.12
Address: 20.0.0.12#53
121.0.0.20.in-addr.arpa name = bbs.bdqn1.com.