DNS基础概念:
- DNS全称为Domain Name System。它作为将域名和IP地址相互映射的得一个分布式数据库,能够使人更方便的访问互联网
- DNS使用TCP和UDP得53号端口
-
BIND是DNS得实现方式之一
- named是bind程序得运行的进程名
- named进程的主要运行者是named用户,为了安全起见,它的程序也应该以named用户运行
配置正向解析:
yum -y install bind bind-utils -y #安装bind vim /var/named/lijing.io #在/var/named/下创建文件 $TTL 600 lijing.io. IN SOA lijing.io. nsadmin.liing.io. ( 2017052901 1H 5M 1W 6H ) IN NS dns1.lijing.io dns1.lijing.io. IN A 172.16.253.223 www.lijing.io IN CNAME www vim /etc/named.conf #编辑主配置文件 /dnssec-enable #查找dnssec-enable //dnssec-enable #注释之 dnssec-validation no #改为no,禁用 /allow-query #查找allow-query allow-query { any; }; #允许所有人查询 /listen-on #查找这一行 //listen-on #注释之 #注意,每一个指令都已分号结尾 vim /etc/named.rfc1912.zones #更改区域配置文件 G #跳转到行末 zone "lijing.io" { type master; #定义为主服务器 file "lijing.io.zone"; } named-checkconf #检查配置文件语法 named-checkzone #检查zone区域语法 chmod o= /var/named/lijing.io.zone chown :named /var/named/lijing.io.zone systemctl start named.service ss -unl #查看53号端口工作与否 host -t A lijing.io host -t SOA lijing.io #测试
配置反向解析
vim /etc/named.rfc1912.zones zone "16.172.in-addr.arpa" IN { type master; file "172.16.zone"; #在172.16.zone文件中 @ 符号表示 16.172.in-addr.arpa }; named-checkconf vim 172.16.zone $TTL 1200 $ORIGIN 16.172.in-addr.arpa. #定义了之后,dns后面补得是这个定义的字符 @ IN SOA lijng.io. naadmin.lijing.io. ( #@符号意义表示区域名 2017052901 3H 20M 1W 1D ) @ IN NS dns1.lijing.io. #dns1.后面补得是16.172.in-addr.arpa 223.253 IN PTR dns1.lijing.io. #前面的应该要与lijing.io.zone中得地址反写 #223.253.16.172.in-addr.arpa. 最左侧完整形式 1.0 IN PTR www.lijing.io. named-checkconf named-checkzone rndc reload dig -x 172.16.0.1 @172.16.253.223 dig -t axfr 16.172.in-addr.arpa @172.12.253.223 chmod o= /var/named/16.172.zone chown :named /var/named/16.172.zone
主从配置
在另外一台主机(IP为172.16.254.20) ll /var/named/ #查看namd目录,named用户对这个目录是否拥有写权限(从服务器的区域文件是自动更新的,所以named对这个目录应该拥有写权限 vim /etc/named.rfc1912.zones G zone "lijing.io" IN { type slave; file "slaves/lijing.io.zone"; masters { 172.16.253.223; }; }; named-checkconf rndc reload tail /var/log/messages #查看日志当中得说明(all zones loaded..) cd /var/named/ dig -t A www.ilinux.io @172.16.254.20
子域授权,区域转发
#在lijing.io下授权两个资源,一个叫做ops,一个叫做dev vim /var/named/lijing.io.zone ops,lijing.io. IN NS dns1.ops.lijing.io. #说明ops子域由子域内的dns1.ops服务器来负责 dev.lijing.io. IN NS dns1.dev.lijing.io. dns1.pos IN A 172.16.254.21 dns1.dev IN A 172.16.254.22 #两台主机能通信,就可以解析出子域 #在父域中先指明切割成什么子域,再指明每个负责人是谁,每个负责人对应信息是什么 #切换到172.16.254.21主机 vim /etc/named.conf listen-on-v6 port 53 { 127.0.0.1; 172.16.254.21; }; //dnssec-enable yes; //dnssec-validation yes; vim /etc/named.rfc1912.zones zone "ops.lijing.io" IN { type master; file "ops.lijing.io.zone"; }; #配置正向解析 cd /var/named/ vim ops.lijing.io.zone $TTL 1h @ IN SOA ops.lijing.io. nsadmin.ops.ilinux.io. ( 2017052901 1H 5M 3D 2H ) @ IN NS dns1 #与上一级dns保持一致,后缀可不写 dns1 IN A 172.16.254.21 www IN A 172.16.0.100 named-checkconf named-checkzone "ops.lijing.io" /var/named/ops.lijing.io.zone systemctl start named.service dig -t A dns1.ops.lijing.io @172.16.254.21 # dig -t NS ops.lijing.io @172.16.25254.21 # dig -t A dns1.lijing.io @172.16.254.21 #解析父域,是不会成功的,因为它会先去找根服务器,而我们是测试环境 vim /etc/named.rfc1912.zones zone "lijing.io" IN { type forward; #表示当我们解析一个域名的时候,不要去找根 forward only; #即使解析不了,也要给出答案,无论解析成功与否 #forward first #表示解析的时候先通过下面的NDS解析,解析不了再去寻找根服务器 forwarders { 172.16.254.21; 172.16.254.22; }; #通过这两台服务器去解析 }; named-checkconf rndc reload dig -t dns1.ilinux.io @172.16.254.21 #解析父域
全局转发:
#无法访问互联网 vim /etc/named.conf options forward only; forwarders { 172.16.0.1; }; named-checkconf rndc reload dig -A www.baidu.com @172.16.253.223 +trace
安全配置
vim /etc/named.conf #在options智商放置acl acl test { 172.16.253.223; 172.16.0.100; }; option #本机的查询操作放置在options当中,表示本机的所有的所负责域的查询则只允许这个地址查询 vim /etc/named.rfc1912.zones #针对某个区域进行定义 zone "lijing.io" { type... file... allow-query { test; }; #表示这个区域只允许哪些查询 }; named-checkconf rndc reload dig -t A www.lijing.io @172.16.253.223 #测试这个能否被223解析 dig -t A www.lijing.io @172.15.0.200 2、允许从服务器做区域传送 vim /etc/named.conf acl slavesrvs { 172.16.254.20; }; vim /var/named.rfc1912.... zone "lijing.io" { type... file... //{ test; }; alow-transfer { slaversrvs; }; #仅仅允许从服务器做区域传送 }; named-checkconf rndc reload #传送:在 254.20上使用 dig -t axfr lijing.io @172.16.253.223
只允许本地网络中客户端递归
vim /etc/named.conf acl localnet { 172.16.0.0/16; 172..0.0.0/8; }; options //recursion yes; allow-recursion { localnet; }; #仅允许本机所在的IP进行递归 named-checkconf rndc reload
禁止它人动态更新站点(区域中得任何人)
vim /etc/named.rfc1912... zone "lijing.io" IN { type master; file "lijing.io.zone"; allow-transfer { slaversrvs; }; allow-update { none; }; };
原创文章,作者:半斤八两,如若转载,请注明出处:http://www.178linux.com/77144
评论列表(1条)
主要介绍了bind的正向解析,反向解析,主从配置,区域转发,子域授权和安全配置等等,内容总结的井然有序,并且非常详细,排版也很好。