码迷,mamicode.com
首页 > 其他好文 > 详细

20150920 DNS服务

时间:2015-10-04 11:14:05      阅读:753      评论:0      收藏:0      [点我收藏+]

标签:ip地址   system   domain   linux   record   

第一部分:DNS概述

1、概含

    DNS(domain name system)用于解决通信转换问题

IP地址与名称

    1)DNS域名称空间:它指定用于组织名称的域的层次结构

    2)资源记录(RR-resource record):它将DNS域名映射到特定类型的资源信息,

以供在名称空间中注册或解析名称时使用。在Linux系统中,通常“名称解析库(文本

文件,位于/var/named/)”中的每一行称作一个资源记录

   3)DNS服务器:它存储和应答资源记录的名称查询

   4)DNS客户端(解析程序):它查询从服务器来的搜索及将名称解析为查询中

指定的资源记录类型。

2、DNS作用

    1)DNS作用

          ü正向解析:根据主机名称(域名)查找对应的IP地址

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

  示例:magedu.com    这里为域名

   FQDN www.magedu.com  主机名

  101.200.188.230">101.200.188.230">101.200.188.230">101.200.188.230">101.200.188.230">101.200.188.230">101.200.188.230">www.magedu.com--->101.200.188.230(通过主机名打IP为正向)

  101.200.188.230--->www.magedu.com(地址至名称反向解析)

  3、DNS结构

顶级域:由两三个字母组成的名称,用于指示国家(地区)或使用名称的单位的类型。

组织域:.net, .com, .org, .mil, .edu, .gov, .cc, .mobi

国家域:.jp, .tw, .hk, .iq, .ir, .cn, .uk, .us

1)DNS分布式数据结构- 是一个倒置的树结构

用”.”代表根服务器(提供信息服务,全球13台)

顶级域包括组织域、国家域。200个左右

个人申请的是一级域(新网,万网)

下面的为二级域

技术分享

2)DNS查询方式

   AA:递归查询:客户端向DNS解析域名的方式

客户端向域名请求,这里域名服务器负责提供查询服务,

不需要客户端参与。由域名服务器解析完成后提供给客户端

结果。(不关心过程,只注重结果)

   BB:迭代查询:DNS服务向基它DNS解析域名的方式(默认)

解析过程中,只根的地址,客户端参与。这时域名服务器压力比较小。

客户端分别与根  一级域名  进行通信。运营商常用!

       @1:正向 FQDN->IP

        @2: 反向:IP—>FQDN

3)DNS解析过程

技术分享

    @1:访问过程中本机/etc/hosts文件条目优先,可通过文件/etc/nsswitch.conf

进行配置:修改优先级

技术分享

    @2:本地DNS文件  /etc/resolv.conf,指定域名解析服务器

     正常选择第一个,如果第一个不down机不会访问第二个,一般

由运行商提供通常是缓存域名服务器。

    其中区域zone(例如北京的海淀区)

            Domin(例如北京一个大区域)

  示例:以 www.magedu.com为例,采用倒置方式查找。

@1:先找本地是否有记录,有的直接返回。没有的话找全球13台

根服务器的其中的一台。即”.  “

@2:然后根服务器提供”.com ”,再发请求到.com服务器,这里

返回”".magedu.com”

@3:再找www,提供地址

4、DNS类型

1)定义

     AA:主域名服务器(权威)

  • 特定DNS区域的官方服务器,具有唯一性
  • 负责维护该区域内所有域名->IP地址的映射记录
  • 对区域的所有更新都通过此服务器进行;

   BB:从域名服务器

  • 也称为 辅助域名服务器
  • 其维护的 域名->IP地址记录 来源于主域名服务器
  • 只从同一个区域的主服务器或其它从服务器同步区域数据文件

只有主故障后,从才能够有效

   CC:缓存域名服务器(非权威)【一般运营商提供】

  • 也称为 唯高速缓存服务器
  • 通过向其他域名服务器查询获得域名->IP地址记录
  • 将域名查询结果缓存到本地,提高重复查询时的速度

