DNS协议原理、安装及主从同步、负载均衡和转发、缓存的详细配置

DNS(域名系统),用于解析域名和IP地址之间的映射关系

协议使用端口:

        udp 53     正常查询解析情况下使用udp53

        tcp53        当进行主从之间的区域传送时使用tcp53

DNS域的空间划分

wKiom1e_-a-hM84pAACYics2oJ4992.png


DNS的查询方式

    递归查询

            当主机A要向DNS服务器发送查询主机D的请求时,服务器返回给A最终结果,这种方式就是递归查询,如果客户端要查找的内容直接在服务器上得到结果,刚给出的答案是一个权威答案,否则就是一个参考答案。

    迭代查询

            NS服务器接收到A的请求后,本地没有D的解析,则会通过以下过程获得

                    1、NS向根域询问D,根域让他去找一级域.com

                    2、NS向一级域.com询问D,.com让他去找二级域.baidu

                    3、NS向二级域.baidu询问D,.baidu返回D的结果,NS获得D的解析

            以上过程则为迭代查询


资源记录

资源记录是DNS数据库中用于答复客户端的条目,资源记录的格式一般如下:

Name     [ttl]    IN    RRtype    Value

RRtype是指资源类型,常见的资源类型有SOA、A、AAAA、CNAME、MX、NS、PTR

资源类型 说明
SOA 是指定区域的起点,一般包含区域名、区域管理员的电子邮箱以及设置从服务器如何更新区域数据文件的信息
A 主机记录,将域名映射为ipv4地址
AAAA 主机记录,将域名映射为ipv6地址
CNAME 别名记录,可为一个域名其一个别名,达到一个ip地址对应两个域名的效果
MX 邮件记录,列出了域中的邮件服务器,需要设置优先级
NS 指定负责域中域名解析的服务器
PTR 与A记录相反,将IP地址映射成域名

DNS服务器安装和配置

1、安装bind和bind-libs软件包

yum install -y bind        #DNS服务器软件包
yum install -y bind-libs    #bind软件包所使用的库

2、修改配置文件/etc/named/conf

//设置全局配置
options {
        listen-on port 53 { 192.168.10.1; };    //设置DNS服务器监听的ipv4地址和>端口
        listen-on-v6 port 53 { ::1; };          //设置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     { localhost; };         //指定允许进行查询操作的主机
        allow-transfer  {none;};                        //指定允许接受区域传送的从服务器
        allow-recursion {aqlist;};                //指定允许为哪些主机进行递归查询
        
logging {
        channel default_debug {
                file "data/named.run";          //指定日志
                severity dynamic;
        };
};
acl aqlist {                //配置acl
  202.0.0.0/8; 
  221.0.0.0/8; 
};
//设置局部配置内容
zone "." IN {
        type hint;      //指定区域类型
        file "named.ca";        //指定该区域的区域文件名称
};
zone "test.com." IN {
        type master;
        file "test.com.zone";
};
zone "10.168.192.in-addr.arpa" IN {
        type master;
        file "10.168.192.in-addr.local";
};

3、使用named-checkconf命令检查配置文件的语法是否正确         

named-checkconf /etc/named.conf

4、编辑正向区域文件

vim /var/named/test.com.zone

$TTL 38400
@       IN      SOA     ns.test.com.    admin.test.com. (
                        2016082601      #序列号,不能超过10位
                        10800           #指定从服务器每隔多久到主服务器上刷新一次
                        3600            #刷新失败时,多久重试
                        604800          #主服务器down后,从服务器能继续工作多久
                        38400           #否定答案的ttl
)
@       IN      NS      ns.test.com.
ns      IN      A       192.168.10.1
@       IN      MX  90  mail.test.com.
mail    IN      A       192.168.10.3

5、编辑反向区域文件

vim /var/named/10.168.192.in-addr.local

$TTL 38400
@       IN      SOA     ns.test.com.    admin.test.com. (
                        2016082601
                        10800
                        3600
                        604800
                        38400
)
@       IN      NS      ns.test.com.
1       IN      PTR     ns.test.com.
3       IN      PTR     mail.test.com.

6、使用named-checkzone命令对区域文件进行检查

    语法格式:named-checkzone 域名 区域文件

named-checkzone test.com /var/named/test.com.zone

7、启动服务

service named start


DNS实现后端服务器的负载均衡

    在DNS服务器上将一个域名映射成为多个IP地址,客户端请求解析时,DNS服务器会随机选取一个地址回复客户端,从而实现了简单的负载均衡功能


DNS主从同步

    从服务器复制主服务器的区域文件,与主服务器一起提供地址解析功能;从服务器上的资源记录只能读取,不能修改和删除。

    配置过程:

        从服务器端:

vim /etc/named.conf

zone "test.com." IN {
        type slave;
        masters { 192.168.10.1; };
        file "slave/test.com.zone";
};
zone "10.168.192.in-addr.arpa" IN {
        type slave;
        masters { 192.168.10.1; };
        file "slave/10.168.192.in-addr.local";
};

        主服务器端:

   1、 为从服务器添加一条NS记录和对应的A或PTR记录。

    2、编辑/etc/named.conf

    allow-transfer{ 192.168.10.2; };


 转发DNS服务器

服务器收到客户端的解析请求后,将请求转发给其他DNS服务器进行解析,称为转发

转发服务器分为完全转发和条件转发

完全转发:服务器会将全部的请求都转发给其他服务器进行解析

    编辑/etc/named.conf

   forwarders { 192.168.0.30; };    \\转发给192.168.0.30进行解析
   forward only    \\only表示转发前不进行本地查询;first表示转发前先进行本地查询


条件转发:当客户端请求特定域的解析时才进行转发查询

    编辑/etc/named.conf

    zone “lzs.com" IN {            \\对lzs.com域的查询请求进行转发
            type forward;        \\类型为forward
            forwarders { 192.168.0.30; };    \\转发给192.168.0.30进行解析
            };


