Linux基础DNS服务器原理及搭建

DNS是域名系统,用于将域名映射到IP地址。文章详细介绍了DNS的正向和反向解析,分布式数据结构,以及递归和迭代查询模式。此外,还阐述了如何在CentOS环境下搭建主备DNS服务器,包括配置文件修改、区域数据创建和服务启动等步骤。
摘要由CSDN通过智能技术生成

DNS域名解析服务

DNS的定义

DNS是"域名系统"的英文缩写。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。
DNS服务使用TCP和UDP的53端口,TCP的53端口用于连接DNS服务器,UDP的53端口用于解析DNS。
每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。

DNS系统的作用

正向解析:根据域名查找对应的ip地址
反向解析:根据ip地址查找对应的域名
DNS系统的分布式数据结构
在这里插入图片描述

  • 域名结构
    http: //www.sina.com.cn./
    http://主机名.子域.二级域.顶级域 根域/

树状结构最顶层称为根域,用"."表示,相应服务器称为根服务器,整个域名空间解析权都归根服务器所有,但根服务器无法承担庞大的负载委派"机制,在根域下设置了一些顶级域,然后将不同顶级域解析权分别委派给相应的顶级域服务器,如将com域的解析权委派给Com域服务器.但凡根服务器收到以com结尾的域名解析请求,都会转发给com域服务器,同样道理,为了减轻顶级域的压力,又下设了若干二级域,二级域又级域或主机。

  • 根域

位于域名空间最顶层,一般用一个“,"表示

  • 顶级域

一般代表一种类型的组织机构或国家地区,如 net(网络供应商)、.com(工商企业)、.org(团体组织)、.edu(教育机构)、.gov(政府部门)、.cn(中国国家域名)

  • 二级域

用来标明顶级域内的一个特定的组织,国家顶级域下面的二级域名由国家网络部门统一管理.如 .cn 顶级域名下面设置的二级域名: .com.cn、.net.cn、.edu.cn

  • 子域

二级域下所创建的各级域统称为子域,各个组织或用户可以自由申请注册自己的域名

  • 主机

主机位于域名空间最下层,就是一台具体的计算机,
如www、mail都是具体的计算机名字,www.sina.com.cn.、mail.sina.com.cn.来表示,这种表示方式称为FQDN。

DNS解析模式

在这里插入图片描述

  • 递归查询模式

当客户端向本地DNS服务器发起查询请求时,DNS先查询自己有没有缓存记录,如果没有,则向根DNS发起查询请求,但是根DNS也不知道域名对应的IP地址,所以告诉它去下一级DNS服务器查询,直至查询到对应的IP地址,返回给客户端,并把查询记录进行缓存。

  • 迭代查询模式

当DNS服务器收到查询请求时,不直接回复查询结果,而是告诉它去另一台DNS服务,客户端在向另一台DNS服务器发起查询请求,直至查到对应的IP。

  • DNS查询过程:

①首先查询本机缓存,有则返回结果,没有则进行下一步

②查询本机hosts文件,有则返回结果,没有则进行下一步

③查询dns域名服务器,如果是本地服务器有缓存直接返回,没有则进行下一步

④求助根服务器,根服务器求助顶级服务器–顶级求助二级服务器,如果二级发现是自己主机则返回结果给-本地域名解析服务器返回结果。

hosts文件:优先级最高,只对当前主机有效,可减少dns查询过程从而加快访问速度。

linux系统hosts文件位置:/etc/hosts

window系统文件位置:c:Windows\System32\drivers\etc\hosts

主备DNS服务器搭建

构建DNS域名解析服务步骤

  • 搭建环境

2台centos 7.4虚拟机,ip地址在同一网段192.168.190.10和192.168.190.20,关闭防火墙和selinux

 - 2台虚拟机都操作
 - systemctl  stop  firewalld     #关闭防火墙
 - setenforce  0       #关闭selinux
  • 安装bind软件包

 - 2台虚拟机都操作
 - rpa -q bind  #检查是否安装dns服务
 - yum  -y install  bind  #安装dns服务
  • 修改主服务器配置文件

