DNS服务安装与配置
DNS域名解析服务器,dns服务器程序包名称为bind,程序名named。
安装DNS服务器:
yum install bind -y
配置文件:
/etc/named.conf 主配置文件
/etc/rndc.key Remote Name Domani Controller
/var/namd/ 区域数据文件
/etc/rc.d/init.d/named {start|stop|restart|status|reload}
/usr/sbin/named 主程序
/usr/sbin/named-checkconfig 检查配置文件
/usr/sbin/named-checkzone 检查zone
/usr/sbin/rndc-confgen 生产rndc的配置文件
caching-nameserver 这是个软件包,能把DNS服务器变为缓存DNS服务器
配置文件:
1、修改监听地址:listen-on 改为外部可访问地址。
2、修改访问权限:allow-query 改为 any 表示任何人都可以访问。
3、注释掉dnssec。
options { listen-on port 53 { 192.168.1.141; 127.0.0.1; };// 多地址用分号,注释掉默认监听所有端口 directory "/var/named"; // 区域解析,options中最关键的一项,其他的都可以删除 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; // 是否允许递归,一般yes forwarders { // 向上递归解析 223.5.5.5; 114.114.114.114; }; //下面的4条都都是关于加密的,配置繁琐不实用,改成no dnssec-enable no; dnssec-validation no; //bindkeys-file "/etc/named.iscdlv.key"; //managed-keys-directory "/var/named/dynamic"; pid-file "/run/named/named.pid"; session-keyfile "/run/named/session.key"; };
日志配置:
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";
启动:
systemctl start named.service
配置主DNS名称服务器:
在 /etc/named.rfc1912.zones 文件中添加如下内容:
zone "ziwei.wiki" IN { type master; file "ziwei.wiki.zone"; // 这里包含的文件相对于路径 /var/named/ };
创建解析文件:
vim /var/named/ziwei.wiki.zone
内容如下:
$TTL 1D $ORIGIN ziwei.wiki. @ IN SOA ns1.ziwei.wiki. admin.ziwei.wiki. ( 2018112501 1H 5M 7D 1D ) IN NS ns1 IN NS ns2 ns1 IN A 192.168.1.141 ns2 IN A 192.168.1.141 www IN A 192.168.1.108
检查配置文件:
检查主配置文件命令
named-checkconf
检查区域配置文件,第一个参数为区域名称,第二个为区域地址。
named-checkzone "ziwei.wiki" ziwei.wiki.zone
修改配置文件的属组:
chmod 640 ziwei.wiki.zone chown :named ziwei.wiki.zone
重读配置文件命令:
service named reload 或 rndc reload
查看状态:
rndc status
查找解析记录:“@”表示指定DNS解析地址
dig -t A www.ziwei.wiki @192.168.1.141 dig -t A ipaipan.com @192.168.1.12 +trace host -t A ipaipan.com host -t A ipaipan.com 192.168.1.12 # ip为server nslookup ipaipan.com 192.168.1.12 # ip为server
DNS监听端口与协议:53/udp、53/tcp、953/tcp, rndc 默认监听端口
解析类型:
SOA:起始授权记录,一个区域解析库有且仅能有一个SOA记录,且必须为解析库的第一条。
A:FQDN-->ipv4
AAAA:FQDN-->ipv6
PTR:IP-->FQDN
NS:表名当前区域的DNS服务器name server
CNAME:别名记录
MX:邮件交换器mail exchanger
解析记录:
SOA:区域名、TTL值、IN、SOA、主DNS服务地址、邮箱地址(邮箱的@符号有特殊用途用点代替)
scriptjc.com. 86400 IN SOA ns.scriptjc.com. admin.scriptjc.com.( 201712292200 ;版本号,任意值 2H ;刷新时间 10M ;重试时间 1W ;过期时间 1D ;否定答案的TTL值 )
NS:为区域指定DNS服务器地址,从服务器
scriptjc.com. IN NS ns1.scriptjc.com. scriptjc.com. IN NS ns2.scriptjc.com. scriptjc.com. IN NS 192.168.1.12
MX:数字为权重,0-99之间
scriptjc.com. IN MX 10 mx1.scriptjc.com. scriptjc.com. IN MX 20 mx1.scriptjc.com.
A:有多个值则轮询解析
www.scriptjc.com. IN A 192.168.1.12 www.scriptjc.com. IN A 192.168.1.13 *.scriptjc.com. IN A 192.168.1.13 scriptjc.com. IN A 192.168.1.13
PTR:IP解析到主机名,反解析,IP要反过来写
12.1.168.192.in-addr.arpa IN PTR www.scriptjc.com. 12 IN PTR www.scriptjc.com. # 简写
CNAME:
m.scriptjc.com. IN CNAME www.scriptjc.com.
简单示例:
@ 表示 example.com 域名本身,也就是 example.com. 的简写的方式,写 example.com. 也可以。
$TTL 1D $ORIGIN ipaipan.com. @ IN SOA ns.ipaipan.com. admin.ipaipan.com. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum IN NS ns ns IN A 192.168.1.12 @ IN A 192.168.1.16 * IN A 192.168.1.16
子域名配置
主域名配置:
named.conf:
zone "example.com" IN { type master; file "/etc/namedb/example.com.zone"; allow-update { none; }; };
/etc/namedb/example.com.zone:
$ORIGIN example.com. $TTL 1d @ IN SOA ns1.example.com. admin.example.com. ( 2023121801 ; serial 3h ; refresh 1h ; retry 1w ; expire 1d ) ; minimum @ IN NS ns1.example.com. @ IN NS ns2.example.com. ns1 IN A 192.168.1.10 ns2 IN A 192.168.1.11 www IN A 192.168.1.100 mail IN A 192.168.1.101
子域名配置:
named.conf:
zone "example.com" IN { type master; file "/etc/namedb/example.com.zone"; allow-update { none; }; }; zone "demo.example.com" IN { type master; file "/etc/namedb/demo.example.com.zone"; allow-update { none; }; };
/etc/namedb/demo.example.com.zone:
$ORIGIN demo.example.com. $TTL 1d @ IN SOA ns1.example.com. admin.example.com. ( 2023121801 ; serial 3h ; refresh 1h ; retry 1w ; expire 1d ) ; minimum @ IN NS ns1.example.com. @ IN NS ns2.example.com. www IN A 192.168.1.100 mail IN A 192.168.1.101
加载配置:
rndc reload