ubuntu 虚拟机配置dns服务

搭建最简单的DNS服务,记录一下,一开始没有沉下心来,就在网上找资料,进行傻子操作,中间出问题了,看问题也是一脸懵。

DNS服务器IP地址:10.7.56.20

安装dns server软件包
apt-get install bind9

配置说明

安装后会在/etc/下生成bind 目录
etc/bind/named.conf #主配置文件,定义了所有文件存放的位置,配置入口

include “/etc/bind/named.conf.options”;
include “/etc/bind/named.conf.local”;
include “/etc/bind/named.conf.default-zones”;

从主配置文件引出三个配置文件,默认的配置文件 named.conf.local 和 文件 named.conf.options 用于配置 BIND9 的基础服务,这两个文件作为配置DNS的核心文件,修改这两个文件需要管理员权限,默认的权限为: root:named,不要随便更改这两个文件的运行权限,DNS 服务会出现问题。
配置文件的注释符号为 //

/etc/bind/named.conf.options 全局选项配置,通常不用修改

options {
listen-on port 53 { any; };
listen-on-v6 port 53 { ::1; };
directory “/var/named”;
dump-file “/var/named/data/cache_dump.db”;
statistics-file “/var/named/data/named_stats.txt”;
memstatistics-file “/var/named/data/named_mem_stats.txt”;
allow-query { any; };
recursion yes;
forward first;
forwarders { #即访问非kevin.cn域名时将解析转发到这几个DNS地址(分别为阿里的DNS、google的DNS)上进行解析。
223.5.5.5; #注意这里转发的是DNS地址,没有指定DNS转发域名。
223.6.6.6;
8.8.8.8;
8.8.4.4;
};
};

options 的参数设置会影响整个 BIND9 DNS环境的配置,具体各部分常用到的配置参数如下:
listen-on: 用于配置监听的端口以及IPv4地址,默认的监听端口为:53; listen-on-v6:用于监听 IPv6 地址以及端口;
directory: 用于指定读取DNS数据文件的文件夹,默认的文件夹的路径为:/var/cache/bind;
dump-file:选项用来设置域名缓存数据库文件的位置,可以自己定义。默认的存储文件为:named_dump.db;
statistics-file:选项用来设置状态统计文件的位置,可以自己定义。; memstatistics-file :选项用来设置服务器输出的内存使用统计信息。默认保存在 /var/named/data 目录下,文件名为 named.memstats;
allow-query:选项用来设置允许DNS查询的客户端地址,默认值为localhost, 可以设置为某个网段、任意地址、具体的某台主机三种情况。例如,要修改为任意地址,就在括号内的加入 any,也可以引用之前创建的 acl 内的所有地址;
recursion:用于设置递归查询,一般客户机和服务器之间属于递归查询,即当客户机向DNS服务器发出查询请求后,若DNS服务器本身不能解析,则会向另外的DNS服务器发出查询请求,得到结果后转交给客户机。此选项有yes和no两个值。这个选项用于设置 Failover 非常有用;
dnssec-enable: 选项用来设置是否启用DNSSEC支持,DNSSEC可以用来验证DNS数据的有效性,该选项有yes和no两个值,默认值为yes。
dnssec-validation:选项用来设置是否启用DNSSEC确认,默认值为yes,可以选择 auto。
bindkeys-file : 用来设置内置信任的密钥文件,其默认值为 /etc/named/iscdlv.key;
managed-keys-directory: 选项用于指定目录中的文件存储位置,跟踪管理 DNSSEC 密钥, 这部分的内容在后边会有介绍;
forwarders:DNS转发器。用于设定该DNS解析服务器无法进行当前域名解析的情况下,进行转发解析的DNS地址,其中 8.8.8.8 和 8.8.4.4 是谷歌的免费DNS服务器的网络地址;233.5.5.5 和 233.6.6.6 是阿里云的免费DNS地址。当设置了 forwarder 的转发器之后,所有的非本域的和在缓存中无法查找到的域名查询都转发都设置的DNS转发器,由DNS转发器 完成转发操作。因此这台转发器的缓存中就记录了丰富的域名信息。因此如果遇到非本域的查询,转发器的缓存就可以做到查询,从而减少了向外部的查询流量。

named.conf.local:用于用户配置dns时,添加Zone的配置信息

zone “my-test.com” {
type master;
file “/etc/bind/db.test.com”;
};
zone “56.7.10.in-addr.arpa” {
type master;
file “/etc/bind/db.test.com”;
};

/etc/bind/db.test.com

;
; BIND data file for local loopback interface
;
$TTL 604800
@ IN SOA test.my-test.com. my-test.com. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS test.my-test.com.
test IN A 10.7.56.20
20 IN PTR test.my-test.com.

etc/resolv.conf #DNS服务器的缓存记录

nameserver 10.7.56.20

测试

nslookup my-test.com

永久设置 resolv.conf

临时生效(随时会被刷掉)
关闭systemd-resolved进程
#systemctl stop systemd-resolved
#echo “nameserver 8.8.8.8” /etc/resolv.conf
永久生效(使用ystemd-resolved, ubuntu18.04以及之后的版本默认使用此工具管理dns)

2.1 安装resolvconf工具
#apt install resolvconf
2.2 配置

#echo “nameserver 8.8.8.8” >/etc/resolvconf/resolv.conf.d/head
2.3 更新配置

#resolvconf -u
2.4 检查配置是否生效

#cat /etc/resolv.conf
nameserver 8.8.8.8

https://www.cnblogs.com/doherasyang/p/14464999.html?ivk_sa=1024320u
https://www.cnblogs.com/dakewei/p/13033558.html
https://www.cnblogs.com/kevingrace/p/9359989.html
https://blog.51cto.com/wuhf2015/1639437

你可能感兴趣的:(ubuntu,网络协议,ubuntu,linux,服务器)