• DNS基础概要


      dns服务系统由客户端和服务器组成,提供域名到ip地址的解析,或者提供ip地址到域名的逆向解析。

    1、DNS域名空间

      每个dns域名由分级的label构成,如www.sina.com.cn,由www、sina、com、cn四个label构成,label不区分大小写,每个label长度限制为63个字符,域名总长度限制不超过253个字符。域名按照从左往右方向解析,越往右级别越高。按照rfc规范,每个域名最右边都有一个点,如严格来讲前面新浪的域名应该写成www.sina.com.cn.,注意最后的一个点,表示根域名,这在定义服务器的zone文件时需要特别注意,避免遗漏最后的点。而在实际使用中,为了方便,最后的点通常不用写。

      这里顺便提下,通常所说的域名和全域名FQDN(也叫完全合格域名)的区别。通常情况下,形如www.sina.com.cn的域名,我们称最左边的www的主机名,主机名右边的sina.com.cn为域名,表示了该主机的域名路径。而主机名加上域名则称为FQDN域名。全域名的好处是可以从逻辑上准确地表示出主机在什么地方,也可以说全域名是主机名的一种完全表示形式。从全域名中包含的信息可以看出主机在域名树中的位置。

    域名空间中,所有的域名以点(.)为树根形成了一颗层次化的倒置树,如下:

    互联网上能够访问的域名是需要申请注册的。如果你想自己管理域名并能被互联网访问,你首先得花钱向专门的域名提供商申请注册,并提供你的域名服务器ip給上一级域名机构进行授权。当然,自己实验用的域名可以随便用,也不会授权,即使和互联网上的域名重复,也不会对互联网上真正的域名产生影响,互联网也访问不到你的域名。

    2、DNS服务器

      dns服务器在软件实现上,用ASN.1表示域名数据结构,用X.500进行编码,将域名和IP地址相互映射形成一个分布式DAP类型数据库,使得查询效率非常高。
    在windows操作系统上的DNS服务器部署比较简单,而且出错时会提示,通常windows server带有DNS服务。而在linux系统上部署DNS服务器,比较麻烦些,需要安装、配置、启动和测试排错,这里也主要讨论linux下DNS相关的内容。
     
      dns服务端软件用得最多的就是知名的bind系统,该系统是现今互联网上最常使用的DNS服务器软件。BIND现在由互联网系统协会(Internet Systems Consortium)负责开发与维护,一般部署在大型网络中提供服务。而近几年出现的dnsmasq应用,将dns和dhcp功能集成在一起,小巧灵活,多用于规模较小的公司,或者已成为家用路由器的首选。

      2.1、DNS服务器类型

      通常,dns服务器按角色分为两类:

      一、主从服务器。一个域的DNS服务系统由主Primary DNS Server(Master)和Seconday DNS Server(Slave) 从两台服务器两台服务器组成, 主服务器保存该域的zone配置文件,该域所有的配置、更改只能在主服务器上进行 ,而从服务器一般作为冗余负载使用,一个域的从服务器从该域的主服务器上同步(copy)zone配置文件,从服务器不进行信息修改,所有的修改变化由主服务器同步

      二、cache服务器。也就是Caching only Server DNS缓存服务器,该服务器上不存在任何zone文件,仅仅依靠缓存为客户端提供服务,用来加速查询。

      2.2、DNS服务器资源记录类型

      在DNS服务器上,DNS的各种信息通过一个叫做资源记录(RR,Resource Record)的格式进行保存,RR不仅仅能够保存域名到IP地址的映射信息,还能够保存很多其他信息 

    资源记录格式为:“NAME  CLASS  TYPE  RDATA",不同的记录有不同的属性,有些属性可以省略,通常我们按照type来称呼记录,如SOA记录、A记录、4A记录等,格式如下:

        www           IN   A       130.255.1.1 

        ftpserver     IN   AAAA     2001::1

        mail1          IN   A       130.255.1.254

        server1    IN   CNAME    www

    3、DNS客户端

       通常用户不会直接使用dns客户端,在系统中,dns客户端作为一个系统底层服务供上层应用程序、服务、进程使用发起dns域名查询,这些应用如ping应用、浏览器、邮件服务器等,在一些支持dns的路由器、交换机等嵌入式设备中,dns作为客户端模块为系统或其它模块提供域名查询功能。而诸如nslookup、host、dig命令,则是作为dns专用客户端查询工具,具有很多辅助选项和功能,能够对dns服务器各种功能进行比较全面的测试和故障排错。

      在Linux系统中,客户端域名通常基于文件(/etc/hosts、/etc/networks)和DNS服务器 (/etc/resolv.conf) 进行解析。可以通过配置文件/etc/nsswitch.conf控制查询先后顺序,通常情况下如hosts:files dns

  • 相关阅读:
    python百度ai的银行卡识别代码
    python百度ai的身份证识别代码
    Linux下安装jupyter
    HADOOP 与 jupyterlab 链接
    csv文件数据导出到mongo数据库
    Contos7 常用命令
    centos 安装Python3 及对应的pip
    PHP 连接数据库
    java 注解学习记录
    java简单实现搜索指定后缀文件
  • 原文地址:https://www.cnblogs.com/dingbj/p/dns_basic.html
Copyright © 2020-2023  润新知