DNS域名服务

DNS:Domain Name Service 域名服务

  • DNS协议    
  • 基于C/S架构 
  • Client:发起应用请求的程序
  • Server:相应请求(提供服务)的程序;
  • 名称解析: ID和名称之间的转换的过程
  • 名称解析库:存放域名主机名的文件                                

    DNS名称解析方式

  • 正向解析和反向解析:其不在同一个名称空间,也非同一个解析库
  • 正向解析过程
  • 主机名到ip解析过程:
  • 当一个客户端
  • DNS查询过程
  • 迭代:服务器自己遍历分布式服务系统反馈客户端请求
  • 递归:客户端向本机记录或所属DNS服务器发出一次请求,而获取结果的.
  • 一般查询分为两段:首段递归(客户端向所属DNS发出请求),二段迭代(服务器遍历分布式服务系统响应客户端请求)
  • 完整的一次查询请求过程:
  • 客户端先查询本机hosts文件没有则在查询本机缓冲后向主服务器发出请求,服务器如果是自己负责的解析域则将请求反馈回来,然后主机根据服务器反馈的ip找到相对应的客户端;如果不是则遍历互联网服务器系统迭代查询最终返回是或者否.
  • 主机名称自右而左:
  • 示例
  • www(主机名).baidu(二级域).com(顶级域).(根域)
  • 从ip到主机名
  • 其过程与主机名到ip完全不相同, 它是由一个特殊的顶级域来完成映射
  • DNS服务器类型:

  • 负责解析至少一个域:
  • 主名称服务器
  • 辅助名称服务器
  • 负责缓存名称服务器不负责解析
  • 冗余机制:提高服务器冗余功能
  • 主从服务器:
  • 主DNS服务器:维护所负责解析的域数据库的那台服务器;读写操作均可进行;
  • 从DNS服务器每个一段时间从主服务器同步数据(解析库文件)只能进行读操作
  • 同步的操作实时方式
  • 对比序列号:数据库的版本号;主机数据库内容发生变化,其版本号递增.
  • 刷新时间间隔:refresh, 从服务器每多久到主服务器检查序列号更新状况;
  • 重试时间间隔:retry, 从服务器从主服务器请求同步解析库失败时,再次发起尝试请求的时间间隔;
  • 过期时长:expire,从服务器始终联系不到主服务器时,多久之后放弃从主服务器同步数据;停止提供服务;
  • 否定答案的缓存时长:
  • 如果主服务器数据更新也会通知从服务器随时更新数据
  • 同步方式:区域传送
  • 区域传送: 全量传送;增量传送
  • 全量传送:axfr,主服务器把整个区域的数据传送给从服务器
  • 从服务器第一次上线需要全部传送
  • 增量传送:lxfr,仅传送更新的数据;
  • 传送时基于tcp53号端口
  • 增量时基于udp53号端口

    区域(zone)和域(domain):

  • 每一个数据库是为一个区域
  • 比如:
  • 机名到IP需要正向解析库是为区域
  • IP到机名反向解析库是为区域
  • 所以每个与都由两个区域正向和反向解析,但是所谓域为逻辑概念,它们之间没有绝对的比较.
  • 区域数据库文件:
  • 记录类型:A,    AAAA,  PTR,SOA,NS,CNAME,MX
  • 资源记录的定义格式:
  • 语法:    name (根据正反向而定义)     [TTL]     IN    RR_TYPE         value(值)
  • SOA:必须为一个区域的第一条资源记录
  • name: 当前区域的名字;例如”正向123.com.”或者反向“2.3.4.in-addr.arpa.:可以用@取代
  • value:有多部分组成
  • (1) 当前区域的区域名称(也可以使用主DNS服务器名称);
  • (2) 当前区域管理员的邮箱地址;但地址中不能使用@符号,一般使用点号来替代;
  • (3) (主从服务协调属性的定义以及否定答案的TTL)
  • 例如:
  • 123.com.     86400(缓存时长)     IN         SOA     123.com.     admin.wds.com.  (
  • 2017052301(数字不要超过十位,自己定义) ; serial(注释)
  • 2H             ; refreshtime(刷新时间)
  • 10M         ; retry(重试时间)
  • 1W            ; expire (过期时间)
  • 1D            ; negative answer ttl (否定答案ttl值)
  • )
  • NS:Name Service,域名服务记录;一个区域解析库可以有多个NS记录;其中一个为主的;
  • name: 当前区域的区域名称
  • value:当前区域的某DNS服务器的名字,例如ns.wdscom.;
  • 注意:一个区域可以有多个ns记录;
  • 例如:
  • wds.com.     86400     IN     NS      ns1.wds.com.
  • wds.com.     86400     IN     NS      ns2.wds.com.
  • MX:Mail eXchanger,邮件交换器;
  • name: 当前区域的区域名称
  • value:当前区域某邮件交换器的主机名;
  • 注意:MX记录可以有多个;但每个记录的value之前应该有一个数字表示其优先级;
  • 优先级:0-99,数字越小优先级越高;
  • 如果有多个根据优先级高的优先提供服务
  • 正向反向不能互相包含
  • 例如:
  • wds.com.         IN     MX     10      mx1.wds.com.
  • wds.com.         IN     MX     20      mx2.wds.com.
  • A:Address, 地址记录,FQDN主机名 --> IPv4;
  • name:某个FQDN,例如www.abc.com.
  • value:某个IPv4地址;
  • 例如:
  • www.abc.com.        IN     A    1.1.1.1
  • www.abc.com.        IN     A    1.1.1.2
  • asd.abc.com.          IN     A    1.1.1.1
  • 一个主机可以有多个名
  • AAAA:地址记录, FQDN 主机名--> IPv6;
  • name:FQDN
  • value: IPv6
  • PTR:Pointer,IP --> FQDN主机名
  • name:IP地址,有特定格式,IP反过来写,而且加特定后缀;例如1.2.3.4的记录应该写为4.3.2.1.in-addr.arpa.;
  • value:FQND
  • 例如:
  • 4.3.2.1.in-addr.arpa.      IN  PTR    www.wds.com.
  • CNAME:Canonical Name(正式名称),也称别名记录;
  • name:FQDN格式的别名;
  • value:FQDN格式的正式名字;
  • 例如:
  • abc.wds.com.      IN      CNAME  www.wds.com.
  • 要想自己解析必须先定义区域
  • 注意:
  • (1) TTL可以从全局继承;
  • (2) @表示当前区域的名称可以取代当前区域;
  • (3) 相邻的两条记录其name相同时,后面的可省略;
  • 例如:
  • www.abc.com.        IN     A    1.1.1.1
  • IN     A    1.1.1.2
  • (4) 对于正向区域来说,各MX,NS等类型的记录的value为FQDN,此FQDN应该有一个A记录;

    DNS协议的实现 "BIND", PowerDNS(互联网服务器标准)

  • 首先下载bind
  • 程序环境:
  • 主程序:/usr/sbin/named
  • Unit File:/usr/lib/systemd/system/named.service
  • 配置文件:/etc/named.conf
  • 区域解析库文件:/var/named一般名字为:ZONENAME.zone
  • 配置解析一个正向区域:
  • 以wds.io域为例:
  • (1) 定义区域
  • 在主配置文件中(/etc/named.conf)或主配置文件辅助配置文件(/etc/named.rfc1912.conf)中实现;
  • zone  "ZONE_NAME"  IN  {
  • type  {master|slave|hint|forward};
  • file  "ZONE_NAME.zone";
  • };
  • 例如:
  • 编辑 /etc/named.rfc1912.zones,:定义区域
  • 区域名字即为域名;
  • 修改主配置文件:
  • 缓存名称服务器的配置:
  • 监听能与外部主机通信的地址;
  • listen-on port 53;
  • listen-on port 53 { 172.16.253.183; };
  • 关闭dnssec功能:不做安全性校验
  • /etc/named.conf
  • 允许所有人来查询:
  •  
  • (2) 建立区域数据文件(主要记录为A或AAAA记录)
  • 在/var/named目录下建立区域数据文件;
  • 定义区域文件内容
  • 任何计算机负责域解析要把域拆成区域正向或反向 要想自己解析必须先要定义区域
  • /var/named下的工具:
  • 检查配置文件语法错误
  • named-checkconf
  • 检查自己定的区域文件错误(只能检查语法不能检查逻辑错误)
  • 要确保named有访问权限,以及让其他用户没有访问权
  • 启动服务:service  named  start
  • host:测试工具

  • host -t A www.wds.io
  • dig 测试工具

  • 全量区域传送
  • rndc status 查询当前服务器状     
  • rndc flush 清除缓存
  • 反向解析:步骤如下

  • 编辑 /etc/named.rfc1912.zones,:定义区域
  • 建立区域数据文件(主要记录为A或AAAA记录)
  • 在/var/named目录下建立区域数据文件
  • 定义区域文件内容
  • 让服务器重载配置文件和区域数据文件
  • 反向解析:  测试
  • dig -x ip
  •         
  • 反向区域传送

  • 主从服务器:

  • 从服务器是区域级别的概念;
  • (1) 定义区域
  • 定义一个从区域;
  • zone "ZONE_NAME"  IN {
  • type  slave;
  • file  "slaves/ZONE_NAME.zone";
  • masters  { MASTER_IP; };
  • };
  • 示例:正反向区域定义
  • (2) 重载配置
  • rndc  reload
  • systemctl  reload  named.service

