共计 7405 个字符,预计需要花费 19 分钟才能阅读完成。
DNS,全称 Domain Name System,即域名解析系统。
DNS 帮助用户在互联网上寻找路径。在互联网上的每一个计算机都拥有一个唯一的地址,称作“IP 地址”(即互联网协议地址)。由于 IP 地址(为一串数字)不方便记忆,DNS 允许用户使用一串常见的字母(即“域名”)取代。比如,您只需键入 www.baidu.com,而不是“119.75.217.109”。即可访问 I CANN的官方网站。DNS 命名用于 Internet 等 TCP/IP 网络中,通过用户友好的名称查找计算机和服务。当用户在应用程序中输入 DNS 名称时,DNS 服务可以将此名称解析为与之相关的其他信息,如 IP 地址。因为,你在上网时输入的网址,是通过域名解析系解析找到相对应的 IP 地址,这样才能上网。其实,域名的最终指向是 IP
DNS 功能
每个 IP 地址都可以有一个主机名,主机名由一个或多个字符串组成,字符串之间用小数点隔开。有了主机名,就不要死记硬背每台 IP 设备的 IP 地址,只要记住相对直观有意义的主机名就行了。这就是 DNS 协议所要完成的功能。
主机名到 IP 地址的映射有两种方式:
1)静态映射,每台设备上都配置主机到 IP 地址的映射,各设备独立维护自己的映射表,而且只供本设备使用;2)动态映射,建立一套域名解析系统(DNS),只在专门的 DNS 服务器上配置主机到 IP 地址的映射,网络上需要使用主机名通信的设备,首先需要到 DNS 服务器查询主机所对应的 IP 地址。
通过主机名,最终得到该主机名对应的 IP 地址的过程叫做域名解析(或主机名解析)。在解析域名时,可以首先采用静态域名解析的方法,如果静态域名解析不成功,再采用动态域名解析的方法。可以将一些常用的域名放入静态域名解析表中,这样可以大大提高域名解析效率。
DNS 重要性
1、技术角度看
DNS 解析是互联网绝大多数应用的实际寻址方式;域名技术的再发展、以及基于域名技术的多种应用,丰富了互联网应用和协议。2、资源角度看
域名是互联网上的身份标识,是不可重复的唯一标识资源;互联网的全球化使得域名成为标识一国主权的国家战略资源。
DNS 的工作原理
以访问 www. 为例说明(主机为 Windows 系统)
1)客户端首先检查本地 c:\windows\system32\drivers\etc\host 文件,是否有对应的 IP 地址,若有,则直接访问 WEB 站点,若无
2)客户端检查本地缓存信息,若有,则直接访问 WEB 站点,若无
3)本地 DNS 检查缓存信息,若有,将 IP 地址返回给客户端,客户端可直接访问 WEB 站点,若无
4)本地 DNS 检查区域文件是否有对应的 IP,若有,将IP 地址返回给客户端,客户端可直接访问 WEB 站点,若无,5)本地 DNS 根据 cache.dns 文件中指定的根 DNS 服务器的 IP 地址,转向根 DNS 查询。6)根 DNS 收到查询请求后,查看区域文件记录,若无,则将其管辖范围内 .com 服务器的 IP 地址告诉本地 DNS 服务器
7).com服务器收到查询请求后,查看区域文件记录,若无,则将其管辖范围内 .xxx 服务器的 IP 地址告诉本地 DNS 服务器
8).xxx服务器收到查询请求后,分析需要解析的域名,若无,则查询失败,若有,返回 www. 的IP 地址给本地服务器
9)本地 DNS 服务器将 www. 的IP 地址返回给客户端,客户端通过这个 IP 地址与 WEB 站点建立连接
安装 DNS 服务器软件
[root@CentOS7 ~]# yum install bind
配置相关配置文件
/etc/named.conf,/etc/named.rfc1912.zones 为 DNS 主配置文件
/var/named/ 目录为 DNS 数据库文件存放目录,每一个域文件都放在这里。/etc/rc.d/init.d/named 为 DNS 服务的服务脚本。
一 DNS 正向解析
这里以 linuxidc.com 域为例
www.linuxidc.com 对应 IP 为 192.168.29.100;
ftp.linuxidc.com 对应 IP 为 1.1.1.1。
1 首先编辑 /etc/named.conf 文件
listen-on port 53 {any;};
allow-query {any;};
dnssec-enable no;
dnssec-validation no;
2 编辑区域配置文件 /etc/named.rfc1912.zones
zone "linuxidc.com" IN {type master;
file "linuxidc.com";
};
其中 zone 的格式为:
zone“ZONE_NAME IN {type master;
file“ZONE_NAME.zone”}
3 新建解析库文件 /var/named/linuxidc.com.zone
[root@CentOS7 ~]# vim /var/named/linuxidc.com.zone
$TTL 1D
$ORIGIN linuxidc.com.
@ IN SOA linuxidc.com. admin.linuxidc.com. (20170526; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
linuxidc.com. IN NS ns1.linuxidc.com.
ns1 IN A 192.168.29.100
www IN A 172.16.254.13
ftp IN A 1.1.1.1
4 修改解析库文件权限
[root@CentOS7 ~]# chgrp named /var/named/linuxidc.com.zone
5 检查 配置语法
(1)检查配置文件语法
[root@CentOS7 ~]# named-checkconf
(2)检查域配置文件语法
[root@CentOS7 ~]# named-checkzone linuxidc.com /var/named/linuxidc.com.zone
zone linuxidc.com/IN: loaded serial 20170526
OK
6 启动 named 服务
[root@CentOS7 ~]# systemctl start named
7 测试
注意:要配置 DNS 服务器为本 DNS 服务器 IP 地址
或者使用 dig 命令则不需要修改 DNS 服务器
[root@CentOS7 ~]# nslookup www.linuxidc.com
Server: 127.0.0.1
Address: 127.0.0.1#53
Name: www.linuxidc.com
Address: 172.16.254.13
[root@CentOS7 ~]# nslookup ftp.linuxidc.com
Server: 127.0.0.1
Address: 127.0.0.1#53
Name: ftp.linuxidc.com
Address: 1.1.1.1
测试成功,正向解析成功!!
二 DNS 反向解析
这里以 linuxidc.com 域为例
IP 地址 192.168.29.100/24 对应域名为 www.linuxidc.com;
192.168.29.200/24 对应域名为 ftp.linuxidc.com;
1 首先编辑 /etc/named.conf 文件
listen-on port 53 {any;};
allow-query {any;};
dnssec-enable no;
dnssec-validation no;
2 编辑区域配置文件 /etc/named.rfc1912.zones
zone "29.168.192.in-addr.arpa" IN {type master;
file "name.29.168.192";
};
格式为:
zone "NET_IP.in-addr.arpa" IN {#NET_IP 为反向解析的 IP 网段
type master;
file "NAME_ZONE"; #NAME_ZONE 为反向解析库配置文件名称
};
3 新建解析库文件
$TTL 1D
$ORIGIN 29.168.192.in-addr.arpa.
@ IN SOA linuxidc.com. admin.linuxidc.com. (20170526; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
IN NS linuxidc.com.
100 IN PTR www.linuxidc.com.
200 IN PTR ftp.linuxidc.com.
4 修改解析库文件所属组
[root@CentOS7 ~]# chgrp named name.29.168.192
5 语法检查
(1)检查配置文件语法
[root@CentOS7 ~]# named-checkconf
(2)检查域配置文件语法
[root@CentOS7 ~]# named-checkzone 29.168.192.in-addr.arpa /var/named/name.29.168.192
zone 29.168.192.in-addr.arpa/IN: loaded serial 20170526
OK
6 启动 named 服务
[root@CentOS7 ~]# systemctl start named
7 测试
[root@CentOS7 ~]# dig -x 192.168.29.200 @192.168.29.100
; <<>> DiG 9.9.4-RedHat-9.9.4-37.el7 <<>> -x 192.168.29.200 @192.168.29.100
[……]
200.29.168.192.in-addr.arpa. 86400 IN PTR ftp.linuxidc.com.
[root@CentOS7 ~]# dig -x 192.168.29.100 @192.168.29.100
[……]
;; ANSWER SECTION:
100.29.168.192.in-addr.arpa. 86400 IN PTR www.linuxidc.com.
;; AUTHORITY SECTION:
29.168.192.in-addr.arpa. 86400 IN NS linuxidc.com.
测试成功!!!
三 主从 DNS
这里主 DNS 服务器 IP 地址为 192.168.29.100/24
从 DNS 服务器 IP 地址为 192.168.29.3/24
www.linuxidc.com 对应 IP 为 192.168.29.100;
ftp.linuxidc.com 对应 IP 为 1.1.1.1
1 首先编辑主服务器 /etc/named.conf 文件
listen-on port 53 {any;};
allow-query {any;};
recursion yes;
dnssec-enable no;
dnssec-validation no;
2 编辑主服务器的区域配置文件 /etc/named.rfc1912.zones
zone "linuxidc.com" IN {
type master;
file "linuxidc.com.zone";
allow-transfer {192.168.29.3; }; ##192.168.29.3 位从服务器的 ip 地址。
};
3 新建主服务器解析库文件 vim /var/named/linuxidc.com.zone
$TTL 1D
$ORIGIN linuxidc.com.
@ IN SOA linuxidc.com. admin.linuxidc.com. (20170526; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
linuxidc.com. IN NS ns1.linuxidc.com.
mytest.com. IN NS slave.linuxidc.com. ### 添加从服务器的 NS 解析记录。
ns1 IN A 192.168.29.100
slave IN A 192.168.29.3 ### 指定从服务器的 IP 地址。
www IN A 172.16.254.13
ftp IN A 1.1.1.1
4 编辑从服务器 /etc/named.conf 文件
listen-on port 53 {any;};
allow-query {any;};
recursion yes;
dnssec-enable no;
dnssec-validation no;
5 配置从服务器的区域配置文件 /etc/named.rfc1912.zones
zone "linuxidc.com" IN {type slave; ## 表明本机是从服务器
file "slaves/linuxidc.com"; ## 将同步后的文件放置在哪里,这里是相对路径,实际路径为 /var/named/slaves/linuxidc.com
masters {192.168.29.100; }; ## 指定主服务器的 ip 地址
};
6 语法检查
在主从两个服务器上都进行语法检查
[root@CentOS7 ~]# named-checkconf
7 在主从两个服务器上开启服务
[root@CentOS7 ~]# systemctl start named
8 测试
(1)查看从服务器已经取得解析数据库文件
[root@centos7 ~]# ll /var/named/slaves/
total 4
-rw-r--r--. 1 named named 348 May 26 15:22 linuxidc.com
(2)用从服务器解析 www.linuxidc.com
[root@centos7 ~]# dig -t A www.linuxidc.com @192.168.29.3
[……]
;; ANSWER SECTION:
www.linuxidc.com. 86400 IN A 172.16.254.13
;; AUTHORITY SECTION:
linuxidc.com. 86400 IN NS slave.linuxidc.com.
mytest.com. 86400 IN NS ns1.linuxidc.com.
;; ADDITIONAL SECTION:
ns1.linuxidc.com. 86400 IN A 192.168.29.100
slave.linuxidc.com. 86400 IN A 192.168.29.3
;; Query time: 2 msec
;; SERVER: 192.168.29.3#53(192.168.29.3)
;; WHEN: Fri May 26 15:37:13 CST 2017
;; MSG SIZE rcvd: 129
可以看到解析成功。说明从服务器已生效。
四 子域授权
这里子域服务器为 192.168.29.110
1 在 linuxidc.com. 域的服务器上修改区域数据库文件
[root@CentOS7 ~]# cat /var/named/linuxidc.com.zone
$TTL 1D
$ORIGIN linuxidc.com.
@ IN SOA linuxidc.com. admin.linuxidc.com. (20170526; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
linuxidc.com. IN NS ns1.linuxidc.com.
mytest.com. IN NS slave.linuxidc.com.
haha.linuxidc.com. IN NS ns2.haha.linuxidc.com. ### 新添加的行
ns1 IN A 192.168.29.100
slave IN A 192.168.29.3
www IN A 172.16.254.13
ftp IN A 1.1.1.1
ns2.haha.linuxidc.com. IN A 192.168.29.110 ### 新添加行,指明子域服务器 IP 地址。
2 修改子域服务器的主配置文件 /etc/named.conf
[root@CentOS7 ~]# vim /etc/named.conf
listen-on port 53 {any;};
allow-query {any;};
recursion yes;
dnssec-enable no;
dnssec-validation no;
3 编辑子域服务器的区域配置文件 /etc/named.rfc1912.zones
[root@CentOS7 ~]# vim /etc/named.rfc1912.zones
zone "haha.linuxidc.com" IN {type master;
file "haha.zone";
allow-transfer {192.168.29.0/24; };
};
4 新建主服务器解析库文件 /var/named/haha.zone
域名 www.haha.linuxidc.com 对应 IP 172.16.11.11
域名 ftp. haha.linuxidc.com 对应 IP 2.2.2.2
[root@CentOS7 ~]# vim /var/named/haha.zone
$TTL 1D
$ORIGIN haha.linuxidc.com.
@ IN SOA haha.linuxidc.com. admin.haha.linuxidc.com. (20170528; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
haha.linuxidc.com. IN NS ns2.haha.linuxidc.com.
ns2 IN A 192.168.29.110
www IN A 172.16.11.11
ftp IN A 2.2.2.2
5 语法检查
在两个服务器上都进行语法检查
[root@CentOS7 ~]# named-checkconf
6 在两个服务器上开启服务
[root@CentOS7 ~]# systemctl start named
7 测试
[root@centos7 ~]# dig -t A www.haha.linuxidc.com @192.168.29.100
; <<>> DiG 9.9.4-RedHat-9.9.4-37.el7 <<>> -t A www.haha.linuxidc.com @192.168.29.100
[…….]
;www.haha.linuxidc.com. IN A
;; ANSWER SECTION:
www.haha.linuxidc.com. 86400 IN A 172.16.11.11
;; AUTHORITY SECTION:
haha.linuxidc.com. 86400 IN NS ns2.haha.linuxidc.com.
;; ADDITIONAL SECTION:
ns2.haha.linuxidc.com. 86400 IN A 192.168.29.110
可以看到,已经可以成功解析
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-07/145879.htm