===============================================

2017/12/6_第2次修改                       ccb_warlock

2017/12/6:补全部署内容

===============================================

有些时候作为内部调试或测试,需要指定某些域名不是指向网上的环境,而是指向我们需要指定的ip(举例,就像我们可能需要www.baidu.com不是指向115.239.210.27,而是指向内网的192.168.1.1)。

作为个人的电脑,可以考虑修改host文件(C:\Windows\System32\drivers\etc),但是一旦类似域名映射的需求多了、使用人数多了之后,搭建一个DNS服务相对来说更加省事,因为大家只需要修改网络连接的首选DNS服务器ip即可。

我最初学习搭建DNS服务器是因为项目的前端跳转根据域名而来,如果不修改域名的映射很多跳转会从测试环境跳转到正式环境,导致一些功能使用出现问题。由于每次修改host文件费时费力,,所以决定搭建DNS服务器来解决测试时页面跳转的这个问题。

由于我们仅仅预要DNS的功能,所以首选还是使用linux来搭建DNS服务更好(因为可以减小公司服务器的硬件开销),我更熟悉centos故还是学习整理centos搭建DNS的方法。

下面记录如何搭建一个能将test.com解析为192.168.5.1的DNS服务器。


一、环境准备

操作系统:centos7(minimal,www.centos.org下载的包是CentOS-7-x86_64-Minimal-1708.iso)

CPU:1核

内存:512M

 1.1 更换阿里yum(个人习惯)

1)安装wget

yum install -y wget

2)备份默认的yum

mv /etc/yum.repos.d /etc/yum.repos.d.backup

3)创建新的yum目录

mkdir /etc/yum.repos.d

4)下载阿里yum到该目录下

wget -O /etc/yum.repos.d/CentOS-Base.repo

5)重建缓存

yum clean all
yum makecache

6)升级所有包(改变软件设置和系统设置,系统版本内核都升级,故需要几分钟耐心等待)

yum update -y

 1.2 安装vim(个人习惯)

yum install -y vim

 二、部署bind

 2.1 安装bind

yum -y install bind

 2.2 备份named.conf

cp /etc/named.conf /etc/named.conf.backup

 2.3 修改named.conf

vim /etc/named.conf

根据下面的内容修改,wq保存。

