本文共 14548 字,大约阅读时间需要 48 分钟。
简介:
简介: DNS用于实现域名和IP地址的相互转换。当在客户机的浏览器中输入要访问的主机名(域名)时,就会触发一个IP地址的查询请求,该请求就会自动发送到默认的DNS服务器,DNS服务器就会从数据库中查询该主机名所对应的的IP地址,并将找到的IP地址作为查询结果返回。浏览器获得IP地址后,就根据IP地址在网络中定位所要访问的资源。 DNS服务器分为高速缓存服务器 主服务器 辅助服务器 DNS的区域可以分为:向所搜区域和反向所搜区域,正向所搜区域就是DNS服务器要实现的主要功能,它根据计算机的域名解析出相应的IP地址;而反向搜索就是根据计算机的IP地址解析出它的DNS名称。 使用bind作为服务器软件的DNS服务器约占DNS服务器的九成。
配置文件概括
/var/named/chroot/etc/named.conf
这是DNS服务器的主配置文件,在该文件中可以设置同用参数来是实现对DNS服务器的配置。
/var/named/chroot/var/named/named.ca
该文件是根域DNS服务器指向的文件,利用该文件可以让DNS服务器找到根服务器并初始化DNS的缓冲区。用户一般不要随便修改该文件。
/var/named/chroot/etc/named.rfc1912.zones
该文件是named.conf的辅助区域配置文件。除了根区域外,其他所有区域的配置建议在named.rfc1912.zones文件中配置,主要是为了方便管理,不轻易破坏主文named.conf
(4)区域配置文件 分为两类:/var/named/chroot/var/named/named.localhost
本机主机正向解析文件
/var/named/chroot/var/named/named.loopback
本机反向解析文件
对于DNS主配置文件,在bind9中有特殊的约定,系统在安装后,并没有启用chroot机制,只有/etc/named.conf文件,没有建立/var/named/chroot/etc/named.conf文件。启动服务后自动建立。
我在实验时并没有发现/var/named/chroot/etc/目录中有named.conf文件,推测是需要自己复制过来。
配置文件解析
主配置文件/etc/named.conf
//// 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.//// See the BIND Administrator's Reference Manual (ARM) for details about the// configuration located in /usr/share/doc/bind-{version}/Bv9ARM.htmloptions { listen-on port 53 { 127.0.0.1; }; #指定服务侦听的IP地址和端口 listen-on-v6 port 53 { ::1; }; #ipv6监听端口 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"; recursing-file "/var/named/data/named.recursing"; secroots-file "/var/named/data/named.secroots"; allow-query { localhost; }; #指定允许查询的机器列表 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; /* Path to ISC DLV key */ 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"; #指定该区域的数据库文件为named.ca};include "/etc/named.rfc1912.zones"; #定义named.conf辅助区域配置文件include "/etc/named.root.key";
options配段
options字段主要用来设置全局选项,如定义文件的默认保存目录等。 directory:用来定义服务器的区域文件的默认路径 区域声明 区域声明使用zone,基本格式为: zone “区域名称” IN { type 配置项; file 配置项; 其他配置项; }; 在zone配置段中通常使用一下两个配置项命令 (1)type:设置区域的类型一般有master(主DNS服务器) slave(辅助DNS服务器) hint(根区域服务器)三种 (2)file:指定区域文件的名称,应在文件名两边使用双引号注意以上配置语句除了第一句外均以“;”结束
正向区域配置文件/var/named/named.localhost
$TTL 1D@ IN SOA @ rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS @ A 127.0.0.1 AAAA ::1
(1) $TTL 1D
该行用来设置域的默认生存时间TTL,时间为天。1D代表1天,也可以用秒表示。 (2) @ IN SOA @ rname.invalid. ( @ 符号表示当前的域 也就是在zone中配置定义的域名;IN代表地址类别;SOA是主域名服务器区域文件中一定要设置的,用于开始权威的域名信息记录。 SOA后的 @ 代表DNS的主机名;再之后就是填写域名服务器管理员的e-mail的地址,格式从ranme@invalid. 变为 ranme.invalid. ranme.invalid. 是有点的 自己在这吃过亏 (3) 接下来括号中的值位于3~7行,其含义是: 分好为注释符,之后的文字是用于对该行的数值进行注释说明。 serial行前面的值代表该区域文件的版本号或序列号。 refresh行前面的值代表更新时间的周期。 retry行前面的值代表在更新出现通信故障时的重试时间 expire行前面的值代表重新执行更新动作后仍然无法完成更新任务而终止更新的时间 (4) NS @ 指定域名服务器,NS之后放置当前域名服务器的名称,@代表当前域名服务器。 (5) A 127.0.0.1 地址记录,该条记录的含义就是将localhost解析为127.0.0.1 (6) AAAA ::1 表示ipv6的地址记录。将localhost解析为::1反向区域配置文件/var/named/named.loopback
$TTL 1D@ IN SOA @ rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS @ A 127.0.0.1 AAAA ::1 PTR localhost.
该文件中的内容与正向区域文件基本相同,只是多了最后一行内容。
最后一行的RTP用于定义一个RPT记录,即定义一条反向解析记录。该行的localhost,代表将127.0.0.1这个地址解析为localhost域名。实验测试
安装DNS服务器程序
yum install -y bind*
服务器对应的IP地址以及域名
DNS服务器 dns.tengyi.com.cn <-----> 10.67.65.160Web服务器 www.tengyi.com.cn <-----> 10.67.65.15FTP服务器 ftp.tengyi.com.cn <-----> 10.67.65.30邮件服务器 mail.tengyi.com.cn <-----> 10.67.65.16
配置DNS服务器网卡
配置DNS服务器网卡的IP地址为10.67.65.160
编辑/etc/named.conf主配置文件
options { listen-on port 53 { any; }; #更改为“any”,表示侦听任何IP地址的53号端口 listen-on-v6 port 53 { any; }; #ipv6侦听端口 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"; recursing-file "/var/named/data/named.recursing"; secroots-file "/var/named/data/named.secroots"; allow-query { any; }; #允许所有机器查询DNS服务 /* - 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; /* Path to ISC DLV key */ 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";
编辑/etc/named.rfc1912.zones辅助区域配置文件
在文件尾部添加如下内容zone "tengyi.com.cn" IN { #定义正向解析区域 type master; #设置为主DNS服务器 file "tengyi.com.cn.zone"; #设置区域配置文件名称 allow-update { none; };};zone "65.67.10.in-addr.arpa" IN { #定义反向解析区域 type master; file "10.67.65.zone"; #设置区域配置文件名称 allow-update { none; };};
file “tengyi.com.cn.zone”; #设置区域配置文件名称
file “10.67.65.zone”; #设置区域配置文件名称 在辅助区域设置的文件夹名称,在/var/named目录下一定要有对应的数据文件。配置正向区域文件/var/named/tengyi.com.cn.zone
在/var/named/目录下创建正向区域文件,可以将模板named.localhost复制过来。cd /var/namedcp -p /var/named/named.localhost tengyi.com.cn.zone$TTL 1D@ IN SOA dns.tengyi.com.cn. rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS dns.tengyi.com.cn. A 127.0.0.1 AAAA ::1 MX 10 mail.tengyi.com.cn #指定区域的,X记录dns A 10.67.65.160 #指定域名为dns.tengyi.com.cn的A记录www A 10.67.65.15 #指定域名为www.tengyi.com.cn的A记录ftp A 10.67.65.30 #指定域名为ftp.tengyi.com.cn的A记录mail A 10.67.65.16 #指定域名为mail.tengyi.com.cn的A记录
配置反向区域文件/var/named/10.67.65.zone
cp -p /var/named/named.loopback 10.67.65.zonevim 10.67.65.zone$TTL 1D@ IN SOA dns.tengyi.com.cn. rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS dns.tengyi.com.cn. A 127.0.0.1 AAAA ::1 MX 10 mail.tengyi.com.cn PTR localhost. ######一下四条记录为反向解析记录########160 PTR dns.tengyi.com.cn15 PTR www.tengyi.com.cn30 PTR ftp.tengyi.com.cn16 PTR mail.tengyi.com.cn
160 PTR dns.tengyi.com.cn 15 PTR www.tengyi.com.cn 30 PTR ftp.tengyi.com.cn 16 PTR mail.tengyi.com.cn
注意它们的头部都是IP地址的尾部,不可以不写。自己就曾在这儿犯错
== PTR localhost. 不能缺少==配置DNS客户端
修改客户端的网卡配置文件,将DNS地址改为10.67.65.160vim /etc/sysconfig/network-scripts/ifcfg-ens33
重启客户端
reboot
使用命令重启DNS服务
systemctl restart named
验证
使用bind工具排错
named-checkconf用于检测主配置文件/etc/named.conf,如果配置有错误将会给出提示,配置正确则无任何提示。
named-checkconf /etc/named.conf
如图:
named-checkzone用于检测区域配置文件,如果有错误将给予提示,并报告错误。
named-checkzone tengyi.com.cn tengyi.com.cn /var/named/tengyi.com.cn.zone
辅助DNS服务器
准备再配置一台辅助DNS服务器,其IP地址设置为192.168.89.130.首先需要在服务器中安装BIND包,然后修改主配置文件即可,不需另外创建每个域名对应的区域配置文件。
修改主服务器的named.conf文件
添加一下内容options { directory"/var/named"; allow-transfer { 192.168.89.130; }; };
注意:也可以将allow-transfer中的IP地址写为any
编辑主服务器的正向解析文件cd /var/named/tengyi.con.cn.zone$TTL 1D@ IN SOA dns.tengyi.com.cn. rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS dns.tengyi.com.cn. NS slave.tengyi.com.cn. #添加辅助DNS的NS记录 A 127.0.0.1 AAAA ::1 MX 10 mail.tengyi.com.cndns A 10.67.65.160www A 10.67.65.15ftp A 10.67.65.30mail A 10.67.65.16slave A 192.168.89.130 #添加辅助DNS的A的记录
编辑主服务器的反向区域文件
vim /var/named/10.67.65.zone$TTL 1D@ IN SOA dns.tengyi.com.cn. rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS dns.tengyi.com.cn. NS slave.tengyi.com.cn. #添加辅助DNS的NS记录 A 127.0.0.1 AAAA ::1 MX 10 mail.tengyi.com.cn PTR localhost.160 PTR dns.tengyi.com.cn15 PTR www.tengyi.com.cn30 PTR ftp.tengyi.com.cn16 PTR mail.tengyi.com.cn130 PTR slave.tengyi.com.cn. #添加辅助DNS的PTR的PTR记录
在需要配置辅助DNS的服务器上安装BIND包
与主服务器上安装的过程一样,不再赘述。
在辅助服务器上启动DNS服务
systemctl restart named
在辅助DNS服务器上编辑named.conf文件
vim /etc/named.confoptions { 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"; recursing-file "/var/named/data/named.recursing"; secroots-file "/var/named/data/named.secroots"; allow-query { any; }; recursion yes; dnssec-enable yes; dnssec-validation yes; /* Path to ISC DLV key */ 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";
在辅助DNS服务器上编辑named.rfc1912.zones文件
zone "tengyi.com.cn" IN { type slave; #指定区域类型为辅助区域 file "slaves/tengyi.com.cn.zone"; #设置保存区域文件的位置为/var/named/slaves目录 masters { 10.67.65.160; }; #指定该辅助区域对应的主DNS服务器的IP地址 };zone "65.67.10.in-addr.arpa" IN { type slave; file "slaves/10.67.65.zone"; masters { 10.67.65.160; };};
查看/var/named/slaves目录
ls /var/named/slaves/
重启服务
重启服务后再次查看/var/named/slaves目录可以看到内容。注意:如果主服务器的区域文件没有复制过来,应该是防火墙或者selinux没关,如果DNS服务器上记录信息发生变更,一定要将区域文件中的‘serial’参数+1 并使用如下命令重新加载named,以使辅助DNS服务器能够同步主DNS服务的记录信息
简单DNS负载均衡
通过将DNS进行配置将访问FTP服务器的用户进行分流,以达到均衡负载的目的。后添加的两台FTP服务器的IP地址为10.67.65.245和10.67.65.246,这三台FTP服务器统一使用域名ftp.tengyi.com.cn
对于DNS的主配置文件不需要进行任何配置,只需要修改区域配置文件tengyi.com.cn.zone和10.67.65.zone即可。
修改正向区域文件
vim /var/named/tengyi.com.cn.zone$TTL 1D@ IN SOA dns.tengyi.com.cn. rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS dns.tengyi.com.cn. A 127.0.0.1 AAAA ::1 MX 10 mail.tengyi.com.cndns A 10.67.65.160www A 10.67.65.15ftp A 10.67.65.30 #原FTP服务器的A记录mail A 10.67.65.16#后面添加的两台ftp服务器的A记录ftp A 10.67.65.245ftp A 10.67.65.246
修改反向区域文件
同样在反向区域文件10.67.65.zone中添加两行245 PTR ftp.tengyi.com.cn246 PTR ftp.tengyi.com.cn
重启测试
host ftp.tengyi.com.cn
DNS转发
如果DNS服务器配置为DNS转发模式,其实就是创建成缓存服务器。对于DNS转发服务器,与辅助DNS服务器类似,只需要简单的配置named.conf文件,不需要单独配置区域文件。与辅助服务器不同的是,在DNS转发服务器上不需要zone语句设置区域。
获取DNS服务器IP地址
要配置DNS转发服务器,首先必须要获取一个或多个有效的DSN服务器IP地址。本例的DNS转发器设置为61.128.192.68和61.128.128.68 编辑named.conf文件options { directory "/var/named"; forwarders { 61.128.192.68;61.128.128.68; }; #设置DNS转发服务器的IP地址 forward first; #设置DNS转发的工作方式为first };
重启DNS服务
转载地址:https://liushiya.blog.csdn.net/article/details/89918266 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!