linux搭建dns服务器
需求如下:配置域名:test.com—>192.168.114.2
修改以下文件:
/etc/named.conf
/var/named/named.domain.zones
/var/named/named.自定义域名.zone,如:/var/named/named.test.com.zone
第一步:编辑/var/named/named.test.com.zone,内容如下
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ; minimum
)
NS @
A 192.168.114.2
www A 192.168.114.2
第二步:编辑/var/named/named.domain.zones,内容如下
zone "test.com" IN {
type master;
file "named.test.com.zone";
};
第三步:设置dns端口,修改文件中以下内容:/etc/named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
options {
listen-on port 53 { any; };
listen-on-v6 port 53 { any; };
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";
secroots-file "/var/named/data/named.secroots";
recursing-file "/var/named/data/named.recursing";
allow-query { any; };
/*
- If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.
- If you are building a RECURSIVE (caching) DNS server, you need to enable
recursion.
- If your recursive DNS server has a public IP address, you MUST enable access
control to limit queries to your legitimate users. Failing to do so will
cause your server to become part of large scale DNS amplification
attacks. Implementing BCP38 within your network would greatly
reduce such attack surface
*/
recursion yes;
dnssec-enable yes;
dnssec-validation yes;
managed-keys-directory "/var/named/dynamic";
pid-file "/run/named/named.pid";
session-keyfile "/run/named/session.key";
/* https://fedoraproject.org/wiki/Changes/CryptoPolicy */
include "/etc/crypto-policies/back-ends/bind.config";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
include "/var/named/named.domain.zones";
第四步:重启dns服务
systemctl restart named
第五步:linux客户端指定域名服务器
[root@client ~]# cat /etc/resolv.conf
# Generated by NetworkManager
# nameserver 200.200.10.199
nameserver 192.168.114.2
第六步:测试
[root@client ~]# nslookup test.com
Server: 192.168.114.2
Address: 192.168.114.2#53
Name: test.com
Address: 192.168.114.2
[root@client ~]# nslookup www.test.com
Server: 192.168.114.2
Address: 192.168.114.2#53
Name: www.test.com
Address: 192.168.114.2
[root@client ~]#
参考资料:https://www.cnblogs.com/reader/p/5616181.html
学到知识
"sed -i 's/port\s+\d+\s*{/port hash[:port]{/g' /etc/named.conf"
"sed -i '/named.domain.zones/d' /etc/named.conf" #删除包含named.domain.zones字符串的行
"echo 'include \"#{domain_zones_file}\";' >> /etc/named.conf"
"sed 's/::1;/any;/g' -i #{named_conf_file}" #替换某个字符串