这里只是初步介绍搭建方法,经过本地测试和客户端测试可以顺利查询其他网站(准确说,写这篇文章时,我就是通过目前搭建的DNS服务器中转DNS查询)。 首先是实验环境 使用VMware虚拟机和Ubuntu18.04系统建立虚拟机,作为server,网络连接方式使用桥接模式。
然后是下载bind9 使用指令sudo apt install bind9 bind9安装在/etc/bind位置,进入该文件夹,可以查看文件权限 这里首先看到named.conf,named.conf.local,named.conf.options三个文件,首先我们查看named.conf 可以发现里面是引用了named.conf.options, named.conf.local, named.conf.default-zones 三个文件,下面我们DNS服务器的配置主要在这些文件内进行。 首先是配置named.conf.local文件
//
// Do any local configuration here
//
// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";
zone "test.cn"{
type master;
file "/etc/bind/db.test.cn";
allow-query {any;};
allow-update {any;};
};
zone "206.168.192.in-addr.arpa"{
type master;
file "/etc/bind/db.192.example.com";
};
这里分别给出了自定义域名及其ip地址,然后具体的正向查询和反向查询的配置文件在file 内
这里给出两个配置文件。 /etc/bind/db.test.cn
$TTL 604800
$ORIGIN test.cn.
@ IN SOA test.cn. root.test.cn. (
2006080401 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns1
@ IN A 192.168.206.130
ns1 IN A 192.168.206.130
www IN A 192.168.206.130
/etc/bind/db.192.example.com
$TTL 604800
@ IN SOA test.cn. root.test.cn. (
20211201;Serial
604800 ;Refresh
86400 ;Retry
2419200 ;Expire
604800) ;Negative Cache TTL
;
@ IN NS test.cn.
130 IN PTR www.test.cn.
130 IN PTR nsl.test.cn.
~
最后需要配置一下named.conf.options文件
options {
directory "/var/cache/bind";
// If there is a firewall between you and nameservers you want
// to talk to, you may need to fix the firewall to allow multiple
// ports to talk. See http://www.kb.cert.org/vuls/id/800113
/// If your ISP provided one or more IP addresses for stable
// nameservers, you probably want to use them as forwarders.
// Uncomment the following block, and insert the addresses replacing
// the all-0's placeholder.
forwarders {
8.8.8.8;
};
//========================================================================
// If BIND logs error messages about the root key being expired,
// you will need to update your keys. See https://www.isc.org/bind-keys
//========================================================================
dnssec-validation auto;
auth-nxdomain no; # conform to RFC1035
listen-on-v6 { any; };
};
这样最基础的就配置完成了,同时,forward后面跟的域名是在无法查到域名IP时,转发向的公共DNS服务器IP 下面是进行的测试 首先启动bind9 进行本地查询
然后在另一台机器上将DNS服务器指向该虚拟机IP 然后使用python进行查询
|