子域授权:

  • 正向解析区域授权子域的方法:
  • 配置数据文件分子域
  • 定义转发:
  • 注意:被转发的服务器必须允许为当前服务做递归;
  • (1) 区域转发:仅转发对某特定区域的解析请求;
  • zone  "ZONE_NAME"  IN {
  • type  forward;
  • forward  {first|only};
  • forwarders  { SERVER_IP; };
  • };
  • first:首先转发;转发器不响应时,自行去迭代查询;
  • only:只转发;
  • (2) 全局转发:针对凡本地没有通过zone定义的区域查询请求,通通转给某转发器;
  • options {
  • ... ...
  • forward  {only|first};
  • forwarders  { SERVER_IP; };
  • .. ...
  • };

bind中的安全相关的配置:

  • acl:访问控制列表;把来访的一个或多个地址归并一个命名的集合,随后通过此名称即可对此集全内的所有主机实现统一调用;
  • acl  acl_name  {
  • ip;
  • net/prelen;
  • };
  • 示例:
  • acl  mynet {
  • 172.16.0.0/16;
  • 127.0.0.0/8;
  • };
  • bind有四个内置的acl
  • none:没有一个主机;
  • any:任意主机;
  • local:本机;
  • localnet:本机的IP所属的网络;
  • 访问控制指令:
  • allow-query  {};  允许查询的主机;白名单;
  • allow-transfer {};  允许向哪些主机做区域传送;默认为向所有主机;应该配置仅允许从服务器;
  • allow-recursion {}; 允许哪此主机向当前DNS服务器发起递归查询请求;
  • allow-update {}; DDNS,允许动态更新区域数据库文件中内容;
