DNS的简介和BIND实现

DNS简介

DNS其实大家都不陌生,因为这个是我们访问互联网必不可少的一个东西,全称:Domain Name System。在当今计算机网络中是通过IP地址来进行主机之间互联的,但是我们知道IP地址有32位,以后还会普及IPv6,128位。对于人类来记忆实在太痛苦了。DNS的作用就是为了解决域名到IP之间的转换。这样大家就恍然大悟了吧,我们每天都在享受着DNS带来的便捷。

DNS是一个分布式、分层次的主机名管理架构,通过配置DNS服务器地址,主机不需要知道对应的IP地址就能通过主机名的形式访问互联网。那么你要想了,全球这么多IP地址,都在一台DNS服务器上,万一宕机了咋办?每天这么多访问量,配置得多高啊!前辈们早就想好解决方法了。DNS利用类似倒状树的目录结构将主机名的管理分配在不同层级的DNS服务器当中,经过分层管理,每一级DNS服务器负责部分域名信息,这就减轻了DNS服务器的负载。具体结构参考下图:

DNS解析过程

第一种:递归查询。递归查询一般是客户机和服务器之间的查询,即只发送一起请求,其他的工作交给上层服务器去解决,然后一层一层的反馈结果到客户端;

第二种:迭代查询。一般是DNS服务器与DNS服务器之间的方式,最初的服务器负责发起请求,一层层的找到目标服务器,在返回给客户端,这个过程叫迭代。

一次完整的查询请求经过的流程:

Client --> hosts文件 -->DNS service

Local DNS cache --> DNS server(recursion递归)-->server cache -->iteration(迭代) -->根--> 顶级域名DNS-->二级域名DNS…

DNS服务器的类型   

主DNS服务器:维护所负责解析的域内解析库服务器。解析库由管理维护;

从DNS服务器:从主DNS服务器或其他的从DNS服务器那里“复制”(区域传递)一份解析库;

缓存DNS服务器:提高DNS的访问速度,实现快速解析,在安装完成DNS软件后就已经实现了简单的缓存服务器,通常在/etc/named.conf当中的forward only设定;

转发器:通过区域传送,将所需要的域名解析传送给其他DNS服务器进行解析

区域传输:

完全传输:传送整个解析库

增量传输:传递解析库变化的那部分内容

DNS监听的端口

    DNS是一个网络服务,端口号是53.通常DNS在查询的时候是以udp这个快速的数据传输协议来查询的, 但是一旦没有办法查询到完整的信息时就会再次以TCP协议来进行重新查询,因此DNS服务在启动的时候会同时开启tcp的53号端口和udp的53号端口。

安装DNS服务

1、DNS服务程序包:bind,程序名:named

使用yum list all bind* 查看相关安装包:

bind:服务器;

bind-libs:于bind相关的库文件;

bind-utils:客户端相关命令文件;

bind-chroot:bind主目录禁锢程序,就是将bind程序禁锢在家目录中,centos6之后的系统已经默认在/var/named目录下了;

补充:如果你的程序是centos之前,那么还有一个软件包caching-nameserver:作用是为bind提供简单的配置文件模版,centos5之后的系统这个软件功能都被包含在bind主程序软件包当中。
        *根据需求使用yum安装bind软件

2、DNS服务器配置文件

第一步:修改主配置文件:/etc/named.conf                      <==主配置文件一般用来定义全局配置和根zone

~]#cat /etc/named.conf 
options {                          <==在options包含的是全局配置
                listen-on port 53 { any; };       <==监听的端口,即哪些主机可以进行访问解析;
                directory       "/var/named";     <==对应数据库文件的目录位置;       
                dump-fi    le       "/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; };       <==运行哪些主机请求查询,这里修改为any运行所有;
                recursion yes;                <==将自己视为客户端的一种查询方式;
                dnssec-enable no;              <==测试环境建议先关闭;
                dnssec-validation no;
};

