Linux配置DNS服务器 学习笔记

  在Linux中通过  /etc/nsswitch.conf配置文件修改DNS查询的顺序,打开后可以看到这样的配置:

  这里的 files 代表的就是 /etc/hosts 文件,dns 代表的是系统配置的 DNS 服务器地址。所以在 Linux 中默认是先查询 hosts 文件中的记录,然后再请求 DNS 服务器。

  系统设定的DNS服务器配置文件位于 /etc/resolv.conf中:

nameserver后面对应的就是内网中的DNS服务器地址。

DNS搭建:

本次学习使用BIND9来搭建服务器,首先安装:

sudo apt-get update

sudo apt-get install -y bind9 bind9utils bind9-doc

激活IPV4 Mode:

在继续配置 DNS 服务器之前,先修改一下 bind9 service 参数文件,设置 BIND 为 IPv4 Mode。

sudo vi /etc/default/bind9
把 "-4" 添加到 OPTIONS 变量,如下所示 /etc/default/bind9

确定DNS服务器:

首先就ifconfig查看本机IP :

然后找几个内网IP去ping一下:

DNS服务器的配置:

BIND 的配置由多个文件组成,这些文件包含在主配置文件中named.conf。这些文件名以“named”开头,因为这是BIND 运行的进程的名称。我们将开始配置选项文件。

cat /etc/bind/named.conf

配置选项文件:

vi /etc/bind/named.conf.options

在现有的文档之上,添加一个新的 ACL 块并命名 "trusted",我们把之前找到的内网 ip 添加到可信客户端列表里,并称为 ns1 ,只允许它们查询 DNS 服务器 , 提高安全性

通过上面的设置只有信任的主机才能查询 DNS 服务器,其他主机不能。

配置本地文件:

打开 named.conf.local并编辑:

sudo vi /etc/bind/named.conf.local
我们修改配置文件,完成后如下,在配置文件中添加了正向解析和反向解析的文件在系统中的位置,简单的说,正向解析就是根据域名查 ip,反向就是根据 ip 查域名

注意,反向区域名称以 168.192 开头,即 192.168 反转。

添加完成后,保存退出。这样我们在 BIND 我们就有了指定的文件,接下来我们就编写正向解析和反向解析的域文件。

4.3.4 创建正向解析域文件

正向解析:通过主机名获取其对应的广域网 IP 地址,我们以 "host1.shiyanlou.example.com" 为例来编写来这个文件。
sudo mkdir /etc/bind/zones
我们根据现有的域文件db.local,来复制一份作为db.shiyanlou.example.com 编辑这个正向解析文件

sudo cp /etc/bind/db.local /etc/bind/zones/db.shiyanlou.example.com
sudo vi /etc/bind/zones/db.shiyanlou.example.com
我们在原来文件的基础上,修改了很多,具体如下

;
; BIND data file for local loopback interface
$TTL    604800
@       IN      SOA     ns1.shiyanlou.example.com. admin.shiyanlou.example.com. (
                  3       ; Serial
             604800     ; Refresh
              86400     ; Retry
            2419200     ; Expire
             604800 )   ; Negative Cache TTL
;
;
; name servers - NS records
     IN      NS      ns1.shiyanlou.example.com.
; name servers - A records
ns1.shiyanlou.example.com.          IN      A       192.168.42.5

host1.shiyanlou.example.com.        IN      A      192.168.42.1
注意上面加点的地方不要漏写

ip 地址根据自己的实际地址填写。
4.3.5 创建反向解析域文件

反向域名解析与通常的正向域名解析相反,提供IP地址到域名的对应。 IP 反向解析主要应用到邮件服务器中来阻拦垃圾邮件,特别是在国外。多数垃圾邮件发送者使用动态分配或者没有注册域名的IP地址来发送垃圾邮件,以逃避追踪,使用了域名反向解析后,就可以大大降低垃圾邮件的数量。
在之前的 named.conf.local 的文件里我们写了一个反向域名解析的文件名db.192.168,现在来编写它:

sudo cp /etc/bind/db.127 /etc/bind.zones/db.192.168
sudo vi /etc/bind/zones/db.192.168
文件的具体内容如下:

;
; BIND reverse data file for local loopback interface
;
$TTL    604800
@       IN      SOA     shiyanlou.example.com. admin.shiyanlou.example.com. (
                              3         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
; name servers
      IN      NS      ns1.shiyanlou.example.com.

; PTR Records
5.42   IN      PTR     ns1.shiyanlou.example.com.    ; 192.168.42.5
1.42   IN      PTR     host1.shiyanlou.example.com.  ; 192.168.42.1
ip 地址根据自己的实际地址填写。

PTR 首位根据后面的 ip 反转。
4.3.6 检验 BIND 配置文件语法错误

运行下面的命令检验 named.conf* 有没有语法错误:

sudo named-checkconf
如果没有报错则编写是正确的,如果报错了,那就根据报的错误去修改文件。 运行下面的命令查看正向解析和反向解析文件是否正确。

sudo named-checkzone shiyanlou.example.com /etc/bind/zones/db.shiyanlou.example.com
sudo named-checkzone 168.192.in-addr.arpa /etc/bind/zones/db.192.168


做到这里,离成功已经不远了:-),我们重启 BIND service

sudo service bind9 restart


DNS 客户端配置

配置 DNS 客户端,在我们的实验环境里,客户端和服务器是一体的,用自己的电脑的话,可以试试局域网的其他电脑做客户端。将客户端的 DNS 修改为服务器的 ip 地址。 因为我们用的是 Ubuntu 的系统,所以运行命令

sudo vi /etc/resolvconf/resolv.conf.d/head
把文档修改为如下所示:

nameserver 192.168.42.5  # ns1 private IP address
然后打开文档resolv.conf

sudo vi /etc/resolv.conf
编辑为:

options timeout:1 attempts:1 rotate
nameserver  192.168.42.5
接下来运行 resolvconf 生成一个新的 resolv.conf文件

sudo resolvconf -u
好了,你的客户端可以检验你的服务器是否可以正常使用了。

猜你喜欢

转载自blog.csdn.net/weixin_40602516/article/details/81202711