DNS and bind

DNS(Domain name server,域名服务器)

是进行域名和与之对应的IP地址转换的服务器。

我们平时上网都是输入主机名来访问网站的,例如:www.baidu.com,这是一个主机名;

俩主机间通信要使用 IP+端口 的方式,因为IP地址不容易被人记忆,所以就使用方便人记忆的主机名,而电脑更容易接受IP地址的方式,所以我们就需要一个‘翻译官’——域名服务器。它可以把IP转换为主机名,也可以将主机名转换为IP地址;

早期,为了提供主机名与IP地址对应的应用,在本地引入了一个hosts文件,里面记录了每个主机名字和IP地址的对应关系;一个主机名还可以有多个别名。

随着互联网内的主机的增多,hosts文件也越来越大,而且还要不断更新,这种方法就不适用了;

这时,DNS服务器应运而生;

DNS协议采用分层的倒置的树状结构机制管理主机名,把大范围分成多个小范围。例如:你要申请一个域名baidu.con,在这个域名范围内添加3个主机:

一个是www,这个域名就是www.baidu.com;

一个主机作为bbs论坛使用,这个域名就是bbs.baidu.com;

一个主机作为blog博客使用,这个域名就是blog.baidu.com;

就是基于这种机制管理主机名的,因此,最顶级的叫根域.(点号)表示,即所有主机名都在根域下;

一级域:按照组织的类型的不同分为:

.com 表示商业机构

.org 表示非盈利性组织

.gov 表示政府机构

.mil 表示军事机构

.net 表示网络服务机构

.edu 表示教育机构

.name 表示个人网站

.info 表示信息提供


DNS and bind_第1张图片

DNS查询类型:

递归查询:本地客户端向本地的DNS服务器查询,只发出去一次请求,就给它返回答案;就像你找人问路,那个人虽然不知道你的目的地,但他会问朋友或者别人,直到问到答案人后交给你。

迭代查询:要发出去多次请求,需要自己查询不同的域名,最后才返回答案。再说上面问路的事,这次是你问A,A说B知道,你去问B吧;你问B,B说C知道,你问C去吧,就这样,直到你问出答案。

全球有13台根服务器

域名空间:父域只知道自己直属子域的地址,子域不知道父域的地址,所有DNS都知道13台根域的地址;

DNS服务器角色

主DNS:存放区域文件,管理域资源;

辅DNS:没有自己的区域文件,区域数据是从主DNS复制而来;

缓存服务器:(cache-only):提供高速缓存;

域资源类型

SOA:起始授权机构,定义DNS区域中的权威服务器;

NS:定义DNS区域正在提供DNS服务的主机;

A记录:主机记录(正向区域);

PTR指针:反向记录;

MX:邮件交换记录;

*:泛域名

CNAME:别名

DNS服务器端口

TCP:53(负责主/辅DNS数据复制)

UDP:53(负责DNS解析)

DNS主配置文件

options { #选项

listen-on port 53 { 192.168.100.136; }; #服务监听端口为53

listen-on-v6 port 53 { ::1; }; #服务监听端口为53(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; }; #允许连接的客户机

recursion yes; #递归查找

dnssec-enable yes; #DNS加密

dnssec-validation yes; #DNS加密高级算法

dnssec-lookaside auto; #DNS加密的相关东西

/* Path to ISC DLV key */

bindkeys-file "/etc/named.iscdlv.key"; #加密用的key(私钥公钥的加密,很强)

};

logging { #日志

channel default_debug {

file "data/named.run"; #运行状态文件

severity dynamic; #静态服务器地址(根域)

};

};

zone "." IN { #根域解析

type hint;

file "named.ca"; #根域配置文件

};

include "/etc/named.rfc1912.zones"; #扩展配置文件(新开域名)

/etc/named.rfc1912.zones 文件分析

zone "localhost.localdomain" IN { #本地主机全名解析

type master; #类型为主域

file "named.localhost"; #域配置文件(文件存放在/var/named目录中)

allow-update { none; }; #不允许客户端更新

};

zone "localhost" IN { #本地主机名解析

type master;

file "named.localhost";

allow-update { none; };

};

你可能感兴趣的:(DNS and bind)