zoukankan      html  css  js  c++  java
  • DNS服务器搭建

    DNS服务器搭建

    1.什么是DNS

    DNS,网域名称系统(Domain Name System),它是作为将域名和IP地址相互映射的一个分布式数据库,使用的TCP和UDP端口为53,目前,最流行的软件是DNS软件是bind,其官方网站为: https://www.isc.org 目前最流行的是9.11.2 (于2017年7月)

    2.bind安装

    yum安装与源码安装的区别,源码可以自主选择编译的版本,定制编译的模块,但是编译起来较为复杂,而yum安装的版本有限,且不能够自定义编译的模块。

    2.1yum安装

    查看bind版本

    1 [root@localhost bind-9.11.2]# yum list bind
    2 Loaded plugins: fastestmirror
    3 Loading mirror speeds from cached hostfile
    4  * base: mirrors.sohu.com
    5  * extras: mirrors.sohu.com
    6  * updates: mirrors.sohu.com
    7 Installed Packages
    8 bind.x86_64                                                                                32:9.9.4-50.el7_3.1                                                                                 @updates
    9 [root@localhost bind-9.11.2]# 

    安装:

    1 [root@localhost bind-9-11]# yum install -y bind

    2.2源码安装

    下载网址: https://www.isc.org/downloads/

    利用wget下载: 

    1 [root@localhost ~]# wget https://www.isc.org/downloads/file/bind-9-11-2/?version=tar-gz

    解压:

    1 [root@localhost ~]# tar xf bind-9.11.2.tar.gz 

    查看编译帮助:

      1 [root@localhost ~]# cd bind-9.11.2
      2 [root@localhost bind-9.11.2]# ./configure --help

    编译:

    1 [root@localhost bind-9.11.2]# ./configure --prefix=/usr/local/bind-9-11 --enable-ipv6 --enable-filter-aaaa --enable-full-report --without-openssl
    2 [root@localhost bind-9.11.2]# make
    3 [root@localhost bind-9.11.2]# make install

     3.配置文件介绍

    我们将采用yum安装的bind软件

    配置文件介绍:

    DNS主配置文件:/etc/named.conf

    区域数据配置文件:/var/named/*

    主配置文件介绍:

     1 [root@localhost ~]# cat /etc/named.conf
     2 ;options表示全局参数,在这里设置的东西将在整个文档生效
     3 options {
     4     ;监听的端口是53 ip为127.0.0.1
     5     listen-on port 53 { 127.0.0.1; };
     6     
     7     ;监听ipv6的端口为53 监听的地址块为::1/128
     8     listen-on-v6 port 53 { ::1; };
     9     
    10     ;定义资源配置文件
    11     directory     "/var/named";
    12     
    13     dump-file     "/var/named/data/cache_dump.db";
    14     statistics-file "/var/named/data/named_stats.txt";
    15     memstatistics-file "/var/named/data/named_mem_stats.txt";
    16     allow-query     { localhost; };   ;只允许localhost访问
    17 
    18     ;是否允许递归
    19     recursion yes;
    20 
    21     dnssec-enable yes;
    22     dnssec-validation yes;
    23 
    24     bindkeys-file "/etc/named.iscdlv.key";
    25 
    26     managed-keys-directory "/var/named/dynamic";
    27 
    28     ;DNS pid文件存放路径
    29     pid-file "/run/named/named.pid";
    30     session-keyfile "/run/named/session.key";
    31 };
    32 
    33 ;日志文件
    34 logging {
    35         channel default_debug {
    36                 file "data/named.run";
    37                 severity dynamic;
    38         };
    39 };
    40 
    41 ;资源
    42 zone "." IN {
    43     ;hind 根 master 主 slave 从 forward 转发
    44     type hint;
    45     ;文件位置  options directory中的相对路径
    46     file "named.ca";
    47 };
    48 
    49 ;包含文件
    50 include "/etc/named.rfc1912.zones";
    51 include "/etc/named.root.key";
    52 
    53 [root@localhost ~]# 

    正向解析文件介绍

     1 ;/etc/named.rfc1912.zones 是在/etc/named.conf中include包含的的文件,也属于配置文件
     2 [root@localhost named]# sed -n 13,17p /etc/named.rfc1912.zones 
     3 zone "localhost.localdomain" IN { ;localhost.localdomain在named.localhost 中可以用@取代
     4     type master;                  ;类型为主配置文件
     5     file "named.localhost";          ;域文件
     6     allow-update { none; };
     7 };
     8 [root@localhost named]# 
     9 
    10 [root@localhost named]# cat named.localhost 
    11 $TTL 1D                            $设置TTL时间 全局变量
    12 @    IN SOA    @ rname.invalid. ( ;这里的@取决于在/etc/named设置的值
    13                     0    ; serial    ;ID号
    14                     1D    ; refresh    : 刷新时间
    15                     1H    ; retry        : 重试时间
    16                     1W    ; expire    : 结束时间
    17                     3H )    ; minimum    :返回否定时间
    18     NS    @        ;添加NS记录
    19     A    127.0.0.1        ;添加A记录(ipv4)
    20     AAAA    ::1            ;添加AAAA记录(ipv6)
    21 [root@localhost named]# 

    反向文件解析介绍

     1 [root@localhost named]# sed -n 31,35p /etc/named.rfc1912.zones 
     2 zone "1.0.0.127.in-addr.arpa" IN {    ;地址是127.0.0.1反过来写加上.in-addr.arpa 这是反向解析的格式
     3     type master;                    ;类型为主服务器配置文件
     4     file "named.loopback";            ;域文件
     5     allow-update { none; };
     6 };
     7 ;这是解析的文件,和上面正向解析文件一致
     8 [root@localhost named]# cat /var/named/named.loopback 
     9 $TTL 1D
    10 @    IN SOA    @ rname.invalid. (
    11                     0    ; serial
    12                     1D    ; refresh
    13                     1H    ; retry
    14                     1W    ; expire
    15                     3H )    ; minimum
    16     NS    @
    17     A    127.0.0.1
    18     AAAA    ::1
    19     PTR    localhost.
    20 [root@localhost named]# 

    4.打造一个DNS服务器

    规划:

    DNS服务器名称以及IP:wang-li.top   192.168.155.204

    www服务器域名以及IP:www.wang-li.top  192.168.155.205

    ftp服务器域名以及IP:ftp.wang-li.top  www.wang-li.top的别名

    4.1 DNS 主配置文件如下:

     1 [root@DNS1 etc]# cat named.conf
     2 options {
     3     ;设置目录
     4     directory     "/var/named";        
     5     ;允许递归的网络段
     6     allow-recursion    {192.168.155.0/24;};
     7 };
     8 
     9 zone "." IN {
    10     type hint;
    11     file "named.ca";
    12 };
    13 
    14 zone "localhost" IN {
    15     type master;
    16     file "named.localhost";
    17 };
    18 
    19 ;增加zone文件
    20 zone "wang-li.top" IN {
    21     ;类型为master
    22     type    master;
    23     ;文件地址位于/var/named/wang-li.top.zone
    24     file    "wang-li.top.zone";
    25     ;不允许传送
    26     allow-transfer {none;};
    27 };
    28 [root@DNS1 etc]# 

     4.2 zone 文件如下:

     1 [root@DNS1 named]# cat /var/named/wang-li.top.zone
     2 $TTL    1200                                        ;设置TTL值  为1200s 后面就无需设置TTL值了
     3 @        IN    SOA    ns1    admin (                ;SOA记录
     4             20170802                                ;版本号
     5             1H                                      ;刷新时间
     6             5M                                      ;重试时间
     7             1W                                      ;过期时间
     8             1D                                      ;否定时长
     9 )
    10 
    11         IN    NS    ns1                             ;增加ns1的记录
    12 ns1        IN    A    192.168.155.204               ;增加ns1的A记录
    13 www        IN    A    192.168.155.205               ;增加www的A记录
    14 ftp        IN    CNAME    www                       ;增加ftp的CNAME(别名)记录
    15 [root@DNS1 named]# 

      4.3 修改/etc/resolv.conf文件并且测试搭建的DNS服务器

    修改/etc/resolv.conf  nameserver内容为我们刚刚搭建好的DNS服务器ip

    1 [root@DNS1 named]# cat /etc/resolv.conf 
    2 # Generated by NetworkManager
    3 nameserver 192.168.155.204
    4 [root@DNS1 named]# 

     使用dig命令进行检测

    检测DNS服务器名称是否OK

    1 [root@DNS1 named]# dig -t NS wang-li.top | grep "ANSWER SECTION" -A 2
    2 ;; ANSWER SECTION:
    3 wang-li.top.        1200    IN    NS    ns1.wang-li.top.
    4 
    5 [root@DNS1 named]# 

    检测www解析是否OK

    1 [root@DNS1 named]# dig -t A www.wang-li.top | grep -i "ANSWER SECTION" -A 2
    2 ;; ANSWER SECTION:
    3 www.wang-li.top.    1200    IN    A    192.168.155.205
    4 
    5 [root@DNS1 named]# 

     检测ftp解析是否OK

    1 [root@DNS1 named]# dig -t A ftp.wang-li.top | grep -i "ANSWER SECTION" -A 2
    2 ;; ANSWER SECTION:
    3 ftp.wang-li.top.    1200    IN    CNAME    www.wang-li.top.
    4 www.wang-li.top.    1200    IN    A    192.168.155.205
    5 [root@DNS1 named]# 

    总结:

     1 在named.conf中
     2 1.如添加一个zone,需要注意的是type值为
     3     hint:根(这里用于添加zone为.的时候用)
     4     master:主
     5     slave:从
     6 2.在添加file的时候,路径为相对路径,是按照option中directory中的地址来设定的
     7 3.注意配置文件是以分号;结尾
     8 
     9 在zone文件中
    10 1.TTL可添加,可不添加,$TTL是把TTL的值加到全局设定中去
    11 2.SOA记录必须要有,格式为:区域名称 IN    SOA    服务器名称    邮箱(版本号,刷新时间,重试时间,过期时间,否定时间),其中W:周 D:天 H:时 M:分
    12 3.添加完SOA记录后,必须要为NS赋予A记录或者AAAA的IP地址(A:IPv4 AAAA:IPv6)
    13 4.A:地址    CNAME:别名
  • 相关阅读:
    MES取所有部门的函数实例
    MES总结:CBF.Common 文件Net下的有类型转换
    LINQ to SQL 系列 如何使用LINQ to SQL插入、修改、删除数据
    c# abstract抽象类与继承类子类的构造函数_base
    C# 之泛型详解
    MVC6与Asp.net5
    MenuStrip菜单递归
    .net 下的MVCPager
    UVALive5461 UVA615 POJ1308 HDU1325 Is It A Tree?
    UVALive5461 UVA615 POJ1308 HDU1325 Is It A Tree?
  • 原文地址:https://www.cnblogs.com/NoneID/p/7257942.html
Copyright © 2011-2022 走看看