虚拟子域

    将父域和子域都配置在同一个服务器上

        配置文件不变,修改区域文件即可

vim /var/named/test.com.zone
$TTL 38400
$ORIGIN test.com.
@       IN      SOA     ns.test.com.    admin.test.com. (
                        2016082601      
                        10800           
                        3600            
                        604800          
                        38400           
)
@       IN      NS      ns.test.com.
ns      IN      A       192.168.10.1
@       IN      MX  90  mail.test.com.
mail    IN      A       192.168.10.3

$ORIGIN lzs.test.com.
@        IN    NS        ns.lzs.test.com.
ns        IN    A        192.138.20.2


缓存DNS服务器

本地不设置任何DNS信息,只执行查询和缓存的操作,当客户端查询时,如果有,则直接返回结果,提高dns的解析速度,减少网络流量。

    编辑/etc/named.conf

datasize    100M;    \\启用这个选项即可,局部配置都不用配


注意要点:

    1、配置文件中每个语句都要以;结尾

    2、DNS服务器的地址必须是静态地址

    3、编辑区域文件时,域名最后面要以“.”结尾,而且在SOA记录中管理员电子邮箱和”(“之间有空格

本文出自 “90后” 博客,请务必保留此出处http://lzs66.blog.51cto.com/9607068/1843093

本页内容版权归属为原作者,如有侵犯您的权益,请通知我们删除。

nginx的记录配置心得 - 2016-08-29 17:08:29

今天本来要去见自己喜欢的一个人的,唉,感觉自己的爱情龙卷风来了,来的很猛烈,我今天还把自己的胡子刮的很干净,悲催的是那位女士像木头一样,不知道她怎么想的,我发微信她也偶尔回复我,我真的很喜欢她,虽然刚认识没多久,这种感觉从来没有过,我每天都给她发很多消息,我现在都怕她烦了,会不会把我加黑啊,心里很矛盾,真的,找到一个自己喜欢的人和喜欢自己的人真的好难啊,好了悲催的心情就到这里吧。 我下面给大家带来的是NGINX的一些记录,因为可能要换工作了,面试的时候会问到,而且有个人老问我,他要给公司配置NGINX,我
需要使用到的服务:PXE + DHCP+TFTP+ Kickstart+ FTP 运行原理如下图: 原理和概念: 1、前言 首先,简单谈谈为什么要采用无人值守网络安装linux操作系统。一方面是运维管理的需要,因各种需要,安装操作系统在实验室内时有发生,有时候更出现批量安装某一型号操作系统的情形,这时候如果用光盘挨个安装将变得异常繁琐,并且需要人工值守。此外,因操作系统种类较多(主要是针对linux),内部人员使用频繁,也会带来管理上的问题。另一方面是当前MPX项目开发的需要,为打造一个精简、适用、高效、

Linux基础之sed流编辑器详解 - 2016-08-29 17:08:59

之前介绍了三大文本编辑器的grep,这里介绍比grep功能更强的sed流编辑器 sed是什么? sed是Stream EDitor的缩写,man中对sed的简介为 sed - stream editor for filtering and transforming text 它的主要功能是对文本的过滤与替换。 sed的工作原理 sed的工作过程 :sed是一个流编辑器,所谓流编辑器是指sed每次只从文件或stdin中读入一行,将读入的行保存至模式空间然后根据指定的要求对其进行处理,并将处理后的结果输出至屏

OpenVPN应用案例 - 2016-08-29 17:08:58

OpenVPN服务器的搭建: http://qicheng0211.blog.51cto.com/3958621/1575273 CentOS下OpenVPN客户端配置: http://qicheng0211.blog.51cto.com/3958621/1840055 应用一 、点对点安全通道 工作中可能会遇到这样的场景:由于业务需要,异地两台服务器需要安全的相互访问,除了拉专线,比较经济的方法就是通过公网建立加密隧道,openvpn是一个很好的选择。 服务端:内网IP192.168.20.220,vp
前段时间做了个项目,是关于父子域合并的,其实无非就是使用ADMT把域用户,计算机等从子域迁移到父域上,看似迁移用户很简单。But……生产环境啊,Exchange,TFS,Sharepoint,还有其余乱七八糟的东西,都使用了域账号,牵一发动全身的节奏,迁移账号出点儿问题相关用户就可以坐在那打酱油了,迁移前在他们生产环境中新建测试账号迁移,但是这种测试账号相对理想的环境,测试过程中很多问题不容易发现,很多问题是迁移了客户生产用户账号时出现了问题,但是于对于TFS一窍不通,sharepoint大多不懂的我来说
上一篇博客讲解了nginx相关的数据结构。 这一篇主要交接如何将自己的模块编译进nginx; 一种常用的简单方法: 1)首先把源代码文件全部放大一个目录下,然后在改目录中编写一个config用于通知Nginx如何编译本模块,这个文件名必须为config。 在configure脚本执行时加入参数--add-module=PATH(上面源码,config的保存目录) 执行正常安装流程是完成Nginx的编译工作。 ps:还有一种复杂方式,就是修改configure脚本执行后生成的obj/Makefile和obj

