目录

一、DNS服务器原理

1、什么是DNS

2、DNS服务器查询过程

二、主备DNS服务器搭建

1、搭建环境

2、检查安装DNS服务

3、修改主服务器配置文件

4、修改备服务器配置文件

5、启动服务

6、验证结果

7、排错思路

一、DNS服务器原理
1、什么是DNS
DNS域名解析服务:是将域名和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.conf
options {
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.zones
zone "localhost" IN { #正向解析配置,localhost表示域名
type master #类型为主DNS服务器
file “named.loopback”; #指定区域数据文件为named.loopback
allow-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.loopback
allow-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.2
mail IN A 127.0.0.3 #表示mail服务的ip地址为127.0.0.3
2 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.com
masters { 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.com
masters { 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日志的报错。

Linux网络第三章:DNS服务器原理及搭建的更多相关文章

  1. Linux网络编程(三)

    Linux网络编程(三) wait()还是waitpid() Linux网络编程(二)存在客户端断开连接后,服务器端存在大量僵尸进程.这是由于服务器子进程终止后,发送SIGCHLD信号给父进程,而父进 ...

  2. centos6.5环境DNS-本地DNS服务器bind的搭建

    centos6.5环境DNS-本地DNS服务器bind的搭建 域名系统(英文:Domain Name System,缩写:DNS)是因特网的一项服务.它作为将域名和IP地址相互映射的一个分布式数据库, ...

  3. Linux网络服务第二章DHCP原理与配置

    1.笔记 服务端端口:67 客户端端口:68 dhcliemt -r:释放IP地址 dhcliemt -d:重新获取IP地址 :.,$ s/190.168.200 / 192.168.100 /g 从 ...

  4. DNS服务器原理

    19.1 什么是DNS   主机名自动解析为 IP 就很重要!那就是 DNS.   19.1.1 用网络主机名取得IP的历史渊源   单一档案处理上网的年代: /etc/hosts   利用某些特定的 ...

  5. Linux网络服务第一章Linux网络基础设置

    1.笔记 systenctl restart network:重启网卡网络服务 bash:刷新主机名称 netstat:查看网络状态 route -n:不做地址解析 mii-tool eno16777 ...

  6. DNS服务器原理介绍(一)

    DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串.通过主机名,最终 ...

  7. [转]DNS服务器原理详解与Centos6.x下搭建DNS服务器

    转自:http://blog.it985.com/8958.html DNS 数据库的记录:正解,反解, Zone 的意义 通过DNS解析过程详解这篇文章,我们知道了要想访问www.zmit.cn,最 ...

  8. Linux 小知识翻译 - 「DNS服务器」

    这次聊聊「DNS服务器」. DNS(Domain Name System)服务器,也被称为域名服务器. 因为使用互联网的时候,必须要指定DNS服务器,所以你一定听过DNS这个名字吧. 那么,这个DNS ...

  9. DNS服务器原理简述、搭建主/从DNS服务器并实现智能解析

    1. TLD:Top Level Domain 顶级域名 组织域:.com, .net, .org, .gov, .edu, .mil 国家域:.iq, .tw, .hk, .jp, .cn, ... ...

  10. Linux下DNS服务器的基本搭建

    技术交流群:286866978 安装与配置 1. 装载光驱 2. 卸载光驱 3. 将安装包放在合适的文件夹并解压(有的更换光盘需要重新装载) 4. 安装 5. 重定向配置文件 6. 配置named.c ...

随机推荐

  1. 二进制安装docker-20.10.9

    二进制包下载地址:https://download.docker.com/linux/static/stable/x86_64/  #解压tar xf docker-20.10.9.tgz #拷贝二进 ...

  2. keil调试教程

    点击跳转 如果开启调试就提示弹框错误2k,说明你没有破解你的keil,网上自行下载注册机. 调试一定要对应自己板子的晶振,否则当你测试你的延时实际时间时,keil里的sec会不一样,甚至离谱.

  3. ENGG1340 Computer Programming II

    课程内容笔记,自用,不涉及任何 assignment,exam 答案 Notes for self use, not included any assignments or exams Module ...

  4. win10 优化关键字

    powercfg -duplicatescheme e9a42b02-d5df-448d-aa00-03f14749eb61 通知和操作 自动维护 存储 个性化 透明效果 启动 登录选项 更新或重启后 ...

  5. flask框架的使用

    在学习了DJango后,又学习FLASK框架,刚入手的感觉就是好简单啊,简单的7行代码,就能搭建一个简单的WEB服务器. from flask import Flask app = Flask(__n ...

  6. (0303)《计算机体系结构 量化研究方法》PDF

    (01) https://blog.csdn.net/konghhhhh/article/details/106828402  存储器相关 (1) https://blog.csdn.net/iva_ ...

  7. linux扩展与缩减lv大小

    在线扩展lv 给vg添加新的pv并扩展lv大小 将新加磁盘生成pv pvcreate /dev/sdd 将pv加入vg vgextend vg_name /dev/sdd 先扩展lv物理边界,大小增加 ...

  8. winform高dpi问题探索

    ​ winform的高dpi适应问题由来已久,属于一个历史遗留问题.主要是由于winform对不同尺寸.不同分辨率的屏幕适配不足造成的.接下来我们简单说一下如何解决,最后我们探索一下解决此问题的原理. ...

  9. python存储xml格式数据

    例子 import xml.dom.minidom # 在内存中创建一个空的文档 doc = xml.dom.minidom.Document() # 创建一个根节点Managers对象 root = ...

  10. BUUCTF-[极客大挑战 2019]Http

    一道考察http请求头X-Forwarded-For字段和Referer字段User-Agent字段的题目 一.基础知识 X-Forwarded-For(XFF)又名XFF头 1)概述:X-Forwa ...