第二步:配置/etc/named.rfc1912.zones              <==主配置文件之一,一般用来存放zone,就是定义解析的域

zone "ZONE_NAME" IN {                      <==ZONE_NAME表示要解析的域名,正解时就是域名本身,如:jd.com;反解的时候:ip网段反写.in-addr.arpa;
        type {master|slave|hint|forward};  <==定义zone的类型:master主DNS服务器,slave从服务器,hint根服务器,forward转发域
        file "ZONE_NAME.zone";             <==标明解析域名的数据库文件名
};

第三步:解析库文件:/var/named/ZONE_NAME.ZONE          <==与zone中file相对应,文件名必须一致

区域解析库:由众多资源记录RR组成:

资源记录类型:

1、SOA:Start Of Authority,起始授权记录;一个区域解析库有且仅能有一个SOA记录,必须位于解析库的第一条记录

格式:name       [TTL]      IN        rr_type          value

1、TTL表示该记录被其他dns服务器查询到后保留到对方服务器上的缓存当中保持多少秒,可全局继承;

2、name:当前区域的名字

3、value: 有多部分组成:

$TTL 1D
@    IN  SOA  dns1   admin.xiaomage.com. (          <[email protected]可用于引用当前区域的名字,dns1当前区域的主DNS服务器,admin.xiaomage.com.
                                                            当前区域管理员的邮箱地址;但地址中不能使用@符号,一般用.替换;
                                  31     ;序列号 
                                 1D     ;刷新时间
                                 1H     ;重试时间
                                 1W     ;过期时间
                                 3H )    ;否定答案的TTL值
dns1    IN  A                       *.*.*.*             <==主机名对应主机的IP地址

2、A :internet Address,作用,FQDN --> IP

3、AAAA: FQDN --> IPv6

4、PTR: 反向解析:有特定格式,把IP地址反过来写,1.2.3.4  要写出4.3.2.1;而且有特定后缀:in-addr.arpa.,所以完整写法为:4.3.2.1.in-addr.arpa.

例如:4.3.2.1.in-addr.arpa. IN PTR www.jd.com.       <==注意每个后面必须要加“.”作为结束符,不然系统会自动补上当前域名

5、NS: Name Server,专用于标明当前区域的DNS服务器,对NS记录而言,任何一个ns记录后面的服务器名字,都应该在后续有一个A记录

例如:jd.com    IN     NS    ns1.jd.com

6、CNAME:Canonical Name,别名记录

7、MX:Mail eXchanger,邮件交换器,对MX记录而言,任何一个MX记录后面的服务器名字,都应该在后续有一个A记录

测试命令

1、dig 只用于测试dns系统,不会查询hosts文件进行解析

语法:dig [-t type] name [@SERVER]

例如:dig -t a www.hxsd.com @1.1.1.1

+trace:跟踪解析过程

+recurse:进行递归解析

2、host [-t type] name [SERVER]

例如:host –t NS hxsd.com 172.16.0.1

3、nslookup命令:nslookup[-option] [name | -] [server]

交互式模式:

nslookup>

server IP: 指明使用哪个DNS server进行查询

set q=RR_TYPE: 指明查询的资源记录类型

NAME: 要查询的名称

非交互式模式:·

nslookup www.hxsd.com 172.18.0.1

时间: 2024-08-04 17:46:28

DNS的简介和BIND实现的相关文章

DNS域名解析服务(bind)

BIND简介: 现在使用最为广泛的DNS服务器软件是BIND(Berkeley Internet Name Domain),最早有伯克利大学的一名学生编写 BIND服务的名称称之为named DNS默认使用UDP.TCP协议,使用端口为53(domain),953(mdc,远程控制使用) DNS(Domain Name System,域名系统) 用于管理和解析域名与IP地址对应关系的技术. 简单来说,就是能够接受用户输入的域名或IP地址,然后自动查找与之匹配(或者说具有映射关系)的IP地址或域名

linux架构学习第二十四天-DNS详解及bind搭建各种DNS测试