时间: 2024-11-11 12:37:09

DNS域名服务的相关文章

01.DNS域名服务

01.DNS域名服务 ·IP地址难记,所以使用域名管理,域名与IP一一对应, ·域名分3部分,主机名,域名,类型,严格域名最后还有一个".",为根服务器,一般省略不写, ·DNS(domain name system)服务由DNS服务器提供, ·DNS客户端,普通电脑都是作为一个dns客户端使用, ·Linux中一般使用系统提供的gethostbyname()功能进行域名解析, ·解析基于方式:/etc/hosts文件,DNS(/etc/resolv.conf),NIS, ·通过配置文

Dns域名服务器之,ACL ,转发域及子域授权的基本配置

一.实验环境 三台LINUX服务器 1.主DNS服务器: 192.168.137.6 2.从DNS服力器(配置为转发域):192.168.137.7 3.子域DNS服务务器:192.168.137.9 二.安装DNS编写主配置文件及区域配置文件 vim /etc/named.conf 测试解析 IP:192.168.137.8不在ACL列表内无法解析 IP:192.168.137.7 在ACL列表内测试结果如下 二.配置转发域 IP:192.168.137.7无法上互联网非自已本地负责的区域,都

linux平台搭建DNS域名服务与常用配置

环境需求:一台装有linux系统的服务器,我这里用vmware虚拟了一台redhat6.5来给演示;实验:搭建普通的域名服务器:      1.安装BIND,如下图: 2.配置BIND服务,如下图: 3.验证域名服务,如下图: 配置主从DNS,如下:   在主DNS上编辑申明域正数据库文件:  运行命令vim /var/named/data/long.com$TTL 3H @ IN     SOA     dns.long.com.     root.long.com. (          2

DNS域名服务基础

一.1.DNS解析作用: 正向解析: 根据主机名称(域名)查找对应的ip地址,这是最基本.最常用的功能. 反向解析: 根据ip地址查找对应的主机名称(域名),例如反垃圾邮件安全防护等领域使用. 2.DNS的分布式结构: 常见的顶级域名 地区域:.cn .us..kr..hk..tw.- 组织域:.com..net..deu..org..gov..mil.- 3.DNS的查询方式: 4.DNS服务器的类型: 缓存域名服务器 向其他DNS服务器查询,获得域名->ip地址记录.缓存查询结果,提高重复查

DNS域名服务详解(1)

Hosts文件:早期主机之间通过/etc/hosts文件进行名称解析 hosts文件格式: 主机IP地址  FQDN(完整合格域名)  别名 由于后来,互联网上主机数量成千上万增长,hosts文件更新不及时且效率低,进而出现了DNS DNS,全称Domain Name Service,域名解析服务 DNS属于分布式的数据库架, 上层域仅知道其直属下层域 下层域只知道根域(可通过设定修过) DNS顶级域主要分为组织域,国家域,反向域 组织域:  .com  .net  .org等 国家域:   .

DNS域名服务及搭建缓存DNS服务器详解(2)

1.DNS服务安装:BIND,全名是Berkeley Internet Name Domain,此软件由ISC维护 /etc/named.conf:主要功能是定义BIND进程的工作属性和区域 /etc/rndc.key:全称Remote Name Domain Controller,主要存储密钥文件 /etc/rndc.conf: 配置信息: /var/named/:主要是存储区域数据文件 /etc/rc.d/init.d/named:服务脚本文件 bind-chroot:为了安全,改变name

DNS域名解析服务之(一)

bind系统的作用类型 整个internet中连接了N多个服务器,个人主机,其中大部分的网站.邮件等服务器都使用了域名形式的地址.如www.google.com,mail.163.com等.很显然这种地址形式要比使用64.233.189.147,202.108.33.74的IP地址形式更加直观,而且更容易被用户记住. DNS系统在网络中的作用就是维护着一个地址数据库,其中记录了各种主机域名与IP地址的对应关系,以便为客户程序提供正向或反向地址查询服务,即正向解析与反向解析. 正向解析:根据域名查

主从DNS

HTTP 超级文本传输协议 HTTP 访问返回结果---状态码 200 ok 正常状态 403 Forbidden    禁止访问-通常没有权限 404 File Not Found 文件未找到-------网站已被迁移或网址错误 500 Internal Error 服务错误                     index.html.var 格式不符合要求 503 Service Unreachable  服务不可用------超过负载   DNS域名服务基础 构建主/从DNS服务器 ##

DNS查询工具:host、nslookup、dig

作者:zhanhailiang 日期:2014-11-01 1. host host提供域名到IP地址的双向解析: host默认通过/etc/resolv.conf读取Name Server来解析,除非提供可选參数server. -a參数相当于进行ANY查询. [root@~]# host pic1.vip.com pic1.vip.com is an alias for pic1.vip.com.wscdns.com. pic1.vip.com.wscdns.com is an alias f