Linux下搭建DNS服务

Linux下搭建DNS服务器

注:本文主要侧重DNS的配置,原理的话会另发一篇文章~

一、DNS(域名系统)作用和原理

1、  DNS的作用:

正向解析:根据域名查找对应的IP地址

反向解析:根据IP地址找对应的域名

2、  DNS的工作模式:

  • 递归查询
  • 迭代查询

3、  域名结构

分层式的结构,且上层只管理下层域名,便于管理维护。

二、BIND服务简介

1、Linux下常用的DNS服务是BIND(BerkeleyInternet Name Domain)

官方站点:https://www.isc.org

软件包:bind-9.8.2-0.17.rc1.el6.x86_64 (还有更新的版本)

服务名:named

端口号:udp 53  (少数情况会用到tcp53)

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

默认的区域文件:/etc/named.rfc1912.zones

保存DNS解析记录的数据文件位于:/var/named/

2、主域名服务器和从域名服务器

主域名服务器:

特定DNS区域的权威域名服务器,具有唯一性

负责维护该区域内所有域名->IP地址的映射记录

从域名服务器:

也称为辅助域名服务器

其维护的域名->IP地址记录来源于主域名服务器

*实验环境的Linux发行版本是:RHEL6.4

三、搭建主DNS服务器

1、  修改DNS主配置文件/etc/named.conf

options {

       listen-on port 53 { 172.16.100.111; };   #指定哪个IP和端口对外提供DNS服务(ipv4)

       listen-on-v6 port 53 { ::1; };      #指定哪个IP和端口对外提供DNS服务(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; };             #指定对哪些地址提供地址解析服务

       recursion yes;                        #是否开启递归功能

 

       dnssec-enable yes;                    #安全选项,防止dns劫持

       dnssec-validation yes;

       dnssec-lookaside auto;

 

       /* Path to ISC DLV key */

       bindkeys-file "/etc/named.iscdlv.key";

 

       managed-keys-directory "/var/named/dynamic";

};

logging {

       channel default_debug {

              file"data/named.run";   #日志文件存放位置:/var/named/data/named.run

              severity dynamic;

       };

};

 

zone"." IN {

       type hint;

       file "named.ca";                #指定根域文件,该文件有全球13台根DNS的记录

};

include"/etc/named.rfc1912.zones";     #该文件为默认的区域文件

include "/etc/named.root.key";

2、配置区域文件

zone "wsh.com" IN {                #wsh.com的正向区域

       type master;              #指定该DNS的类型(master or slave)

       file"wsh.com.localhost";  #指定该区域的正向解析数据文件,需要在/var/named/目                                             录下自己创建这个文件,一般复制named.localhost模板,之后                                       进行修改。

       allow-update { none; };

};

 

zone "1.16.172.in-addr.arpa" IN {            #wsh.com的反向区域

       type master;                  #指定该DNS的类型(master or slave)

       file"wsh.com.empty";          #指定该区域的反向解析数据文件,需要在/var/named/目录                                            下自己创建这个文件,一般复制named.empty模板,之后进                                            行修改。

       allow-update { none; };

};

3、配置正向数据文件

SOA:起始授权机构。这个记录表明了谁是这个域的所有者。也表明了DNS服务器之间的关系,比如主从DNS之间配置同步的时间间隔等。

NS记录:表明谁对这个区域有解释权,即谁是该区域的权威DNS。大家都知道电信和网通都有很多的DNS服务器。这些服务器为我们上公网做域名解析提供了很多方便。但是这些DNS服务器有一个有意思的地方是这些DNS不存放任何区域,它们被称为缓存DNS服务器。它们会缓存大量的解析地址,这样就会让你解析的时候选择它们会觉得很快。它们在查询的时候就会查询NS记录,通过这个记录就知道谁在负责。还有一种情况来说明NS记录的作用,比如你先在万网申请了一个域名ABC.COM。一般情况是万网的域名服务器替你来解析如WWW.ABC.COM这样的主机记录,如果你想自己架设一个DNS服务器,让这台服务器从今往后替代万网的DNS服务器解析,那么你就需要在你的DNS上设置NS记录,然后将万网域名管理系统中的NS记录改成你的DNS IP。这样以后就是你自己的DNS服务器负责提供解析了。即使万网的DNS服务器出现故障,别人仍然可以找到你。

