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

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. StringUtils工具类常用方法汇总1(判空、转换、移除、替换、反转)

      Apache commons lang3包下的StringUtils工具类中封装了一些字符串操作的方法,非常实用,使用起来也非常方便.最近自己也经常在项目中使用到了里面的一些方法,在这里将常用的方 ...

  2. 推荐一款基于bootstrap的漂亮的前端模板—inspinia_admin

    首先给出Demo网址:http://cn.inspinia.cn inspinia admin 最新版 bootstrap 完全响应式后台管理模板,采用扁平化设计.使用Bootstrap 3+ Fra ...

  3. CNN网络介绍与实践:王者荣耀英雄图片识别

    欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 作者介绍:高成才,腾讯Android开发工程师,2016.4月校招加入腾讯,主要负责企鹅电竞推流SDK.企鹅电竞APP的功能开发和技术优化工作 ...

  4. 在Eclipse中写web工程 发现import javax.servlet.http.HttpSession无法引入

    解决方法 得加入tomcat的jar包,右击项目->build path-add libraries->server Runtime->选择要导入的tomcat 就可以了,如果没有选 ...

  5. 访问者模式(Visitor)

    访问者模式(Visitor) 访问者模式把数据结构和作用于结构上的操作解耦合,使得操作集合可相对自由地演化.访问者模式适用于数据结构相对稳定算法又易变化的系统.因为访问者模式使得算法操作增加变得容易. ...

  6. 51Nod 1108 距离之和最小 V2 1096 距离之和最小 中位数性质

    1108 距离之和最小 V2基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 收藏 关注三维空间上有N个点, 求一个点使它到这N个点的曼哈顿距离之和最小,输出这个最小 ...

  7. zzuli 2130: hipercijevi 链式前向星+BFS+输入输出外挂

    2130: hipercijevi Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 595  Solved: 112 SubmitStatusWeb B ...

  8. Vue.js学习 — 微信公众号菜单编辑器(一)

    学习里一段时间Vue.js,于是想尝试着做一个像微信平台里那样的菜单编辑器,在这里分享下 具体样式代码查看项目github 创建一个vue实例 <!DOCTYPE html> <ht ...

  9. java 内部类 嵌套类

    .markdown-body { color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI" ...

  10. python爬虫(五)_urllib2:Get请求和Post请求

    本篇将介绍urllib2的Get和Post方法,更多内容请参考:python学习指南 urllib2默认只支持HTTP/HTTPS的GET和POST方法 urllib.urlencode() urll ...