options {
# 监听在主机的53端口上。any代表监听所有的主机
listen-on port 53 { any; };
listen-on-v6 port 53 { ::1; }; # 如果此档案底下有规范到正反解的zone file 档名时,该档名预设应该放置在哪个目录底下
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"; # 谁可以对我的DNS服务器提出查询请求。any代表任何人
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;
forwarders {
# 指定上层DNS服务器(网关)
192.168.1.1;
}; /* 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";

 2.4 增加zone信息

vim /etc/named.rfc1912.zones

由于本次需要添加test.com域名的解析,故需要添加下面的内容,wq保存。

zone "test.com" IN {
# 定义要解析主域名
type master;
file "test.com.zone";
# 具体相关解析的配置文件保存在 /var/named/test.com.zone 文件中
};

 2.5  创建test.com.zone

vim /var/named/test.com.zone

由于本次需要解析test.com、www.test.com、abc.test.com,添加下面的内容,wq保存。

$TTL 1D
@ IN SOA test.com. root (
1 ; serial
1D ; refresh
1H ; retry
1W ; expire
0 ) ; minimum IN NS test.com
IN A 192.168.5.1
www IN A 192.168.5.1
print IN A 192.168.5.1

 2.6 修改该文件权限

chown root:named test.com.zone

 2.7 重启 

systemctl restart named

 2.8 设置开机启动

systemctl enable named

 2.9 防火墙开放53、953端口

firewall-cmd --add-port=53/tcp --permanent
firewall-cmd --add-port=53/udp --permanent
firewall-cmd --add-port=953/tcp --permanent
firewall-cmd --reload

 2.10 关闭selinux

修改SELNUX的值,wq保存。

SELINUX=disabled

重启OS

shutdown -r now

接着将电脑网络适配器的首选DNS配成192.168.1.1,通过cmd来ping test.com、www.test.com、abc.test.com这些域名,可以发现返回的已经是我们配置的192.168.5.1。

参考资料:

1. http://blog.csdn.net/pzlsun/article/details/52497839

2. http://blog.csdn.net/southi/article/details/51674033

centos7 部署dns服务器的更多相关文章

  1. Linux 自动化部署DNS服务器

    Linux 自动化部署DNS服务器 1.首先配置主DNS服务器的IP地址,DNS地址一个写主dns的IP地址,一个写从dns的地址,这里也可以不写,在测试的时候在/etc/resolv.conf中添加 ...

  2. CentOS7设置DNS服务器

    CentOS7设置DNS服务器 在CentOS7下,手工设置 /etc/resolv.conf 里的DNS,过了一会,发现被系统重新覆盖或者清除了.CentOS7和CentOS6下的设置DNS方法不一 ...

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

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

  4. CentOS7搭建DNS服务器

    DNS是域名系统(Domain Name System)的缩写,它的作用是将主机名解析成IP(正向解析),从IP地址查询其主机名(反向解析). DNS的工作原理(1)客户机发出查询请求当被询问到有关本 ...

  5. Centos7 设置DNS 服务器

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

  6. centOS7配置DNS服务器

    世上无难事只怕有心人,遇事千万千万不要抵触,消极的情绪是失败之母,一点一滴,踏踏实实是通往幸福的捷径. 历经激动,受挫,抵触和鼓励以及征服,终于配好了让我欢喜让我忧的dns.在这里记录下来,希望能够给 ...

  7. 如何将centos7作为DNS服务器

    简单来说,dns服务器是起到缓存的作用.比如说我们第一次dig www.baidu.com的时候,dns服务器因为没有解析过百度地址,所以它需要向上一级dns服务器进行查询,然后查询结果会缓存在这台d ...

  8. 云服务器Centos7部署Tomcat服务器

    目录 部署Tomcat服务器 1.安装JDK1.8 2.安装与启动tomcat 配置安全组(8080端口) 参考文章 部署Tomcat服务器 1.安装JDK1.8 JDK下载地址:https://ww ...

  9. Centos7部署ntp服务器同步时间以及直接将本地时间同步为北京时间

    一.查看配置 查看时区列表: timedatectl list-timezones|grep Asia 查看当前时间: date 查看当前设置: [root@localhost ~]# timedat ...

随机推荐

  1. 玩转html

    简介 CSS 是什么? CSS是Cascading Style Sheets的简称,中文称为层叠样式表. 作用 能够对网页中元素位置的排版进行像素级精确控制,支持几乎所有的字体字号样式,拥有对网页对象 ...

  2. ctags-vim代码间快速跳转

    ctags-vim代码间快速跳转 1.说明 在Linux环境下使用vim进行驱动程序编写和维护的时候,会经常需要调用Linux内核的函数或宏定义,在驱动程序和kernel代码之间频繁跳转是件很繁琐的事 ...

  3. base64位加密解密

    1.base64位加密base64是用于传输8Bit字节代码,由上图的编码表可以知道,编码后的内容只包含这64个字符类型,所以称为base64编码 2.编码过程 : 首先将待编码的内容转换成8位二进制 ...

  4. React 页面间传值的个人总结

    react 组件之间传值的方案有很多,下面是我个人经验的总结 props 来传递值 传值方式: 通过props 获取值 通过props 提供的func去修改值 优点: 不需要任何第三方的组件,纯rea ...

  5. Spring Cloud 之 Feign

    新建Spring Boot工程,命名为feign 1.pom.xml添加依赖 <?xml version="1.0" encoding="UTF-8"?& ...

  6. php常用面试题

    1. 有一列数的规则如下 1.1.2.3.5.8.13.21.34... 求第30位数是多少.写出相关函数和算法名称 //$pxx = array(1,1);//for($i=2;$i<=29; ...

  7. ELK介绍

    为什么用到ELK: 一般我们需要进行日志分析场景:直接在日志文件中 grep.awk 就可以获得自己想要的信息.但在规模较大的场景中,此方法效率低下,需要集中化的日志管理,所有服务器上的日志收集汇总. ...

  8. 参加完Rocket MQ Meetup深圳站,回顾和想法

    最近一段时间才开始关注云栖社区的公众号,在两周前看到要在深圳科兴科学园办一场Rocket MQ的Meetup.因为从来没有参加过这种线下活动,而且对Rocket MQ比较感兴趣,所以就立即报名参加. ...

  9. java学习笔记之String类

    String类总结 String类概述: java.lang.String 类是字符串操作类 String类的常用构造方法: //1.直接赋值 String str= "hellojava& ...

  10. cpci热插拔信号

    cpci热插拔信号1 BD_SEL#信号.对外围板是输入,是个1对1信号,来自背板的热插拔控制电路输出.每一个槽一个独立信号.用于控制热插拔外围板的上电控制.不实现热插拔的在背板直接接地:2 HEAL ...