MX记录:邮件交换记录。后面的数字表明邮件服务器的优先级,数字越小,优先级越高(网络中可能存在多台邮件服务器)。

A记录:域名所对应的IP地址。域名部分只需写为www、mail等形式,实际表示的域名需加上SQA指定的域,即www表示的域名为www.wsh.com.

4、配置反向数据文件

PTR:反向解析记录。IP部分只写主机位(因为区域文件中定义了反向解析的网络位)

5、启动服务

service named start

四、搭建从DNS服务器

1、  修改主DNS的主配置文件

options {

       listen-on port 53 { 172.16.100.111; };

       listen-on-v6 port 53 { ::1; };

       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; };

       allow-transfer  { 172.16.1.102; };           #指定从DNS

       recursion yes;

2、  配置从DNS的主配置文件

options {

       listen-on port 53 {172.16.1.102; };

       listen-on-v6 port 53 { ::1; };

       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; };

       recursion yes;

3、  配置DNS区域文件

zone "wsh.com" IN {

       type slave;                               #类型设为slave

       file "slaves/wsh.com.localhost";          #指定从主DNS同步的正向数据文件

       allow-update { none; };

       masters { 172.16.1.101; };                #指定主DNS

};

zone "1.16.172.in-addr.arpa" IN {

       type slave;                                #类型设为slave

       file "slaves/wsh.com.empty";               #指定从主DNS同步的正向数据文件

       allow-update { none; };

       masters { 172.16.1.101; };                 #指定主DNS

};

 

4、  重启从DNS的named服务

service named restart

#重启完后发现/var/named/slaves目录有了主DNS上的正向数据文件和反向数据文件,即成功同步。

#主从DNS的同步周期由SOA记录的参数决定,到达更新周期,会自动更新。或者重启服务器完成手动更新。

五、分离解析DNS服务器

1、应用场景如下图:

需求:

现在内网有一台WEB服务器和DNS服务器对外提供服务,要求内网PC访问www.wsh.com的时候域名能解析成内网IP,而公网PC访问www.wsh.com时解析成公网IP。

解决方法:

对于以上的场景解决方法可以在DNS上做分离解析。

2、  DNS分离解析配置步骤

1)  修改主配置文件/etc/named.conf

options {

       listen-on port 53 { any; };

       listen-on-v6 port 53 { ::1; };

       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; };

       recursion yes;

                                     ……

#zone "." IN {

#       type hint;

#       file"named.ca";

#};

 

#include "/etc/named.rfc1912.zones";

#include "/etc/named.root.key";

#注释掉以上几行

view lan {

       match-clients{ 172.16.1.0/24; };    #如果客户端的源IP匹配的话,则会调取以下参数                                                   (根 域文件、区域文件),如不匹配继续匹配下                                              个view

       zone "." IN {

       type hint;

       file "named.ca";

       };

include "/etc/named.lan.zones";

};

 

view wan {

       match-clients { any; };       #如果客户端的源IP匹配的话,则会调取以下参数(根                                                域文件、区域文件)

       zone "." IN {

       type hint;

       file "named.ca";

       };

include "/etc/named.wan.zones";

};

2)  配置区域文件

[[email protected] ~ ]# vim /etc/named.lan.zones

zone "wsh.com" IN {

       type master;

       file "wsh.lan.local";

       allow-update { none; };

};

zone "1.16.172.in-addr.arpa" IN {

       type master;

       file "wsh.lan.empty";

       allow-update { none; };

};

 

[[email protected] ~ ]# vim /etc/named.wan.zones

zone "wsh.com" IN {

       type master;

       file "wsh.wan.local";

       allow-update { none; };

};

zone "200.200.200.in-addr.arpa"IN {

       type master;

       file "wsh.wan.empty";

       allow-update { none; };

};

3)  配置正向数据文件和反向数据文件

内网解析的正向数据文件和反向数据文件:

[[email protected] named]# vim wsh.lan.local

[[email protected] named]# vim wsh.lan.empty

外网解析的正向数据文件和反向数据文件:

[[email protected] named]# vim wsh.wan.local

[[email protected] named]# vim wsh.wan.empty

*至此,分离解析DNS配置完毕,可进行测试。

时间: 2024-10-11 03:14:48

Linux下搭建DNS服务的相关文章

Linux下搭建DNS服务器

