Bind9简介
企业内部经常需要搭建内部的DNS服务器,现在使用最为广泛的DNS服务器软件是BIND(Berkeley Internet Name Domain),最早有伯克利大学的一名学生编写,现在最新的版本是9,有ISC(Internet Systems Consortium)编写和维护。BIND支持先今绝大多数的操作系统(Linux,UNIX,Mac,Windows),BIND服务的名称称之为named。DNS默认使用UDP、TCP协议,使用端口为53(domain),953(mdc,远程控制使用)。
名词解析
DNS: 域名解析服务(DomainNameSystem),是用于解析域名与IP地址对应关系的服务。
LDNS: Local DNS 也称为递归 DNS、缓存 DNS,核心功能是缓存、递归查询。收到域名查询请求后,Local DNS 首先查看本地缓存中是否有记录。如果没有则逐级查询根域、顶级域、二级域等,直到获取到结果然后返回给用户。一般来说,运营商(例如联通、移动、电信)分配的 DNS 就是 Local DNS,主要功能是帮助运营商的网络用户去相应的权威 DNS 服务查询域名解析结果,其查询结果直接影响某一运营商的所有网络用户。
权威 DNS: 权威 DNS 是域名注册商处的 DNS 服务器,用于管理特定域名(比如增加、删除、修改等)。权威 DNS 服务器一般由域名解析服务商建设,供购买自己域名服务的用户使用,方便管理域名记录。由于权威 DNS 服务器需要接受 Local DNS 服务器的查询,其结果直接影响某一域名解析服务商的所有用户,间接影响所有网民。中小型公司一般会选择一家知名的权威 DNS 服务商提供的托管服务,比如阿里云云解析 DNS。
正向解析: 根据主机名(域名)查找对应的IP地址。
反向解析: 根据IP地址查找对应的主机名(域名)。
DNS解析过程
- 当被询问到有关本地管理区所授权的域名时﹐DNS服务器会直接做出回答﹔
- 如果所查询的域名属于其它区域的话﹐会检查缓存﹐看看有没有相关数据;
- 如果没有发现﹐则会转向根节点服务器查询﹔
- 然后根节点服务器会将该区域授权服务器(可能会超过一台)的地址告知本地服务器﹔
- 本地服务器然后向其中的一授权台服务器查询﹐并将这些服务器名单存到缓存中(省却再向 根查询的步骤)﹔
- 远方服务器回应查询﹔
7.将结果存储在缓存中,并同时将结果响应给客户,从步骤1到步骤7是一个完整的递归解析过程; - 如果缓存的记录存放时间尚未过期之前再接到相同的查询﹐则以存放在缓存中的数据来做响应。
适用场景
本文介绍了如何使用BIND软件轻松构建一套私有的权威DNS服务,用于内部调用API或内部域名隐私保护等场景。
安装篇
方式一、在线安装
- YUM管理器(RedHat体系)
以centos7.4为例:
yum -y install bind-chroot bind bind-utils bind-devel
- APT管理器(Debian体系)
以ubuntu16.04为例:
sudo