主配置文件位置:/etc/named.conf

区域配置文件位置:/etc/named.rfc1912.zones

区域数据配置文件模板位置:/var/named/named.localhost


主配置文件修改:
 1. vim /etc/named.conf
 2. options {
 3. listen-on port 53 {localhost;}  #监听localhost地址的UDP
    53端口,localhost表示提供dns服务的ip,也可用any表示所有
 4. listen-on-v6 port 53 {::1;}   #ipv6地址设置,若不适用可注释或删除
 5. directory "/var/named";       #区域数据文件默认的存放位置
 6. dump-file"/var/named/data/cache_dump.db";     #域名缓存数据库文件的位置
 7. statistics-file "/var/named/data/named_stats.txt";    #状态统计文件的位置
 8. memstatistics-file "/var/named/data/named_mem_stats.txt";   
    #内存统计文件的位置
 9. allow-query { any; };  #允许使用本DNS解析服务的网段或ip地址,也可用any表示所有 }

在这里插入图片描述

区域配置文件修改:

 1. vim /etc/named.rfc1912.zones
 2. zone  "localhost"  IN {         #正向解析配置,localhost表示域名
 3. type  master                    #类型为主DNS服务器
 4. file “named.loopback”;         #指定区域数据文件为named.loopback
 5. allow-update {none;}#表示若主dns故障切换到另一个指定的备用DNS服务器,none表示没有不指定 };
 6. zone "1.0.0.127.in-addr.arpa" IN { #反向解析配置,
    1.0.0.127表示反向的ip,注意要反向写ip地址
 7. type master;            #类型为主DNS服务器
 8. file "named.loopback";  #指定区域数据文件为named.loopback
 9. allow-update { none; }; #表示若主dns故障切换到另一个指定的备用DNS服务器,none表示没有不指定 };

在这里插入图片描述

制作区域数据配置文件cx.com:

 - cd /var/named     #进入区域数据配置文件模板文件目录
 - cp -p named.localhost cx.com #名字为区域配置文件内写的名称cx.com,注意拷贝时加 -p
    保留权限,否则启动服务会报错不能识别
 - vim  /var/named/cx.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域名
     
     }

在这里插入图片描述

  • 修改备服务器配置文件

主区域配置文件位置:/etc/named.conf

区域配置文件位置:/etc/named.rfc1912.zones

区域数据配置文件备份主服务器文件位置:/var/named/salves目录下

备用服务器区域配置文件:

 1. zone "cx.com" IN {    #正向解析域名与主服务器相同
 2. type slave;    #类型为备服务器
 3. file "slaves/cx.com";  #文件位置为同步主服务的区域数据文件位置/var/named/slaves/cx.com
m
 4. asters { 192.168.190.10; }; #主服务地址为192.168.190.10 };
 5. zone "190.168.192.in-addr.arpa" IN {    #反向解析ip与主服务器相同
 
 6. type slave;       #类型为备服务器
 7. file "slaves/cx.com";  #文件位置为同步主服务的区域数据文件位置/var/named/slaves/cx.com
 8. masters { 192.168.190.10; };  #主服务地址为192.168.190.10

在这里插入图片描述
在这里插入图片描述

  • 启动服务

开启主备服务器的dns服务并查看备服务器中是否已同步主服务器的区域数据配置文件
在这里插入图片描述
在这里插入图片描述

  • 验证结果

①首先将主服务和备服务器的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服务进行正反向解析查看是否会切换到备服务进行解析。
在这里插入图片描述
在这里插入图片描述

  • 排错思路

①首先判断主备服务防火墙和selinux是否都已经关闭

②查看主备服务器中/etc/resolv.conf是否添加主备服务器地址且主服务器在最上方

③查看主配置文件中网段范围是否在本机范围内

④查看区域配置文件中配置是否有问题,重点查看file中写的文件名是否与区域数据配置文件创建的一致

⑤查看区域配置文件是否有配置错误或不对应,重点查看是否都有写根域 .不能遗忘 .根域。

⑥如果配置文件都没问题启动服务报错,实时查看/var/log/messages日志的报错。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值