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

posted @ 2020-05-15 18:39  meiwei_91  阅读(443)  评论(1编辑  收藏  举报