发布时间:2014-09-05 17:03:54作者:知识屋
DNS:domain name system
递归查询:进行一次查询就能得到最终结果
迭代查询:需要进行多次查询,才能得到最终结果
互联网上的应用方式一般是:本地递归,互联网部分迭代。
所有DNS都不知道其他DNS在哪里,但都知道根在哪里,本地主机向本地DNS递归,本地DNS出去迭代查询后向本地返回最终结果。
DNS常见的记录类型:
A记录: 由主机名解析IP地址
PTR记录:由IP地址解析主机名
NS记录: 用来指定本地的域名服务器(有主,有辅)
MX记录: 用来指定本地的邮件服务器
CNAME: 用来指定一个主机的别名
SOA: 起始授权记录,用来说明本域的主域名服务器
辅助域名服务器每隔一段时间要去主(或者其他辅助)域名服务器上面查询更新,以保证数据的一致性,
这个过程叫做区域传送,这个过程使用TCP协议,53号端口。为了保证数据的一致性,如果主服务器有更
新,也会及时告知从服务器过来同步。
区域传送有两种类型:
增量区域传送
完全区域传送
DNS服务器类型:1.主<-->从 2.缓存服务器 3.转发器
关于查询优先级:查找本地hosts文件->本地DNS缓存->本地DNS缓存->本地DNS区域文件->.....
$TTL 86400
@ IN SOA localhost. root.localhost. (在DNS配置文件中@代表本域有特殊意义,所以这里管理员邮箱以“.”代替并且后面跟一个“.”,固定格式。
1997022700 ; Serial 每次更新后服务器都将此号码更改,从服务器若查询到该号码改变就想服务器请求更新。
28800 ; Refresh 从服务器的更新时间
14400 ; Retry 从服务器若更新失败后的重试时间
3600000 ; Expire 重试多久后就宣告失败不再更新
86400 ) ; Minimum 若主服务器找不到对应的请求,允许客户端再次查询的时间
DNS转发:默认DNS服务器会为1000个client端做递归解析。
在配置文件中声明 recursion no完全关闭递归转发功能
声明为某个网段或者某个IP做递归 allow-recursion {IP/Net;}
在主配置文件中声明版本号 vsersion " ",防止别人通过dig命令来获取bind的版本信息搞破坏
完全转发:当DNS服务器收到查询请求的时候会先看看是不是查询本域的信息,本地缓存是否有数据,如果不能使用本地数据解析DNS会将查询请求发送给转发器,
此时是以递归查询的方式发送给转发器的,而在标准的DNS解析中,DNS服务器将以迭代查询的形式发送给另一个DNS服务器。
options {
forward only|first;
forwardsers {IP;};
}
only:仅仅依靠转发器来递归解析,如果转发器出现问题,就不解析了
first:先请求转发器,让其代为转发(请转发器做递归),如果转发器无响应就自己找根,此时开始标准的DNS解析也就是迭代查询。
部分转发(只转发解析某个域的DNS):假设有两个域,a.com和b.com,a.com这个域是经过授权(向上级注册,也就是.com知道他的存在)的,而b.com这个域没有经过授权,此时如果a.com中的一台主机要访问www.b.com就会出现访问不了,但是如果a.com知道b.com这个域的DNS主机是谁,即便b.com没有经过授权,这时a.com的DNS可以设一个部分转发,将本域所有要求解析b.com域的请求全部都发给b.com这个域的DNS主机就可以了。
部分转发一般用于访问未经授权的DNS域。配置格式
zone “b.com” IN {
type forward;
forwarders {IP;};
}
子域授权:
在父域的区域配置文件中以NS记录声明子域以及管理这个子域的DNS服务器(主和辅都声明了)
这里假设a.com这个域下面有一个子域net.a.com
配置很简单只需要在父域的区域配置文件中添加一条
net.a.com IN NS ns1.net.a.com
ns1.net.a.com IN A 1.1.1.1
设置允许进行DNS查询的主机
1、直接定义
在主配置文件中allow-query { 192.168.1.0/24; }; 定义允许192.168.1.0这个网段的主机进行DNS查询
2、使用acl
在options上面定义一个acl
acl clients {172.16.0.0/16;192.168.1.0/24;};
allow-query { clients; }; 这样就可以了同时允许这两个网段进行查询
智能DNS(DNS View):
我们知道网通和电信之间进行访问速度比较慢,现在架设服务器一般都是双线的,我们经过DNS的设置,让DNS自
动识别客户端IP是网通的还是电信的,网通就访问网通的服务器电信就访问电信的服务器。
这里我们假设网通属于192.168.1.0/24这个网段,电信属于172.16.0.0/16这个网段的
首先定义访问控制
acl telecom { 172.16.0.0/24; };
acl unicom { 192.168.0.0/24; };
接下来针对两种不同的客户IP范围定义两个DNS视图
view TELNET {
match-clients { telecom; };
match-destinations { any; };
recursion no;
include "/etc/named.telecom.zones";
};
view UNINET {
match-clients { unicom; };
match-destinations { any; };
recursion no;
include "/etc/named.unicom.zones";
};
这里假设我的DNS域为test.com,以下配置文件分别为:
vi named.telecom.zones(此文件由named.rfc1912.zones复制而来,以下是在原文件基础之上添加,)
zone "test.com" IN {
type master;
file "test.com.zone.tele";
allow-update { none; };
};
zone "0.16.172.in-addr.arpa" IN {
type master;
file "172.16.0.rev";
allow-update { none; };
};
vi named.unicom.zones(此文件同上,如果手动新建务必保证文件中有根域以及localhost域)
zone "test.com" IN {
type master;
file "test.com.zone.uni";
allow-update { none; };
};
zone "0.168.192.in-addr.arpa" IN {
type master;
file "192.168.0.rev";
allow-update { none; };
};
具体正反解文件内容不再列出,参考我博客里面之前介绍的DNS建立的过程建立,两个正反解文件除了IP之外保持完全一致
做完之后进行语法检查named-checkconf,named-checkzone
重启测试(我本机配置两个IP 192.168.0.162和172.16.0.162)
dig -t A www.test.com @172.16.0.162使用172.16.0.162作为DNS服务器来解析
dig -t A www.test.com @192.168.0.162使用192.168.0.162作为DNS服务器来解析
linux一键安装web环境全攻略 在linux系统中怎么一键安装web环境方法
Linux网络基本网络配置方法介绍 如何配置Linux系统的网络方法
Linux下DNS服务器搭建详解 Linux下搭建DNS服务器和配置文件
对Linux进行详细的性能监控的方法 Linux 系统性能监控命令详解
linux系统root密码忘了怎么办 linux忘记root密码后找回密码的方法
Linux基本命令有哪些 Linux系统常用操作命令有哪些
Linux必学的网络操作命令 linux网络操作相关命令汇总
linux系统从入侵到提权的详细过程 linux入侵提权服务器方法技巧
linux系统怎么用命令切换用户登录 Linux切换用户的命令是什么
在linux中添加普通新用户登录 如何在Linux中添加一个新的用户
2012-07-10
CentOS 6.3安装(详细图解教程)
Linux怎么查看网卡驱动?Linux下查看网卡的驱动程序
centos修改主机名命令
Ubuntu或UbuntuKyKin14.04Unity桌面风格与Gnome桌面风格的切换
FEDORA 17中设置TIGERVNC远程访问
StartOS 5.0相关介绍,新型的Linux系统!
解决vSphere Client登录linux版vCenter失败
LINUX最新提权 Exploits Linux Kernel <= 2.6.37
nginx在网站中的7层转发功能