一、DNS相关介绍 

  DNS(Domain Name System)域名系统协议,作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用挨个记住IP地址。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议号是udp53。DNS服务器的作用就是就好比通讯录一样,为各种网络程序找到对应目标主机的IP地址或对应的主机域名。每个IP地址都可以有一个主机名,主机名由一个或多个字符串组成,字符串之间用小数点隔开。有了主机名,就不要死记硬背每台IP设备的IP地址,只要记住相对直观有意义的主机名就行了。这就是DNS协议所要完成的功能。

主机名到IP地址的映射有两种方式:
  1、静态映射,每台设备上都配置主机到IP地址的映射,各设备独立维护自己的映射表,而且只供本设备使用;
  2、动态映射,建立一套域名解析系统(DNS),只在专门的DNS服务器上配置主机到IP地址的映射。

在解析域名时,可以首先采用静态域名解析的方法,如果静态域名解析不成功,再采用动态域名解析的方法。可以将一些常用的域名放入静态域名解析表中,这样可以大大提高域名解析效率。正向解析:根据主机名称(域名)查找对应的IP地址(实际应用中最多的),反向解析:根据IP地址查找对应的主机域名(不常用,一般用于搭建邮件服务器时)。

  根据服务器与所提供域名解析记录的关系,将DNS服务器分为不同的角色:
  1、缓存域名服务器,也称为高速缓存服务器,通过向其他域名服务器查询获得域名->IP地址记录,将域名查询结果缓存到本地,提高重复查询时的速度
  2、主域名服务器,特定DNS区域的官方服务器,具有唯一性,负责维护该区域内所有域名->IP地址的映射记录
  3、从域名服务器(通俗一点就是用于备份DNS服务器的),也称为辅助域名服务器其维护的域名->IP地址记录,来源于主域名服务器搭建DNS服务,应用的软件为:BIND(Berkeley Internet Name Daemon)

二、搭建过程
  

 1. 安装必要软件包
