DNS解析原理与Bind部署DNS服务
DNS是什么?
DNS(Domain Name System,域名系统)是互联网上最核心的带层级的分布式系统,它负责把域名转换为IP地址、反查IP到域名的反向解析以及宣告邮件路由等信息,使得基于域名提供服务称为可能,例如网站访问、邮件服务等。
DNS解析原理

DNS系统由两部分组成,一是Resolver解析器,作为DNS请求的客户端,负责从DNS记录中解析出IP或别名等信息;二是NS域名服务器,提供域名解析服务,例如Bind。
DNS服务器分为三类:一是权威域名服务器,用于解析域名或使用NS记录进行授权;二是缓存域名服务器,用于递归查询并缓存DNS记录;三是转发域名服务器,仅用于转发DNS请求给指定的上级域名服务器。
DNS记录类型
1.A记录:指定域名对应IP的记录
2.PTR记录:指定IP对应域名的记录
3.MX记录:邮件交换记录,也叫邮件路由记录,指向邮件服务器的IP
4.CNAME记录:别名记录,用于指向另一个域名
5.NS记录:域名服务器记录,指定该域名由哪个DNS服务器来解析
Bind部署DNS域名解析
Bind是什么?
BIND伯克利互联网域名服务(Berkeley Internet Name Domain)是一款全球互联网使用最广泛、能够提供安全可靠、快捷高效的域名解析的服务程序。
安装Bind服务程序
[root@localhost ~]# yum install -y bind-chroot
修改主配置文件
[root@localhost ~]# vim /etc/named.conf
12 options {
13 listen-on port 53 { any; }; //监听53端口所有来源信息
14 listen-on-v6 port 53 { ::1; };
15 directory "/var/named";
16 dump-file "/var/named/data/cache_dump.db";
17 statistics-file "/var/named/data/named_stats.txt";
18 memstatistics-file "/var/named/data/named_mem_stats.txt";
19 allow-query { any; }; //允许所有来源访问
正向解析:由域名到IP
配置区域文件
[root@localhost ~]# vim /etc/named.rfc1912.zones
zone "test.com" IN{
type master; //服务器类型:主服务器
file "test.com.zone"; // 数据文件名称
allow-update {none;}; // 是否允许从服务器更新解析数据
};
配置域名解析文件
[root@localhost ~]# cd /var/named
[root@localhost named]# cp -a named.localhost test.com.zone
[root@localhost named]# vim test.com.zone $TTL 1D
@ IN SOA test.com. root.test.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns.test.com. //域名服务器记录:表示该域名由哪台DNS进行解析
ns IN A 192.168.41.10 IN MX 10 mail.test.com. //邮箱交换记录,用于邮件系统解析
mail IN A 192.168.41.10 www IN A 192.168.41.10 //地址记录,表明三级域名www.test.com 对应的解析地址
bbs IN A 192.168.41.10
重启服务,进行测试
[root@localhost named]# systemctl restart named
[root@localhost named]# systemctl enable named
[root@localhost ~]# nslookup //常用解析器
> www.test.com
Server: 192.168.41.10
Address: 192.168.41.10#53 Name: www.test.com
Address: 192.168.41.10
> bbs.test.com
Server: 192.168.41.10
Address: 192.168.41.10#53 Name: bbs.test.com
Address: 192.168.41.10
> #测试前记得修改DNS或者直接在/etc/resolve.conf中添加
反向解析:由IP到域名
配置区域文件
[root@localhost ~]# vim /etc/named.rfc1912.zones
zone "41.168.192.in-addr.arpa" IN{
type master;
file "192.168.41.arpa";
allow-update {none;};
};
配置反向解析文件
[root@localhost ~]# cd /var/named
[root@localhost named]# cp -a named.loopback 192.168.41.arpa
[root@localhost named]# vim 192.168.41.arpa $TTL 1D
@ IN SOA test.com. root.test.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns.test.com.
ns A 192.168.41.10
10 PTR ns.test.com.
10 PTR mail.test.com.
10 PTR www.test.com.
20 PTR bbs.test.com.
重启服务,进行测试
[root@localhost named]# systemctl restart named
[root@localhost named]# nslookup
> 192.168.41.10
Server: 192.168.41.10
Address: 192.168.41.10#53 10.41.168.192.in-addr.arpa name = www.test.com.
10.41.168.192.in-addr.arpa name = ns.test.com.
10.41.168.192.in-addr.arpa name = mail.test.com.
> 192.168.41.20
Server: 192.168.41.10
Address: 192.168.41.10#53 20.41.168.192.in-addr.arpa name = bbs.test.com.
>
部署从服务器
配置主服务器区域文件
[root@localhost named]# vim /etc/named.rfc1912.zones
zone "test.com" IN{
type master;
file "test.com.zone";
allow-update {192.168.41.30;}; //允许从服务器更新
};
zone "41.168.192.in-addr.arpa" IN{
type master;
file "192.168.41.arpa";
allow-update {192.168.41.30;};
};
配置从服务器区域文件
[root@localhost ~]# vim /etc/named.rfc1912.zones
zone "test.com" IN{
type slave; //服务器类型:从服务器
masters {192.168.41.10;}; //主服务器IP
file "slaves/test.com.zone"; //同步的文件保存的地址
};
zone "41.168.192.in-addr.arpa" IN{
type slave;
masters {192.168.41.10;};
file "slaves/192.168.41.arpa";
};
重启服务,进行测试
[root@localhost slaves]# cd /var/named/slaves/
[root@localhost slaves]# systemctl restart named
[root@localhost slaves]# ls
192.168.41.arpa test.com.zone // 主服务器数据文件已经同步过来了
[root@localhost slaves]# nslookup
> www.test.com
Server: 192.168.41.30
Address: 192.168.41.30#53 Name: www.test.com
Address: 192.168.41.10
> bbs.test.com
Server: 192.168.41.30
Address: 192.168.41.30#53 Name: bbs.test.com
Address: 192.168.41.10
> 192.168.41.10
Server: 192.168.41.30
Address: 192.168.41.30#53 10.41.168.192.in-addr.arpa name = www.test.com.
10.41.168.192.in-addr.arpa name = mail.test.com.
10.41.168.192.in-addr.arpa name = ns.test.com.
> #测试前记得修改DNS或者直接在/etc/resolve.conf中添加
#同步之前记得设置或关闭主服务器防火墙,主从服务器都要重启named服务
几点说明
1./etc/resolve.conf是设置DNS的文件,解析器需要读取该文件请求DNS服务。
2.当网卡重启时,/etc/resolve.conf文件内的设置将会被网卡配置文件中的DNS设置覆盖,所以如果希望DNS设置永久生效,则要在网卡配置文件中配置DNS;如果只是临时修改或添加DNS,则直接配置/etc/resolve.conf文件即可。
3.Bind服务默认开启递归查询功能,所以既是缓存域名服务器,又是权威域名服务器。如果仅作为权威服务器用于域名解析,则可以关闭递归查询功能;
vim /etc/named.conf
options {
listen-on port 53 { any; };
listen-on-v6 port 53 { ::1; };
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 { any; };
recursion no; // 关闭递归查询功能 dnssec-enable yes;
dnssec-validation yes;
4.DNS服务器中存放着全球13组根域名服务器的NS记录,保存在域名解析文件named.ca中。
vim /etc/named.conf
zone "." IN {
type hint;
file "named.ca";
};
vim /var/named/named.ca
; formerly NS.INTERNIC.NET
;
. 3600000 NS A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4
A.ROOT-SERVERS.NET. 3600000 AAAA 2001:503:ba3e::2:30
;
; FORMERLY NS1.ISI.EDU
;
. 3600000 NS B.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET. 3600000 A 192.228.79.201
B.ROOT-SERVERS.NET. 3600000 AAAA 2001:500:84::b
;
; FORMERLY C.PSI.NET
;
. 3600000 NS C.ROOT-SERVERS.NET.
C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12
C.ROOT-SERVERS.NET. 3600000 AAAA 2001:500:2::c
"/var/named/named.ca" 92L, 3289C
... ...
DNS解析原理与Bind部署DNS服务的更多相关文章
- centos DNS服务搭建 DNS原理 使用bind搭建DNS服务器 配置DNS转发 配置主从 安装dig工具 DHCP dhclient 各种域名解析记录 mydns DNS动态更新 第三十节课
centos DNS服务搭建 DNS原理 使用bind搭建DNS服务器 配置DNS转发 配置主从 安装dig工具 DHCP dhclient 各种域名解析记录 mydns DNS动态更 ...
- DNS解析原理和流程
DNS解析原理和流程 DNS解析其实就是将IP地址(202.96.134.133)变成域名(www.xxxxx.com) 网络通讯大部分是基于TCP/IP的,而TCP/IP是基于IP地址的,所 ...
- 使用bind部署DNS主从服务器
说明:这里是Linux服务综合搭建文章的一部分,本文可以作为单独搭建主从DNS服务器的参考. 注意:这里所有的标题都是根据主要的文章(Linux基础服务搭建综合)的顺序来做的. 如果需要查看相关软件版 ...
- 用户上网的基本流程图与DNS解析原理
1.用户上网发送请求,首先确认本地的hosts中是否含有域名,有则进行ip访问,如果没有呢?看本机的display缓存中有没有访问网站的ip,有就直接去访问 那么如果本地的hosts和缓存都没有呢?这 ...
- Linux 系统DNS解析原理
DNS:域名的解析,也称A记录,CDN服务器 配置文件位置: vi /etc/resolv.conf 解析原理 DNS就像一个倒挂的树,定点是点. www.baidu.com ==&g ...
- DNS解析原理
1.在浏览器中输入www.qq.com域名,操作系统会先检查自己本地的hosts文件是否有这个网址映射关系,如果有,就先调用这个IP地址映射,完成域名解析. 2.如果hosts里没有这个域名的映射,则 ...
- bind域名dns解析及主从服务的配置
bind域名dns解析及主从服务的配置 1.dns解析介绍 人们习惯记忆域名,但机器间互相只认IP地址,域名与IP地址之间是多对一的关系,一个ip地址不一定只对应一个域名,且一个域名只可以对应 ...
- DNS解析全过程及原理
DNS解析原理及过程. 当用户访问我们网站一个网页时,他需要经过以下步骤: 1)找到这个网页的存放服务器: 2)服务器将用户的请求信息接入: 3)服务器通过文件路径(URL)查找用户请求网页: 4)用 ...
- 分析DNS解析时间
提高网页的打开速度,一般地我们会选择使用CDN,利用“就近原则”让用户在最短的时间内获取到服务器资源,实际应用当中采用CDN的方式提高网站访问速度的效果也是最明显的.这也就是为什么国外的空间打开速度远 ...
随机推荐
- CentOS 文件特殊权限SUID,SGID,SBIT
1.SUID ,是一种对二进制程序进行设置的特殊权限,可以让二进制程序的执行者临时拥有所有者的权限(仅对拥有执行权限的二进制程序有效). (1)SUID权限仅对二进制程序有效: (2)本权限仅在执行该 ...
- P2672 推销员 优先队列 + 贪心
---题面--- 题解: 我会说我想这道普及组题都想了好久么.... 不熟练的普及组选手.jpg 最后随便猜了一个结论居然是对的... 放结论: 假设x = i的最优决策为f[i], 那么f[i + ...
- MySQL安装出现“不是内部或外部命令,也不是可执行程序”等一系列问题的解决方案
MySQL安装出现“不是内部或外部命令,也不是可执行程序” 一.这是应该是环境变量处问题了,设置如下: 1)右击我的电脑选择“属性”,找到“高级系统设置” 2)在系统属性下,选择“高级”中的“环境变量 ...
- HDOJ(HDU).2844 Coins (DP 多重背包+二进制优化)
HDOJ(HDU).2844 Coins (DP 多重背包+二进制优化) 题意分析 先把每种硬币按照二进制拆分好,然后做01背包即可.需要注意的是本题只需要求解可以凑出几种金钱的价格,而不需要输出种数 ...
- #define用法详解
1.#define 的作用 在C或C++语言源程序中允许用一个标识符来表示一个字符串,称为“宏”.被定义为“宏”的标识符称为“宏名”.在编译预处理时,对程序中所有出现的“宏名”,都用宏定义中的字符串去 ...
- OScached缓存整个页面和缓存局部页面
1.缓存整个页面 在OSCache组件中提供了一个CacheFilter用于实现页面级的缓存.主要用于对web应用中的某些动态页面进行缓存,尤其是那些需要生成PDF格式文件/报表.图片文件等的页面,不 ...
- ssh 远程执行命令简介
在写这篇博客之前,我google了一堆相关文章,大都是说修改/etc/sudoers,然后NOPASSWD:指定的cmd,但是真心不管用,没有远程虚拟终端这个方法就是浮云,ubuntu10.04 se ...
- CentOS7 搭建Apache环境
一.安装 yum -y install httpd 二.配置 主路径:/etc/httpd/ Apache目录说明 1 2 3 4 5 6 drwxr-xr-x 2 root root 4096 Ma ...
- ios的app,有新版本时必须先更新。
现在没时间整理,先把代码贴出来,以后再做详细的思路整理. 1 在AppController.mm的didFinishLaunchingWithOptions方法里面获取本地应用版本信息,保存起来. / ...
- 重写strstr、strcpy、memcpy、memset、atof算法
#include<stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> ...