OpenLDAP 客户端部署 - 2016-08-29 17:08:32

有关服务端的安装请点击 一、账号登录系统流程讲解 当在客户端输入账号登录系统时,系统根据/etc/nsswitch.conf配置文件获取账号查找顺序,然后再根据PAM配置文件调用相关模块,对账号(/etc/passwd)及密码(/etc/shadow)进行查找并进行匹配。当本地匹配不成功时,会通过后端认证服务器(OpenLDAP服务器)进行验证。 二、配置文件功能介绍 下面介绍几个配置文件再后面我们会进行修改,我这里简单介绍一下。 /etc/nsswitch.conf 该文件主要用于名称转换服务,用于系统
1. root下进入其他用户主目录 cd ~USERNAME 2. touch的另外的一种作用 常用的是touch创建一个不存在的文件 而touch一个存在的文件时候,touch会修改文件的三个时间(使用stat可以查看),其中access表示最后一个访问时间,modify表示最后一次修改文件的时间,change表示最后修改文件属性的时间 3. file查看文件类型 镜像文件(iso)的文件类型为iso9660 4./etc/passwd中各字段对应解释 1 用户名:2密码:3uid:4gid:5备注:6
谁说Lync Server 前端不可以使用Windows网络负载平衡实现高可用的?(仅限测试环境) 本章内容有: 1.两台Lync Server安装Windows功能---网络负载平衡 2.配置网络负载平衡 3.DNS记录修改 4.测试故障切换(模拟两种故障,网络故障和服务故障) 5.开始的时候别忘了上一章中的提示,将两台前端Server都进行重启 = = 安装网络负载平衡 两台服务器都需要进行安装 = = 配置网络负载平衡 1)新建群集 2)将LyncFE01先添加到群集中 3)群集IP自己随便填写 4

深入剖析linux磁盘管理 - 2016-08-29 17:08:26

一、linux中常见的磁盘: 无论什么操作系统,归根还是要落实与磁盘上的,对于磁盘的管理也是linux管理必备的一项技能。在linux中“一切皆文件”的思想贯彻整个linux的学习中,包括像是磁盘等的硬件也是在linux的/dev/目录下类似于文件形式的存放,常见的SATA口USB优盘或是SCSI口的硬盘在linux中是以/dev/sd[a-p]开头的文件,早期的IDE硬盘现在已经很少见了,这种硬盘在linux中是以/dev/hd[a-d],CDROM是以/dev/cdrom开头的文件,磁带机/dev/s