[root@SZH1 ~]# yum -y install bind bind-chroot bind-util bind-libs
解释:
bind 提供了域名服务的主要程序及相关文件
bind-utils 提供了对DNS服务器的测试工具程序(如nslookup、dig等)
bind-chroot 为bind提供一个伪装的根目录以增强安全性(将“/var/named/chroot/”文件夹作为BIND的根目录) 2. 修改dns配置文件
修改前先备份
[root@SZH1 ~]# cp -p /etc/named.conf /etc/named.conf.bak // 参数-p表示备份文件与源文件的属性一致。
[root@SZH1 ~]# cat /etc/named.conf
options {
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; }; /*
- 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;
# dnssec-lookaside auto;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.root.key"; managed-keys-directory "/var/named/dynamic"; pid-file "/run/named/named.pid";
session-keyfile "/run/named/session.key";
};
zone "szh.com" IN {
type master;
file "szh.com_zone";
allow-update { none; };
};
zone "110.168.192.in-addr.arpa" IN {
type master;
file "192.168.110.zone";
allow-update { none; }; };include "/etc/named.rfc1912.zones"; 这两个zone我在配置文件里直接上的,我看很多人说要在/etc/named.rfc1912.zones文件中添加,但因为配置文件中存在最后一行,所以同意生效。
保存退出后输入named-checkconf // 检查named.conf是否有语法问题。 3. 查看named进程运行是否正常
[root@SZH1 ~]# systemctl start named // 开启named进程
[root@SZH1 ~]# ps -eaf|grep named // 检查进程
[root@SZH1 ~]# netstat -nult|grep :53 // 检查监听端口 4. 添加正向解析
[root@SZH1 named]# cat szh.com_zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 192.168.110.230
AAAA ::1
ns A 192.168.110.230
vcenter A 192.168.110.231 [root@SZH1 named]# chown :named /var/named/szh.com_zone //授权 named 用户 [root@SZH1 named]# named-checkzone "szh.com" "/var/named/szh.com_zone" //检查区域文件是否正确 5. 添加反向解析
[root@SZH1 named]# cat 192.168.110.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 192.168.110.230
AAAA ::1
230 PTR ns.szh.com.
231 PTR vcenter.szh.com. [root@SZH1 named]# chown :named /var/named/192.168.110.zone //授权 named 用户 [root@SZH1 named]# named-checkzone "110.168.192.in-addr.arpa" "/var/named/192.168.110.zone " //检查区域文件是否正确 6. 重启服务,检查dns是否生效
[root@SZH1 named]# systemctl restart named
[root@SZH1 named]# nslookup
> vcenter.szh.com
Server: 192.168.110.230
Address: 192.168.110.230# Name: vcenter.szh.com
Address: 192.168.110.231
------------------------------------------------------dns配置成功-------------------------------------------------------------

  

CentOS 7下简答搭建DNS服务器的更多相关文章

  1. CentOS 7 下,如何设置DNS服务器

    在CentOS 7下,手工设置 /etc/resolv.conf 里的DNS,过了一会,发现被系统重新覆盖或者清除了.和CentOS 6下的设置DNS方法不同,有几种方式: 1.使用全新的命令行工具 ...

  2. 转: centos7.5 下 coredns+etcd搭建DNS服务器

    coredns简介 CoreDNS是一个DNS服务器,和Caddy Server具有相同的模型:它链接插件.CoreDNS是云本土计算基金会启动阶段项目. CoreDNS是SkyDNS的继任者. Sk ...

  3. centos7.5下coredns+etcd搭建DNS服务器

    coredns简介 安装etcd 安装coredns 设置域名解析 A记录 AAAA记录 CNAME记录 SRV记录 TXT记录 coredns简介 CoreDNS是一个DNS服务器,和Caddy S ...

  4. centos DNS服务搭建 DNS原理 使用bind搭建DNS服务器 配置DNS转发 配置主从 安装dig工具 DHCP dhclient 各种域名解析记录 mydns DNS动态更新 第三十节课

    centos  DNS服务搭建  DNS原理  使用bind搭建DNS服务器 配置DNS转发 配置主从  安装dig工具  DHCP  dhclient  各种域名解析记录  mydns DNS动态更 ...

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

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

  6. centos搭建dns服务器

    前言:搭建dns服务器,dns服务器我就不多说什么了,大家都懂,就是域名解析,就将ip装换为域名,域名就可以理解为类似这样的www.baidu.com网址,接下来我就直接上图了.这里面最重要的是修改u ...

  7. 第一次搭建dns服务器

    CentOS 7 搭建DNS服务器 主要参考的是小左先森的一篇博客:https://blog.51cto.com/13525470/2054121. 1.搭建过程中遇到的几个问题说一下: a.在重启服 ...

  8. Centos7 搭建DNS服务器与原理配置详解

    在搭建我们自己DNS服务器之前,先必须了解下DNS服务器的作用和原理. DNS是在互联网上进行域名解析到对应IP地址的服务器,保存互联网上所有的IP与域名的对应信息,然后将我们对网址的访问,解析成IP ...

  9. Windows Server 2008 R2 搭建DNS服务器(转)

    Windows Server 2008 R2 搭建DNS服务器将本机IP设为首选DNS服务器的地址在dos 下分别输入 nslookup www.mydns.com 和 nslookup 192.16 ...

随机推荐

  1. cin.get()解密

    最近在使用cin.get()函数时遇到了一个迷惑行为,现已解开. 一.cin.get()的用法 char ch; ch = cin.get(); //第1种用法 cin.get(ch); //第2种用 ...

  2. CodeForces - 1255C(构造+模拟)

    题意 https://vjudge.net/problem/CodeForces-1255C 一个长度为n的序列,给你n-2个三元组,比如p=[1,4,2,3,5],那么三元组为[1,4,2],[4, ...

  3. matplotlib画3D图修改X,Y,Z,colorbar的刻度值

    修改X,Y,Z轴的刻度值 from matplotlib.ticker import MultipleLocator,FuncFormatter from mpl_toolkits.mplot3d i ...

  4. 初学树型dp

    树型DP DFS的回溯是树形DP的重点以及核心,当回溯结束后,root的子树已经被遍历完并处理完了.这便是树形DP的最重要的特点 自己认为应该注意的点 好多人都说在更新当前节点时,它的儿子结点都给更新 ...

  5. c# WF 第4节 窗体的事件

    本节内容: 1:事件是什么? 2:窗体事件在哪可以找到 3:事件有哪些 1:事件是什么? 2:窗体事件在哪里 第一种: 第二种: 3:事件有哪些

  6. oracle表连接的优化

    多表连接的三种方式: HASH JOIN,MERGE JOIN,NESTED LOOP NESTED LOOP: 嵌套循环连接,适用于内表数据量较小时.外表返回的每一行都要在内表中检索找到与它匹配的行 ...

  7. 洛谷 P5596 【XR-4】题

    洛谷 P5596 [XR-4]题 洛谷传送门 题目描述 小 X 遇到了一道题: 给定自然数 a,ba,b,求满足下列条件的自然数对 (x,y)(x,y) 的个数: y^2 - x^2 = ax + b ...

  8. Tensorflow加载预训练模型和保存模型(ckpt文件)以及迁移学习finetuning

    转载自:https://blog.csdn.net/huachao1001/article/details/78501928 使用tensorflow过程中,训练结束后我们需要用到模型文件.有时候,我 ...

  9. LG3119 「USACO2015JAN」Grass Cownoisseur

    问题描述 LG3119 题解 显然,如果有个环,一定是全部走完的. 所以缩点,缩出一个 \(\mathrm{DAG}\) . 只能走一次反向,于是在正图和反图上各跑一次,枚举边,取 \(\mathrm ...

  10. Erlang语言基础总结

    1.=操作符(模式匹配) 当看到一个表达式像X = 123时,它的意思看似“将整数123赋予变量X”,但这种解读是不 正确的.=不是一个赋值操作符,它实际上是一个模式匹配操作符.与其他函数式编程语言一 ...