zoukankan      html  css  js  c++  java
  • 部署DNS服务

    DNS,全称Domain Name System,即域名解析系统

    DNS帮助用户在互联网上寻找路径。在互联网上的每一个计算机都拥有一个唯一的地址,称作“IP地址”(即互联网协议地址)。由于IP地址(为一串数字)不方便记忆,DNS允许用户使用一串常见的字母(即“域名”)取代。比如,您只需键入www.baidu.com,而不是“119.75.217.109”。即可访问ICANN的官方网站。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:windowssystem32driversetchost文件,是否有对应的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正向解析

    这里以mytest.com域为例
    www.mytest.com 对应IP 为192.168.29.100;
    ftp.mytest.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 "mytest.com" IN {
            type master;
            file "mytest.com";
    };
    

    其中zone的格式为:

    	zone “ZONE_NAME  IN {
    	type  master;
    	file “ZONE_NAME.zone”
    }
    

    3 新建解析库文件/var/named/mytest.com.zone

    [root@CentOS7 ~]# vim /var/named/mytest.com.zone
    $TTL 1D
    $ORIGIN mytest.com.
    @	IN SOA	mytest.com. admin.mytest.com. (
    					20170526; serial
    					1D	; refresh
    					1H	; retry
    					1W	; expire
    					3H )	; minimum
            IN  NS  @  ;  直接输入域名解析,访问mytest.com
            IN  A     2.2.2.2;  
    mytest.com. IN	NS	ns1.mytest.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/mytest.com.zone 
    

    5检查 配置语法

    (1)检查配置文件语法

    [root@CentOS7 ~]# named-checkconf
    

    (2)检查域配置文件语法

    [root@CentOS7 ~]# named-checkzone mytest.com  /var/named/mytest.com.zone
    zone mytest.com/IN: loaded serial 20170526
    OK
    

    6 启动named服务

    [root@CentOS7 ~]# systemctl start   named
    

    7 测试

    注意:要配置DNS服务器为本DNS服务器IP地址
    或者使用dig命令则不需要修改DNS服务器

    [root@CentOS7 ~]# nslookup  www.mytest.com
    Server:		127.0.0.1
    Address:	127.0.0.1#53
    
    Name:	www.mytest.com
    Address: 172.16.254.13
    [root@CentOS7 ~]# nslookup  ftp.mytest.com
    Server:		127.0.0.1
    Address:	127.0.0.1#53
    
    Name:	ftp.mytest.com
    Address: 1.1.1.1
    

    测试成功,正向解析成功!!

    二 DNS反向解析

    这里以mytest.com域为例
    IP地址192.168.29.100/24对应域名为www.mytest.com;
    192.168.29.200/24对应域名为ftp.mytest.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  mytest.com. admin.mytest.com. (
                                            20170526; serial
                                            1D      ; refresh
                                            1H      ; retry
                                            1W      ; expire
                                            3H )    ; minimum
             IN     NS      mytest.com.
    100     IN      PTR     www.mytest.com.
    200     IN      PTR     ftp.mytest.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.mytest.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.mytest.com.
    ;; AUTHORITY SECTION:
    29.168.192.in-addr.arpa. 86400	IN	NS	mytest.com.
    

    测试成功!!!

    三 主从DNS

    这里主DNS服务器IP地址为192.168.29.100/24
    从DNS服务器IP地址为192.168.29.3/24
    www.mytest.com 对应IP 为192.168.29.100;
    ftp.mytest.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 "mytest.com" IN {
            type master;
            file "mytest.com.zone";
            allow-transfer {192.168.29.3; };  ##192.168.29.3位从服务器的ip地址。
    };
    

    3 新建主服务器解析库文件vim /var/named/mytest.com.zone

    $TTL 1D
    $ORIGIN mytest.com.
    @	IN SOA	mytest.com. admin.mytest.com. (
    					20170526; serial
    					1D	; refresh
    					1H	; retry
    					1W	; expire
    					3H )	; minimum
    mytest.com. IN	NS	ns1.mytest.com.
    mytest.com. IN 	NS	slave.mytest.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 "mytest.com" IN {
    	type slave;	##表明本机是从服务器
    	file "slaves/mytest.com";	##将同步后的文件放置在哪里,这里是相对路径,实际路径为/var/named/slaves/mytest.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 mytest.com
    

    (2)用从服务器解析www.mytest.com

    [root@centos7 ~]# dig -t A www.mytest.com @192.168.29.3
    [……]
    ;; ANSWER SECTION:
    www.mytest.com.		86400	IN	A	172.16.254.13
    
    ;; AUTHORITY SECTION:
    mytest.com.		86400	IN	NS	slave.mytest.com.
    mytest.com.		86400	IN	NS	ns1.mytest.com.
    
    ;; ADDITIONAL SECTION:
    ns1.mytest.com.		86400	IN	A	192.168.29.100
    slave.mytest.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 在mytest.com.域的服务器上修改区域数据库文件

    [root@CentOS7 ~]# cat /var/named/mytest.com.zone 
    $TTL 1D
    $ORIGIN mytest.com.
    @	IN SOA	mytest.com. admin.mytest.com. (
    					20170526; serial
    					1D	; refresh
    					1H	; retry
    					1W	; expire
    					3H )	; minimum
            IN  NS  @  ;  直接输入域名解析,访问mytest.com
            IN  A     2.2.2.2;  
    mytest.com. IN	NS	ns1.mytest.com.
    mytest.com. IN  NS	slave.mytest.com.
    haha.mytest.com.	IN NS  ns2.haha.mytest.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.mytest.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.mytest.com" IN {
            type master;
            file "haha.zone";
            allow-transfer {192.168.29.0/24; };
    };
    

    4 新建主服务器解析库文件/var/named/haha.zone

    域名www.haha.mytest.com 对应IP 172.16.11.11
    域名ftp. haha.mytest.com 对应IP 2.2.2.2

    [root@CentOS7 ~]# vim /var/named/haha.zone
    $TTL 1D
    $ORIGIN haha.mytest.com.
    @       IN SOA  haha.mytest.com. admin.haha.mytest.com. (
                                            20170528; serial
                                            1D      ; refresh
                                            1H      ; retry
                                            1W      ; expire
                                            3H )    ; minimum
            IN  NS  @  ;  直接输入域名解析,访问haha.mytest.com
            IN  A     3.3.3.3;  
    haha.mytest.com. IN     NS      ns2.haha.mytest.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.mytest.com @192.168.29.100
    
    ; <<>> DiG 9.9.4-RedHat-9.9.4-37.el7 <<>> -t A www.haha.mytest.com @192.168.29.100
    […….]
    ;www.haha.mytest.com.		IN	A
    
    ;; ANSWER SECTION:
    www.haha.mytest.com.	86400	IN	A	172.16.11.11
    
    ;; AUTHORITY SECTION:
    haha.mytest.com.	86400	IN	NS	ns2.haha.mytest.com.
    
    ;; ADDITIONAL SECTION:
    ns2.haha.mytest.com.	86400	IN	A	192.168.29.110
    

    可以看到,已经可以成功解析

  • 相关阅读:
    剑指offer-23.链表中环的入口节点
    剑指offer-6从尾到头打印链表
    剑指offer-24.反转链表
    2-常见机器学习模型总结
    1-预测分析类核心算法简介
    罗马数字转整数Leetcode13
    链表反转leetcode206
    LINUX常用命令
    两种遍历list
    python笔记-字符串函数总结
  • 原文地址:https://www.cnblogs.com/Sunzz/p/7235298.html
Copyright © 2011-2022 走看看