内容: 一.DNS 1.域名系统概述 2.域名的结构 3.域名服务器 4.域名解析过程 5.域名服务器的资源记录(resource record RR) 二.bind搭建DNS服务器 1.bind的安装 2.搭建DNS服务器 3.搭建主从DNS服务器 4.实现DNS子域 5.实现DNS视图view(智能DNS) 一.DNS 1.域名系统概述 域名系统DNS(Domain Name System)是因特网使用的命名系统,用来把便于人们使用的机器名字转换成为IP地址.域名系统其实就是名字系统.为什么

DNS服务基础及bind基础配置和应用

DNS服务基础及bind基础配置和应用  DNS服务基础011.DNS:Domain   Name  Service,  ( 应用层协议)2.tld:Top Level Domain 顶级域(1)顶级域中的组织域.com  (company).net    网络组织.org非盈利型组织   org:other  organizations.gov  government.edu    教育机构.mil   military军事的,军队,军人...(2)顶级域中的国家域.tw   .hk  .cn

DNS系列- 2.dns服务搭建(bind编译安装)

DNS系列- 2.dns服务搭建(bind编译安装) 目录     一.安装bind         1.yum安装         2.编译安装     二.服务搭建         1.编辑DNS主配置文件         2.添加解析     三.测试         1.正向解析测试         2.反向解析测试 一.安装bind Bind(kerkeley Internet Name Deamon) 是现今互联网使用最广泛的DNS服务器软件,使用BIND作为服务器软件的DNS服务器

DNS服务及基于BIND的实现

1.DNS 概述 1.1.DNS的出现及演化 网络出现的早期是使用IP地址通讯的,那时就几台主机通讯.但是随着接入网络主机的增多,这种数字标识的地址非常不便于记忆,UNIX上就出现了建立一个叫做hosts的文件(Linux和Windows也继承保留了这个文件).这个文件中记录着主机名称和IP地址的对应表.这样只要输入主机名称,系统就会去加载hosts文件并查找对应关系,找到对应的IP,就可以访问这个IP的主机了. 但是后来主机太多了,无法保证所有人都能拿到统一的最新的hosts文件,就出现了在文

第十四节课:第13章,部署DNS域名解析服务(bind服务)

(借鉴请改动)  第十二章收尾  12.2.nfs网络文件系统 RHEL7默认安装了nfs,配置文件在  /etc/export  写入格式:共享目录    允许的客户端(参数)  ro                       //只读  rw                      //读写   root_squash         //当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户 no_root_squash     //当NFS客户端以root管理员访问时,映

DNS服务器安装与配置BIND

mylinux.com   172.16.100.0/24 ns   172.16.100.1 www  172.16.100.1 , 172.16.100.3 mail 172.16.100.24 ftp  www DNS:BIND软件 Berkeley Internet Name Domain ISC 下载地址www.isc.org [[email protected] yum.repos.d]# yum list  |grep "^bind" [[email protected]

第十八天 DNS服务原理及bind详细配置

1.DNS服务原理详解 2.DNS服务原理详解 3.bind基本配置详解 一.DNS 服务 Domain name server 域名服务,工作在53号端口,查询时使用udp协议,传输时使用tcp协议. FQDN (Full Qualified Domain Name)完全合格域名 根域:root domain   如:.                        一级域:top-level domain  如: com\net\cn\ gov\org\mil\edu\cc\info   

DNS篇二(BIND运用)

Internet域名空间     Internet域名空间结构为一棵倒置的树,并进行层次划分. 由树根到树枝,也就是从DNS根到下面的节点,按照不同的层次,进行了统一的命名. 域名空间最顶层,DNS根称为根域(root). 根域的下一层为顶级域,又称为一级域. 其下层为二级域,再下层为二级域的子域,按照需要进行规划,可以为多级. 所以对域名空间整体进行划分,由最顶层到下层,可以分成:根域.顶级域(一级域) 二级域.子域,其中域中能包含主机和子域. 区(Zone)