Linux网络DNS服务器原理及搭建 | 您所在的位置:网站首页 › dns原理作用 › Linux网络DNS服务器原理及搭建 |
一、DNS服务器原理1、什么是DNSDNS域名解析服务:是将域名和ip地址相互映射的一个分布式数据库。 正向解析:将域名解析为对应的ip地址。 反向解析:通过ip地址解析对应的域名。 2、DNS服务器查询过程主域名服务器:特定DNS区域的权威服务器,自行建立所负责区域的地址数据文件 从域名服务器:从主服务器或从服务器"复制"(区域传输)解析库副本 递归查询:客户机和本地服务器之间的,对已有服务器依次发送,A可以解析则返回,不能则递归到下一台直到成功或全部都失败返回结果,不需要动手。 迭代查询:本地服务器向其他服务器查询,查询源不变查询目标一直在变,需要多次查询,需要自己动手。 DNS系统分布式数据结构:
DNS查询过程: ①首先查询本机缓存,有则返回结果,没有则进行下一步 ②查询本机hosts文件,有则返回结果,没有则进行下一步 ③查询dns域名服务器,如果是本地服务器有缓存直接返回,没有则进行下一步 ④求助根服务器,根服务器求助顶级服务器--顶级求助二级服务器,如果二级发现是自己主机则返回结果给-本地域名解析服务器返回结果。 hosts文件:优先级最高,只对当前主机有效,可减少dns查询过程从而加快访问速度。 linux系统hosts文件位置:/etc/hosts window系统文件位置:c:Windows\System32\drivers\etc\hosts 二、主备DNS服务器搭建 1、搭建环境2台centos 7.4虚拟机,ip地址在同一网段192.168.10.11和192.168.10.12,关闭防火墙和selinux
#2台虚拟机都操作systemctl stop firewalld #关闭防火墙setenforce 0 #关闭selinux 3、修改主服务器配置文件主配置文件位置:/etc/named.conf 区域配置文件位置:/etc/named.rfc1912.zones 区域数据配置文件模板位置:/var/named/named.localhost
主配置文件修改:vim /etc/named.confoptions {listen-on port 53 {localhost;} #监听localhost地址的UDP 53端口,localhost表示提供dns服务的ip,也可用any表示所有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"; #内存统计文件的位置allow-query { any; }; #允许使用本DNS解析服务的网段或ip地址,也可用any表示所有}
区域配置文件修改:vim /etc/named.rfc1912.zoneszone "localhost" IN { #正向解析配置,localhost表示域名type master #类型为主DNS服务器file “named.loopback”; #指定区域数据文件为named.loopbackallow-update {none;};#表示若主dns故障切换到另一个指定的备用DNS服务器,none表示没有不指定}; zone "1.0.0.127.in-addr.arpa" IN { #反向解析配置,1.0.0.127表示反向的ip,注意要反向写ip地址type master; #类型为主DNS服务器file "named.loopback"; #指定区域数据文件为named.loopbackallow-update { none; }; #表示若主dns故障切换到另一个指定的备用DNS服务器,none表示没有不指定};
制作区域数据配置文件lhj.com:cd /var/named #进入区域数据配置文件模板文件目录cp -p named.localhost lhj.com #名字为区域配置文件内写的名称lhj.com,注意拷贝时加 -p 保留权限,否则启动服务会报错不能识别vim /var/named/lhj.com #修改复制好的区域数据配置文件区域数据配置文件内容:$TTL 1D 表示设置缓存解析结果的有效时间 0 :serial #更新序列号,一般是10以内的证书 1D :refresh #刷新时间,重新下载地址数据的间隔 1H :retry #重试间隔,下载失败后的重试间隔 1W :expire #失效时间,超过该时间仍然无法下载则放弃 @ IN SOA @ rename.invalid. {#@为变量表示当前DNS域名注意必须从根域写起,IN表示使用INTERNET协议,SOA表示起始授权记录,rename.invalid. 表示邮箱 NS @ #NS(nameserver)表示当前区域的DNS服务器的名称为@可修改 A 127.0.0.1 #A表示DNS服务器正向解析的地址为127.0.0.1 需要对应主配置文件内ip地址 AAAA ;;1 #表示ipv6服务器地址,不用可删除 PTR #表示DNS服务器反向解析,需要手动添加,默认没有www IN A 127.0.0.2 #表示www服务的ip地址为127.0.0.2mail IN A 127.0.0.3 #表示mail服务的ip地址为127.0.0.32 IN PTR www.localhost. com #表示dns服务器网段的2 ip对应为www域名3 IN PTR mail.localhost. com #表示dns服务器网段的3 ip对应mail域名}
4、修改备服务器配置文件 主区域配置文件位置:/etc/named.com 区域配置文件位置:/etc/named.rfc1912.zones 区域数据配置文件备份主服务器文件位置:/var/named/salves目录下
备用服务器区域配置文件:zone "lhj.com" IN { #正向解析域名与主服务器相同type slave; #类型为备服务器file "slaves/lhj.com"; #文件位置为同步主服务的区域数据文件位置/var/named/slaves/lhj.commasters { 192.168.30.11; }; #主服务地址为192.168.30.11};zone "30.168.192.in-addr.arpa" IN { #反向解析ip与主服务器相同type slave; #类型为备服务器file "slaves/lhj.com"; #文件位置为同步主服务的区域数据文件位置/var/named/slaves/lhj.commasters { 192.168.30.11; }; #主服务地址为192.168.30.1 5、启动服务开启主备服务器的dns服务并查看备服务器中是否已同步主服务器的区域数据配置文件 主备均需执行:systemctl start named #启动主备DNS服务器备服务器执行:cd /var/named/slaves #进入备服务器同步主服务器区域数据配置文件目录ls #查看该目录下是否有同步主服务器区域数据配置文件lhj.com
6、验证结果①首先将主服务和备服务器的ip地址都加到各自的dns服务器配置文件(/etc/resolve.conf)中,注意主服务器必须在备服务器上方,如果有公网的dns服务器则需要将本地服务器放在公网服务器上方。读取/etc/resolve.conf文件的顺序是从上到下,可以解析则停止。 主备均执行:vim /etc/resolv.conf #编辑dns服务器配置文件内容:nameserver 192.168.30.11 #添加本地主dns服务器nameserver 192.168.30.12 #添加本地备dns服务器 ② /etc/resolve.conf配置文件添加完毕后在俩台服务器分别进行正反dns解析,查看是否为配置的地址和域名。
③关闭主服务器dns服务进行正反向解析查看是否会切换到备服务进行解析。 主服务器执行:systemctl stop named #关闭主服务器dns服务
7、排错思路①首先判断主备服务防火墙和selinux是否都已经关闭 ②查看主备服务器中/etc/resolv.conf是否添加主备服务器地址且主服务器在最上方 ③查看主配置文件中网段范围是否在本机范围内 ④查看区域配置文件中配置是否有问题,重点查看file中写的文件名是否与区域数据配置文件创建的一致 ⑤查看区域配置文件是否有配置错误或不对应,重点查看是否都有写根域 .不能遗忘 .根域。 ⑥如果配置文件都没问题启动服务报错,实时查看/var/log/messages日志的报错。 |
CopyRight 2018-2019 实验室设备网 版权所有 |