zoukankan      html  css  js  c++  java
  • dns(二)-- dns服务器的搭建

    准备环境

    dns服务器一般选择的软件工具都是bind9,准备搭建dns的服务器操作系统是centos 7 x64位操作系统。windows有对应的bind软件可以下载,配置是图形界面,因此大家可以自行下载学习。我这里主要讲解linux操作系统的搭建步骤。

    dns服务器ip是 192.168.1.111, 配置的域为com,此台dns服务器设备名为test1.dns.com。
    另外我准备一台web服务器,ip 是192.168.1.110。此台web服务器设备名为test0.httpd.com,配置的域为httpd.com。

    因为我们搭建的是 主dns 服务器 ,并不打算同时配置 从dns 服务器,如果大家想安装 从dns 服务器,还需要再配置一台服务器,这里我就不细讲了。

    工具安装

    centos系统

    sudo yum install bind bind-utils
    

    ubuntu系统

    sudo apt-get install bind9
    

    安装完成后,各个系统安装的位置是不同的,主配置文件路径:
    centos: /etc/named.conf
    ubuntu: /etc/bind/named.conf

    修改主配置文件

    这两个系统主配置文件内容稍微有些不同,但主要配置一样。以下主要以centos系统讲解,ubuntu系统里面没有的话,大家可以自己添加进去:
    options {} 内容:

    • listen-on port 53 { 127.0.0.1; }; 建立监听的ip和端口。此处我们需要修改成 listen-on port 53 { 127.0.0.1; 192.168.1.111; }; ,192.168.1.111为dns服务器 ip。
    • directory "/var/named"; 表明配置里面所填写的文件所对应的目录,如果配置里面所填写的文件没有指定绝对路径,则相对路径都是指此路径。
    • allow-query { localhost; }; 指dns服务器可以查询ip的范围,此处修改成 allow-query { localhost; 192.168.1.0/24; }; ,192.168.1.0/24指dns所处的网段。
    • recursion yes; 支持递归查询,因为此处我们dns服务器兼任缓存服务器功能,所以将该配置添加进去。

    建立dns域

    1. touch /etc/named.conf.local 创建文件named.conf.local;
    2. 在/etc/named.conf文件末尾添加 include "/etc/named.conf.local";
    3. 在named.conf.local 文件里面添加
    zone "com" {
        type master;
        file "db.com"; # zone file path
    };
    
    zone "1.168.192.in-addr.arpa" {
        type master;
        file "db.192.168.1";  # 192.168.1/24 subnet
    };
    

    第一个 zone 用来指明正向解析域,表明如果域名查找,去对应的文件查找。
    第二个 zone 用来指明反向解析域,表明如果地址反查找时去对应的文件查找。1.168.192 必须反着写。
    type master表明是主dns服务器,如果type slave表明是从dns服务器。
    file 指明对应的文件,如果不是绝对路径,则相对路径依赖directory。

    1. 去directory对应的目录下 /var/named , 创建两个文件 touch db.com db.192.168.1
    2. 编辑 db.com 文件,内容如下:
    $TTL    604800
    @       IN      SOA     test1.dns.com. mail.dns.com. (
                  5         ; Serial
                 604800     ; Refresh
                  86400     ; Retry
                2419200     ; Expire
                 604800 )   ; Negative Cache TTL
    
    
    ; name servers - NS records
        IN      NS      test1.dns.com.
    
    
    ; name servers - A records
    test1.dns.com.          IN      A       192.168.1.111
    
    ; 162.168.1.0/24 - A records
    test0.httpd.com.         IN      A      192.168.1.110
    
    httpd.com.               IN      CNAME  test0.httpd.com.
    

    $TTL 默认缓存时长
    ; 后面表示注释

    @ 代指zone com., 也可以直接写 com.
    IN Internet缩写。
    SOA 指明该区域的权威 该句含义代表com域权威服务器是 test1.dns.com., 邮件服务器是 mail.dns.com.,此处我们并没有真正的邮件服务器存在。
    5; Serial 可以随意一个无符号的数字,主要用来slave服务器同步用,建议可以 202005211529 ,即当前时间,每次更改配置需要修改此值。此处因为没有slave服务器,所以就填 5。
    同理括号内的所有数字都是用于slave服务器用,因此此处照抄就可以。

    第二项可以看到前面空了几个空格,实际上表示同上一项该值,即 com.@
    NS 该区域的名称服务器,表示com域内名称服务器是 test1.dns.com.,此处可以有多个名称服务器。

    A 名称到地址的映射,表示前面的名称对应的地址是后面项,此处前面的名称必须是全名。
    CNAME 别名到全名的映射,此处表示 httpd.com. 全名是 test0.httpd.com. ,当我们查找 http.com 时,dns服务器会直接给出 test0.httpd.com. 对应的ip。

    1. 编辑 db.192.168.1 文件,内容如下:
    $TTL    604800
    @       IN      SOA     test1.dns.com. mail.dns.com. (
                                  4         ; Serial
                             604800         ; Refresh
                              86400         ; Retry
                            2419200         ; Expire
                             604800 )       ; Negative Cache TTL
    
    ; name servers - NS records
          IN      NS      test1.dns.com.
    
    ; PTR Records
    111   IN      PTR     test1.dns.com.             ; 192.168.1.111
    110   IN      PTR     test0.httpd.com.           ; 192.168.1.110                                                                      
    

    前两项与之前文件接近。此处 @ 表示 1.168.192.in-addr.arpa

    111 表示 111后面加上 1.168.192,即 192.168.1.111 ip。同理 110 表示 192.168.1.110.
    PTR 地址到名称的映射。

    完成以后内容以后,表示dns服务器配置已经配好。

    检验配置

    named-checkconf 命令会默认检查/etc/named.conf 文件。
    named-checkzone com /var/named/db.com 命令会检查 zone com 配置是否正确。
    named-checkzone 1.168.192.in-addr.arpa /var/named/db.192.168.1 命令会检查 zone 1.168.192.in-addr.arpa 配置是否正确。

    启动服务

    centos系统:
    sudo systemctl start named
    sudo systemctl enable named
    如果中间发现什么问题,需要重启named服务,也可以用 rndc reload

    ubuntu系统:
    sudo systemctl start bind9
    sudo systemctl enable bind9

    防火墙服务

    如果开启了防火墙,则可能外面访问dns服务器会被拦截。因此需要添加准入:
    firewall-cmd --permanent --add-port=53/tcp
    firewall-cmd --reload

  • 相关阅读:
    8.13实习报告
    8.10实习报告
    8.9实习报告
    8.8实习报告
    8.7实习报告
    关于线索二叉树建立和遍历
    main函数的位置可以任意
    返回指针值的函数和函数指针的区别
    runtime error: store to address 0x625000002048 with insufficient space for an object of type 'double' (solution.c) 0x625000002048: note: pointer points here
    m=-n++
  • 原文地址:https://www.cnblogs.com/meiwei-91/p/12896548.html
Copyright © 2011-2022 走看看