一.修改Linux主机名 1.hostname 主机名 [[email protected] named]# hostname ifs.com 2.vi /etc/hosts [[email protected] named]# vi /etc/hosts 127.0.0.1 ns.ifs.com ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6 ~ 3.vim /etc/sysconfi

Linux下搭建VPN服务

转载需注明原文地址 http://mushapi.com/vpn-server-on-linux.html 最近google封锁的愈发严实了,所以不得不考虑弄个常备的VPN了.之前也用过买的vpn但是我用的那家vpn的官网也被封锁了,所以只能自己动手喽-本文是我安装完成后根据记忆写的,可能有不准确的地方,欢迎留言告诉我. 一.安装所需软件 在linux上搭建一个vpn server需要有iptables.ppp.pptpd.其中iptables和ppp可以直接通过yum安装. 1 yum ins

Linux下搭建DNS 服务器

CentOS6.6下DNS服务器的搭建 Linux下的DNS的软件包为bind,有如下几个软件包: bind           #DNS服务的主程序 bind-utils # 工具,包含dig,nslookup等网络诊断工具. bind-chroot      # 修改named 的root目录,这样named被入侵后,黑客也被限制在指定的目录下,不能切换到/,避免造成更大的破坏.[下面的演示中,为了简单起见就没安装该组件] # 安装bind软件包 yuminstall bind bind-u

如何在linux下搭建svn服务

? 安装svn 使用命令 yum install subversion 如果提示上述错误,请以管理员身份运行 使用命令su root 再执行 yum install subversion 2,查看svn版本 svnserve  --version 3,创建svn版本库目录 mkdir -p /projects/svn #mkdir = 新建文件夹 一句话的来讲,就是在根目录下创建一个叫"projects",里面包含创建svn文件夹. 4   新建一个测试版本库 svnadmin cre

linux下搭建tomcat服务

从上节我们知道了tomcat并且由他引申出了java虚拟机JDK,今天我们来详细了解下,并学习搭建这个java服务. 我说下我对这个服务的看法,这个服务在实际生产中金融公司运用的比较多,为什么呢? Tomcat是Apache 软件基金会(Apache SoftwareFoundation)的Jakarta 项目中的一个核心项目,由Apache.Sun 和其他一些公司及个人共同开发而成.因为Tomcat 技术先进.性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为

linux下搭建ftp服务

操作系统:centos7.0 64位 使用vsftpd搭建ftp服务 1.yum install vsftpd 2.启动/重启/关闭vsftpd服务器[[email protected] ftp]# /sbin/service vsftpd restartShutting down vsftpd: [ OK ]Starting vsftpd for vsftpd: [ OK ]OK表示重启成功了.启动和关闭分别把restart改为start/stop即可.如果是源码安装的,到安装文件夹下找到st

linux下搭建DNS子域及相关授权详解

forward功能是本地无法解析的域名,转发给指定DNS服务器 forward only; 所有无法解析的域名,都转发给指定DNS服务器,必须有解析结果 forward first;无法解析的域名,转发给指定DNS服务器,如果指定DNS服务器也无法解析, 再通过自己的DNS服务器向根进行转发解析 forwarders { 指定DNS服务器; }; 如本地DNS无法解析,向指定DNS服务器转发解析域名 注意forward与forwarders同时使用 2.搭建主域与子域,要求如下: A.主域为wi

linux下搭建NFS服务(指定WWW用户)

第1章 搭建NFS服务(指定WWW用户) 1.1 服务端操作(在nfs01服务端) 1.1.1 安装NFS服务 rpm -qa nfs-utils rpcbind yum install nfs-utils rpcbind -y rpm -qa nfs-utils rpcbind 1.1.2 启动服务 /etc/init.d/rpcbind start /etc/init.d/nfs start rpcinfo -p localhost chkconfig nfs on chkconfig rp

在Linux下搭建DHCP服务

*思维导图 一.概述 1.DHCP:自动主机配置协议 端口号是: ipv4对应的是udp67.68 ipv6对应的是udp546.547 2.作用:实现向主机自动分配IP.默认网关.DNS等地址信息 3.好处: 减少管理员的工作量 避免输入错误 避免IP冲突 方便客户端配置 提高IP地址利用率 4.分配方式: 自动分配:分配到一个IP地址永久使用 手动分配:由DHCP管理员专门指定IP地址 动态分配:使用完后释放该IP,供其他客户机使用 5.为什么要使用服务器搭建DHCP 专一,稳定性高 二.D