zoukankan      html  css  js  c++  java
  • BIND_9.16.3(DNS)部署安装测试

    1.简介

    域名系统(英文:Domain Name System,缩写:DNS)是因特网使用的命名系统,用来把便于人们使用的机器名字转换成为IP地址 即解决的是IP地址和域名的映射问题。

    DNS是多层命名服务器构成的分布式数据库,属于应用层协议,DNS使用TCP和UDP端口53。

    当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符,是Internet的核心功能。

    DNS系统是由各式各样的DNS软件所驱动的,包括:

    • BIND(Berkeley Internet Name Domain),这是应用最广的DNS软件.
    • DJBDNS(Dan J Bernstein's DNS implementation)
    • MaraDNS
    • NSD(Name Server Daemon)
    • PowerDNS

    2.请求方式

    迭代查询:LocalDNS服务器只告诉客户机另外一台DNS服务器的地址,让客户机自己去循环查询结果。

    递归查询:委托给LocalDNS服务器去查询,LocalDNS服务器直接返回结果给客户机,一般DNS解析都是用递归查询的方法。

    3.域名解析过程

    • 先检查浏览器的缓存 看有没有对应解析过的ip
    • 查看本地的hosts文件
    • 向本地指向的dns服务器 发起域名解析请求 看看有没有缓存
    • 没有的话就向根dns服务器发起请求
    • 根服务器回返回给顶级域名服务器的地址
    • 本地服务器去向顶级域名服务器请求
    • 顶级域名解析服务器会返回注册的域名服务器
    • 本地服务器再去向注册的域名服务器发起域名解析请求
    • 返回解析出来的ip
    • 本地域名服务器再返回给客户端

    4.DNS资源记录

    DNS 区域采用资源记录的形式存储信息。每条资源记录均具有一个类型 , 表明其保留的数据类型。 

    • A : 名称至 IPv4 地址 
    • AAAA : 名称至 IPv6 地址 
    • CNAME : 名称至 ”规范名称 “ ( 包含 A/AAAA 记录的另一个名称
    • PTR : IPv4/IPv6 地址至名称 
    • MX : 用于名称的邮件交换器 ( 向何处发送其电子邮件
    • NS :域名的名称服务器 
    • SOA:“授权起始”, DNS 区域的信息 ( 管理信息 )

     SOA详解:

    $ORIGIN .

    $TTL 3600       ; 1 hour

    txt.com                 IN SOA  ns.txt.com. mail.txt.com. (

                                    2          ; serial

                                    28800      ; refresh (8 hours)

                                    3600       ; retry (1 hour)

                                    604800     ; expire (1 week)

                                    1800       ; minimum (30 minutes)

     )

    Serial

    数值Serial代表这个Zone的序列号,作用:Slave DNS判断是否从Master DNS获取新数据,每次Zone文件更新,都需要修改Serial数位. RFC19122.2建议的格式为YYYYMMDDnn其nn为修订号;表示在某年(YYYY)、月(MM)、日(DD)进行了第几次(nn)修改

    Refresh

    数值Refresh设置Slave DNS多长时间与Master DNS进行核对Serial核对,目前bindnotify参数可以设置每次Master DNS更新都会主动通知Slave DNS更新,Refresh参数主要用于notify参数关闭时

    Retry

     数值Retry设置当Slave DNS试图获取Master DNS Serial时,如果Master DNS未响应,多长时间重新进行检查。

    Expire

     数值Expire将决定Slave DNS在没有Master DNS的情况下权威的提供域名解析服务的时间长短。

    Minimum

    8.2版本之前,由于没有独立的STTL令,所以通过SOA最后一个字段来实现,但由于BIND. 8.2后出现了STTL 指令,该部分功能就不再由SOA的最后一个字段来负责,STTL全权负责.SOA的最后一个字段专门负责negative answer  (negative caching)

    5.DNS排错

    它显示来自 DNS 查找的详细信息 , 其中包括为什么查询失败

    • NOERROR : 查询成功 
    • NXDOMAIN : DNS 服务器提示不存在这样的名称 
    • SERVFAIL : DNS 服务器停机或 DNSSEC 响应验证失败 
    • REFUSED : DNS 服务器拒绝回答 ( 也许是出于访问控制原因 )

    6.源码方式安装

     本文章所使用的系统环境为 Centos 7.5 操作系统,安装的是bind-9.16.3版本

    6.1创建非特权用户named

    [root@localhost ~]# cat /etc/group //查看是否存在named组
    [root@localhost ~]# groupadd -g 53 named
    [root@localhost ~]# cat /etc/passwd //查看是否存在named用户
    [root@localhost ~]# useradd -M -s /sbin/nologin -g named named

    6.2安装依赖包

    [root@localhost ~]#  yum -y install libcap libcap-devel libuv libuv-devel openssl-devel

    6.3上传安装包并检查安装包信息

    [root@localhost ~]# ls
    anaconda-ks.cfg   bind-9.16.3.tar.xz  initial-setup-ks.cfg   epel-release-latest-7.noarch.rpm

    [root@localhost ~]# md5sum bind-9.16.3.tar.xz
    2b207d5699d7acb0a2e997b7cd53d9c2 bind-9.16.3.tar.xz

    为了确保BIND将构建dnssec-keymgr,以root用户身份安装python模块:

    [root@localhost ~]# yum -y install python36 python36-devel
    [root@localhost ~]# pip3 install ply -i https://mirrors.aliyun.com/pypi/simple/

    6.4解压安装包

    [root@localhost ~]# tar xf bind-9.16.3.tar.xz

    6.5进入到解压文件中进行配置编译

    [root@localhost ~]# cd bind-9.16.3/

    [root@localhost bind-9.16.3]# ./configure --prefix=/usr/local/bind9 --sysconfdir=/etc/named --localstatedir=/var --with-libtool --disable-chroot --disable-static
    [root@localhost bind-9.16.3]# echo $?
    0
    [root@localhost bind-9.16.3]# make && make install
    [root@localhost bind-9.16.3]# echo $?
    0

    6.6安装完成之后配置rndc和named.conf主配置文件

    [root@localhost ~]# cd /usr/local/bind9/sbin/
    [root@localhost sbin]# ./rndc-confgen > /etc/named/rndc.conf
    [root@localhost ~]# cd /etc/named/
    [root@localhost named]# tail -10 rndc.conf | head -9 | sed -e s/# //g > named.conf
    [root@localhost ~]# vim /etc/named/named.conf
    options {
    directory "/var/named";
    pid-file "/var/named/named.pid";
    dump-file "/var/named/cache_dunmp.db";
    statistics-file "/var/named/named_stats.txt";
    version none;
    hostname none;
    recursion yes;
    allow-query { any; };
    listen-on port 53 { any; };
    querylog yes;
    max-cache-size 0M;
    };
    logging {
    channel query_syslog { syslog local3; severity info; print-time yes; };
    channel query_log {
    file "/var/dnslog/query.log" versions 5 size 500m;
    print-time yes;
    severity info;
    };
    category queries { query_log;};
    channel general_log {
    file "/var/dnslog/general_log" versions 5 size 500m;
    print-time yes;
    print-category yes;
    print-severity yes;
    severity info;
    };
    category default { general_log; };
    category general { general_log; };
    };

    创建域名记录存放的目录并修改权限

    [root@localhost ~]# mkdir -p /var/named
    [root@localhost ~]# chown root:named /var/named/
    [root@localhost ~]# chmod 770 /var/named/

    创建DNS日志存放目录并修改权限

    [root@localhost ~]# mkdir -p /var/dnslog
    [root@localhost ~]# chown root:named /var/dnslog/
    [root@localhost ~]# chmod 770 /var/dnslog/

    修改配置文件的权限

    [root@localhost ~]# chmod 640 /etc/named/*
    [root@localhost ~]# chown root:named /etc/named/*

    使用named用户启动服务并查看是否成功

    [root@localhost ~]# /usr/local/bind9/sbin/named -4u named -c /etc/named/named.conf
    [root@localhost ~]# ps xua |grep bind
    rpc 679 0.0 0.0 69220 1056 ? Ss 13:25 0:00 /sbin/rpcbind -w
    named 59934 0.0 0.8 236140 15212 ? Ssl 16:15 0:00 /usr/local/bind9/sbin/named -4u named -c /etc/named/named.conf
    root 60043 0.0 0.0 112724 972 pts/0 R+ 16:26 0:00 grep --color=auto bind

  • 相关阅读:
    5.19 省选模拟赛 T1 小B的棋盘 双指针 性质
    5.15 省选模拟赛 容斥 生成函数 dp
    5.15 省选模拟赛 T1 点分治 FFT
    5.15 牛客挑战赛40 B 小V的序列 关于随机均摊分析 二进制
    luogu P4929 【模板】舞蹈链 DLX
    CF 878E Numbers on the blackboard 并查集 离线 贪心
    5.10 省选模拟赛 拍卖 博弈 dp
    5.12 省选模拟赛 T2 贪心 dp 搜索 差分
    5.10 省选模拟赛 tree 树形dp 逆元
    luogu P6088 [JSOI2015]字符串树 可持久化trie 线段树合并 树链剖分 trie树
  • 原文地址:https://www.cnblogs.com/linuxMA/p/13259292.html
Copyright © 2011-2022 走看看