2)主从协调过程

   AA:DNS主从协调?

  • 区域数据文件有版本号(序列号): serial(同步第一条记录)
  • 刷新时间(检查周期):refresh(第二条记录)
  • 重试时间(重试周期): retry(第三条记录)
  • 过期时间(失效时长): expire (第四条记录主DNS故障后从DNS提供

            多长时间失效)

  • 否定应答的TTL值:针对应答提供否定应答

     以上五个值需要在配置主DNS时指定,为起止授权记录SOA

   BB:协调过程:

    从服务器在间隔达到refresh指定的时长后发起同步请求至主服务器;

主服务器响应serial,从服务器与本地的serial进行比较;如果主服务

器serial大于本地,意味主服务器区域数据文件更新了,因此请求同步

3)区域解析数据库

资源记录:resource record(rr),每个DNS域名解析需要区域解析文件,

这个文件称为区域解析数据库,记录相应的资源记录

   AA:资源记录类型(resource record type

  • SOA: Start Of Authority,起始授权记录;一个区域文件有且只能一

            个SOA记录;SOA还必须是第一条资源记录;(主从协调从本记录)

  • NS:Name Server,标名名称服务器
  • MX:Mail eXchanger,邮件交换器
  • Address,FQDN-->IPv4(正向解析)
  • AAAA: Address, FQDN-->IPv6
  • PTR: Pointer,指针,IP-->FQDN(反解)
  • CNAME: Cononical NAME,正式名称(别名CDN)

            按照别名解析,例如web别名www;这里通过www.magedu.com访问

   BB:SOA配置实例

PowerDNS(新网)

  定义格式:name     [ttl]  IN    rr_type value

       TTL为缓存时间:缓存时间未到,客户端DNS解析不会更新,

  只能够手工刷新。

         IN固定主法      rr_type(上述7中类型之一)

       SOA后面的值,指向名称,管理员邮箱   .  后为必须标记为区域。

算是一个解析。FQDN

dns.magedu.com 代替dns@magedu.com,

@表示作用域,是单独变量,区域名称。可代替作一个简写。

示例:语法结构:类型C语言

magedu.com  60 IN  SOA  magedu.com.  dns.magedu.com.(

                                            2014120901  #版本号序列号 ;serial number

                                               1H  #更新时间

                                               5M #重试时间无次数限制

                                               7D  #失效时间(主故障,从能够提供多久服务)

                                              1D ) #没有内容,后续TTL否定应答时间,

 

CC:NS配置语法(Name Server)

用于指定一个域名用于解析,需要单独定义

   NS: 一个区域数据文件可以有多个NS记录;

   name: 区域名称,可使用@替换;(这个区域的变量替换)

   value:dns服务的FQDN格式,FQDN后面需要加点

格式:

   名称    IN   类型   值 (IN为固定,类型为 NS)

  示例:

magedu.com.    IN   NS dns1.magedu.com.

                   IN   NS dns2.magedu.com.

 

备注:

v1、相邻的资源记录name相同时,后面的可省略;(如第二条)

v2、任何一个value中指定的FQDN,在其域的正向

解析文件中应该有A记录(域名和IP的对应关系)

DD:MX记录

针对邮件,区别在于指定优先级

   格式:名称    IN   类型   Vaule(值-优先级)

  • MX:一个区域数据文件可以有多个MX记录;
  • name: 区域名称,可使用@表示;
  • value: 邮件服务器的FQDN
  • value之前需要一个数字表示其优先级(0-99, 数字越小优先级越高)

示例:

   @      IN   MX 10 mx1.magedu.com.

             IN   MX 20 mx2.magedu.com.

 

EE:A记录解析

   重要功能实现正向解析,域名至IP地址

A, AAAA: 应用于正向区域文件

  格式:

      name  IN    类型   value

     name=FQDN     Value=IP  

    当ip V4时值为A     IPV6 值为AAAA

示例:

   www.magedu.com.  IN    A    1.1.1.1

   www.magedu.com.  IN   A     2.2.2.2

(以上方法实现轮巡负载均衡方案1个名称多个IP,第一用户

1.1.1.1,第二个用户为2.2.2.2,轮巡调用。DNS内有计数)

   mx1.magedu.comm    IN   A   1.1.1.1

   pop3.magedu.com      IN   A   1.1.1.1

 

FF:PTR反向地址解析

    实现IP地址至FQDN

格式:

    name     IN      类型

  • name: IP地址的逆向格式,并附加in-addr.arpa.后缀
  • value: FQDN

示例:

    6.100.16.172.in-addr.arpa.    IN     PTR

              www.magedu.com.

GG:CNAME记录类型

   别名后需要再做A记录,通过内置转换机置,用于第三方

CDN服务。

格式:  name    IN   Value

   name:别名FQDN

   value正名FQDN

示例:

    web.magedu.com.     IN      CNAME

         www.magedu.com.

第二部分:Bind域名服务基础

   Bind默认启动缓存服务功能  90%互联网公司使用。在红帽当中。

另外一种是PowerDNS(新网)

1、Bind安装与服务管理

  @1 Bind域名服务基础

       AA:定义:Bind (berkeley Internet Name Daemon)

               伯克利Internet域名服务

               官方站点:https://www.isc.org #ISC 互联网系统联盟

      BB:相关软件包

  • bind-9.9.4-18.el7_1.5.x86._64  #主程序和相关文件
  • bind-utils-9.8.2-0.30.rc1.el6.x86_64 #DNS测试工具nslookup、dig
  • bind-chroot-9.3.3-7.el6  #bind提供伪装的根目录增强安全性

           (将“/var/named/chroot/”文件夹作为BIND的根目录)

nslookup解析示例:

技术分享

       CC:安装过程

           步骤1:yum install bind

技术分享

            步骤2:查看安装包rpm –ql bind (-ql 表示查询并显示)

技术分享

          步骤3:查看ss  –tnl 查看端口(53、953端口)

技术分享

     CC:Bind服务器端程序

  • 主要执行程序:/usr/sbin/named
  • 服务脚本:/etc/init.d/named # service named start|stop|restart

                 centos 7  systemctl restart named

  • 默认监听端口:53#TCP、UDP以及TCP 953

             #其中UDP 53端口一般对所有客户机开放,以提供解析服务;

             #TCP 53端口一般只对特定从域名服务器开放,提高解析记录传

                 输通道;

             #TCP 953端口默认只对本机(127.0.0.1)开放,用于为rndc远程

               管理工具提供控制通道

  • 主配置文件: /etc/named.conf  #C语言格式
  • 主工具目录:/var/named
  • 远程域名控制:/etc/rhdc.conf #配置工具
  • Bind管理工具:/usr/sbin/rndc
  • 配置检测工具/usr/sbin/named-checkconf  #检查主配置
  • 配置检测工具: /usr/sbin/named-checkzone  #检查区域
  • 保存DNS解析记录的数据文件位于: /var/named/
  • 启动文件   /etc//init.d/named (centos 6所在目录)

2、Bind配置

   以下配置包括主配置文件named.conf和区域数据配置文件二个章节组成

第一章:主配置文件

  全局配置是以“options {};”的形式出现的

  主配置文件named.conf  #配置格式”配置关键字  值”形式

  主配置文件由Options,logging,zone三部分组成。zone区域部分是

说明那些有域进行管理。一个zone配置代表一个区域。另外include代表

额外的配置文件(第一个用于为自己的解释,第二个用于key)

技术分享

   @1:Options部分

  • 设置DNS服务器的全局参数
  • 包括监听地址/端口、数据文件的默认位置等
  • 使用 options { …… }; 的配置段

技术分享

    红色目录:必选项,其它可省略

    IP地址可对外服务地址

   53端口(TCP 53 用来区域传送,主从同步| UDP53用查询)

    allow-query(可修改为any,那个可以使用dns)

    /var/named目录访问进行相应的处理

    recursion yes:是否可以递归:YES时说明是缓存服务器

下为centos 7

技术分享

  @2:login部分

技术分享

     日志级别为debug级别(包括重启、reload等)

     file为日志路径(相对路径),对options中directory参数值为基准

     serverity dynamic实现动态打印

  @3:Zone区域

  由“zone “DNS域” IN {};”的形式出现的,有多少个区域就设置

多少个zone配置

  • 设置本服务器提供域名解析的特定DNS区域
  • 包括域名、服务器角色、数据文件名等
  • 使用 zone “区域名” IN { …… }; 的配置段

技术分享

  ?每个zone区域都是可选的(包括根域、回环域、反向域),具体根据实际

需要而定,zone配置部分的“IN”关键字表示“Internet”的意思,通常

可以省略

?type关键字用于设置该区域的类型,可设置为以下值:hint表示根域、

master表示主域、slave表示从域等

?file关键字用于指定该区域对应的数据文件名,如果没有指定绝对路径,

则该文件默认位于全局配置中“directory”关键字指定的目录中,文件

名由管理员自行定义。named.ca为根域的解析文件

   @4:zone区域反向部分

倒序网络地址.in-addr.arpa 的形式表示反向区域

技术分享

?正向区域、反向区域的zone配置段,其中type、file是必须有的,

allow-transfer、allow-update等是可选配置

?区域设置中的部分配置内容(如allow-transfer、allow-update等)

也可以放在全局配置里

示例:

步骤1:查看named进程  ps –ef|grep named

技术分享

步骤2:查看端口ss –tln 或者netstat –tunlp

(t—tcp   u—>udp  n—>数字形式  l—>listen  p—>进程)

技术分享

第二章:区域数据配置文件

@1:全局TTL配置项及SOA记录

  • $TTL(Time To Live,生存时间)记录
  • SOA(Start Of Authority,授权信息开始)记录
  • 分号“;”开始的部分表示注释信息

技术分享

  注意:?在区域数据文件中,表示DNS域名或者完整的主机名(FQDN)地址时,

最后必须加上“.”号,例如“magedu.com.”

@2:域名解析记录

  • NS域名服务器(Name Server)记录:可配置多行
  • MX邮件交换(Mail Exchange)记录
  • A地址(Address)记录,只用在正向解析的区域数据文件中
  • CNAME别名(Canonical Name)记录:多个域名一个IP地址

技术分享

注意:NS、MX记录行首的“@”符号可以省略(默认继承SOA记录行首的@信息),

但是必须保留一个空格或者制表位

@3:域名解析记录

  • PTR指针(Point)记录,只用在反向解析的区域数据文件中
  • 配置反向解析记录时,只需要指定IP地址中的主机地址部分即可,网络地址部分不用写

技术分享

@4:区域数据文件的特殊应用

  • 基于域名解析的负载均衡: 同一域名对应到多个IP地址
  • 泛域名解析:找不到精确对应的A记录时,使用“*”进行匹配
  • 子域授权:将DNS子区域内主机地址的解析记录,授权给子域的域

名服务器进行维护和解析

技术分享

3、配置文件语法检查

@1:named-checkconf工具

    语法:named-checkconf [主配置文件]

技术分享

@2:named-checkzone工具

语法:named-checkzone <域名> <区域数据文件>

技术分享

第三部分:Bind应用实例

1、构建缓存域名服务器

@1:默认情况下启用recursion yes情况下自动配置为缓存域名服务器

@2:配置过程

  • 建立named.conf主配置文件:通过根域或者转发机制指定解析源
  • 确认建立named.ca根区域数据文件: 若使用转发机制则无需此步骤
  • 启动named服务
  • 验证缓存域名服务器: nslookup命令(Windows环境)

  示例:

     步骤1:备份/etc/named.conf文件为/etc/named.conf.bak

      步骤2:编辑新文件/etc/named.com

  技术分享

        all-recursion { 172.16.16.0/24; } 允许给谁递归

        步骤3:修改文件属主、属组和权限

技术分享

        步骤4:利用named-checkconf以及named-checkzone查看配置

技术分享

       步骤5:修改本机DNS服务器,指向本机/etc/resolv.conf

       步骤6:重新启动服务systemctl restart named

技术分享

  这里同时查看/var/log/message日志,同时关于/etc/selinux目录

下的config修改selinux=Permissive,或者setenforce 0(临时生效)

       步骤7:查看端口netstat   –tunlp  查看tcp/udp53端口

技术分享

     步骤8:验证  nslookup或者dig、host命令查看,

axfr 完全区域传送(对方区域的所有数据):主从结构时

ixfr 增量区域传送

host –t 类型 名称  #查询名称的解析结果

host –t A  www.magedu.com 

host –t NX www.magedu.com

host –t SOA magedu.com

nslookup>交互式

         server IP

         set q=RT

          NAME

  

示例:

nslookup www.baidu.com

技术分享技术分享

左侧为缓存服务器解析,右则为通过219.233.241.164这个DNS解析

dig –t NS “.” 查询根记录

技术分享

dig –t A www.baidu.com @172.16.16.104

表示通过172.16.16.104 主机找baiduA记录

技术分享

 

2、构建主域名服务器

@1:配置过程 

  • 1.在named.conf配置文件中添加“magedu.com”主区域

技术分享

    注意: @这里可代替magedu.com

  • 2.建立“magedu.com”区域的数据文件,以/var/named/

注意: /var/named为特殊文件权限750

技术分享

  创建magedu目录与named.conf中file文件相同,再创建解释文件

magedu.com.zone

技术分享

vim编辑magedu.com.zone

第一行为区域起始授权记录

第七行:指定nsserver。不指定会继承上一级目录。

第八行开始:添加A记录等内容

技术分享

   这里要注意2015100206版本要小于10位数字。

   当增加ns服务器时,需要增加到本地的数据文件当中。

      IN NS dns.magedu.com.

      IN NS dns2.magedu.com.   新增

dns IN A 172.16.16.104

dns2 IN A  172.16.16.109  #新增

        

   编辑完成magedu.com.zone文件后,进行检查

named-checkconf

named-checkzone  zone名称进行检查

技术分享

  • 3.启动或者重新加载named服务程序

systemctl restart named

4.验证主域名服务器

工具包查询rpm –ql bind-utils

技术分享

dig –t NS .  @ 主机    查找根域所有DNS  -t代表类型

dig –t A  www.magedu.com @172.16.16.104

dig –t A mail.magedu.com @172;.16.16.104

dig –t A mail.magedu.com +trace #演示整个寻址过程

技术分享

套接字socket

   IP: Port     让客户端通过这种机制,让不同主机之间的进程通信。

服务端进行监控

  补充:创建反向解析:严格按照x.x.x.in-addr.arpa”形式定义

/etc/named.conf文件配置

技术分享

/var/named/magedu/16.16.172.zone文件配置

技术分享

      IN NS ns1.magedu.com.  后面必须为FQDN

  验证 :dig –x 172.16.16.104 @172.16.16.104

技术分享

3、构建从域名服务器

注意:在named.conf可定义全局TTL值:$表示宏

示例   $TTL  200

   allow-transfer  允许那台过来更新,从主域服务器更新

配置过程:

  • 在从服务器named.conf配置文件中添加“magedu.com”辅助区域
  • .启动从服务器中的named服务程序
  • .验证从域名服务器

            在客户机中将DNS服务器设为从域名服务器

            使用nslookup测试域名解析是否正常

示例:

    @1:只需要在从域名服务器配置name.conf文件即可

技术分享

   将类型修改为slave   文件保存到slaves目录下,

同时指向master。同步完成后会在slaves目录下创建相应的文件

这里注意named文件的权限(为named组)

   @2:从服务器DNS指向自己,查询域指向magedu.com。

从服务器启动服务前关于主服务器的防火墙iptables –F,

同时利用dig –t  axfr magedu.com @172.16.16.104验证传送

正常。

技术分享

再启动从服务器端服务。

   @3:查看主DNS端:/var/log/messages

技术分享

查看从DNS端

技术分享

4、构建分离解析的域名服务器

   用于来自不同地址的客户机请求解析同一域名时,为其提供不同的解析结果

通过在named.conf文件配置不同的view

配置过程:

  • 在named.conf主配置文件中为不同的客户机地址启用不同的zone区域设置,

             各自使用独立的数据文件

  • 分别建立不同的区域数据文件
  • 启动或重新加载named服务程序
  • 验证分离解析的域名服务器

示例1:

技术分享

  示例2:类型创建视图,不同视图不同客户端。

技术分享技术分享

5、子域授权

     父域授权给子域,子域可管理自身。

子域有几个名称记录,在父域建几条记录

  @1:父域授权子域

   父域为magedu.cm,后台NS1、NS2定义映射本地,同时指向内部的

IP地址。(二个实现主从)

子域名称(sub_zone_name)  IN  NS NSserver_SUB_Zone_Name

NSserver_SUB_Zone_Name IN A IP

示例:

.com   

magedu.com.           IN   NS  NS1.magedu.com.

                                    IN   NS  NS2.magedu.com.

NS1.magedu.com.  IN    A    172.16.16.104

NS2.magedu.com.  IN    A    172.16.16.109

这样.com能够发现有二个nds服务器,从中找一个。

    @2:子域实现自我管理

子域可以与父域不太一个网段当中

magedu.com

fin.magedu.com.           IN         NS     ns1.fin.magedu.com.

fin.magedu.com.           IN         NS     ns2.fin.magedu.com.

ns1.fin.magedu.com.    IN          A       172.16.10.104

ns2.fin.magedu.com.    IN          A        172.16.10.105

 

mk.magedu.com.          IN          NS    ns1.mk.magedu.com.

ns1.mk.magedu.com.   IN         A         172.16.10.105

  @3:主DNS,数据文件配置补充

参考格式

   @  IN SOA magedu.com admin.magedu.com  {

         @ NS   Dns1.magedu.com   自已

           @   NS   dns1.tech.magedu.com 子域

A  二个dns相应a记录

A  二个dns相应的a记录

    @4:配置示例:

步骤1:配置父域数据文件

技术分享

步骤2:配置子域named.conf文件以及数据文件

技术分享技术分享 

从服务器find.magedu.com数据文件

技术分享

  这里可配置转发 forward 包括only与first二个值,如果将forward放到options

表示全局,也可以指定相应的区域当中。如fin.magedu.com当中。

转发域

zone “zone Name” IN {

     type forward;

}

步骤 3:利用dig –t NX fin.maged.com @172.16.16.104

 

6:rndc:remote name daemon control

  rndc是bind管理工具,可以通过实现本地或远程了解当前运行。

  rndc一般禁用,与dns连接时,需要使用数字证书进行验证。用

rndc-confgen生成后,导入到named.conf文件中。在初始安装时

系统会自己生成/etc/rndc.key文件。

技术分享

语法:rndc  --help

Usage: rndc [-b address] [-c config] [-s server] [-p port]
    [-k key-file ] [-y key] [-V] command

运行rndc-config > /etc/rndc.conf

技术分享

rndc status #显示DNS运行状态

rndc reload #重新加载配置文件

rndc reconfig #重新加载named.conf和新的域配置文件

rndc dumpdb #导出缓存到文件

rndc flush  #清空缓存

rndc-confgen   为rndc key生成工具
示例:

rndc –c rndc.conf status  #查看状态

 

第三部分:CDN技术

   CDN(内容分发网络):由第三方运营商(主流为网宿、帝联、蓝汛

阿里、腾讯、百度等)

技术分享

三个核心技术 :

    CDN加速指静态资源

1、智能DNS:  bind-zld 支持mysql

      里面含有IP库等信息

       cip  cport  sip   sport

   源地址和源端口  | 目标地址和目标端口 

2、全局负载均衡:

3、缓存服务:

  针对静态资源具有单独的域名例如image.xxxx.com,

将其镜像到CDN网络中。

例如阿里,右键--》审查元素--》网络,选择相应的静态

文件即可(例如jpg等)

技术分享

20150920 DNS服务

标签:ip地址   system   domain   linux   record   

原文地址:http://wangsongbin.blog.51cto.com/1130001/1700078

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!