DNS 域名服务
DNS服务器
正向解析
根据主机名称(域名)查找其对应的ip地址
反向解析根据ip地址查找其对应的主机名称(域名)
反向解析在反垃圾邮件/安全防护等领域使用
Dns查询方式分为迭代查询与递归查询
其中Dns客户端与客户端首选的Dns服务器之间是递归查询 而客户机首选的Dns服务器与其他的Dns服务器之间是迭代查询
DNS服务器的类型
1 主域名服务器
特定DNS区域的官方服务器具有唯一性
负责维护该区域内所有的域名 ip地址记录
2从域名服务器
也称为辅助域名服务器
其维护的域名 --> ip地址 记录取决于主域名服务器i
缓存域名服务器
向其他DNS服务器查询,获得域名-->ip地址记录
缓存查询结果,提高重复查询的速度
Bind 服务端程序
主要执行程序 /usr/sbin/names
服务脚本: /etc/init.d/named
默认端口 53
虚拟根环境 /var/named/chroot/
主配置文件 /etc/named/conf
区域数据文件 /var/named/..
详细过程
安装 yum -y install bind bind-chroot caching-nameserver
bind-chroot 用来改变根环境
caching-nameserver用来提供样本配置文件
listen-on port 53 { 192.168.10.1; };设置监听地址和端口
directory var /named 地址文件的默认位置
allow-query { 192.168.10.1 }允许。。。客户机查询
允许那些客户机查询
其中yky.zone 定义了正向区域
type master 定义了区域类型
master 主区域
slave 从区域
file yky.zone 定义了区域数据文件
在配置主文件之后,我们可以用named.checkconf对文件进行检查
注意到主配置文件的路径
我们建立区域配置文件
我们先编辑区域配置文件的模板文件
全局ttl置顶以及SOA记录
$TTL(Time To Live ,生存时间)
SOA(start of authority ,授权信息开始)
分号“;”开始的部分表示注释
@ IN SOA 区域名.区域管理邮箱.(..
)
serial 更新序号
refresh 刷新时间
retry 重试间隔
expiry 失效时间
minimum 无效记录的生存周期
修改模板文件并重命名为主配置文件中描述的名字
重启dns服务
可以看到
成功解析
同样我们可以添加反向区域查找文件让DNS做反向解析
我们编辑antiyky这个文件
这是反向解析记录 可以注意到我们正想解析记录中的A记录变成了反向解析记录中PTR记录
同时在实际的生产环境中,可能会出现下列情况 我们需要对两百台主机做域名解析,他们被解析的域名往往具有一定的规律,但我们不方便将这两百条记录全部写上,因此,我们使用到了泛型解析格式为$GENERATE A-B 用GENERATE 产生 A到B的数列,如此大大减轻了配置的负担
可以看到,成功进行了解析
2 从域名服务器
在实际的生产环境中,为了保证服务器的高可用与负载均衡,我们需要进行主从DNS的配置
对于主DNS服务器,配置的时候我们需要使用transfer关键字
其中allow-transfer 指向从DNS服务器的IP
相比主DNS服务器。从DNS服务器不需要配置区域数据文件
type slave 声明自己是从Dns服务器
masters指明自己的主DNS服务器
不需要声明区域数据文件但是也需要声明从主Dns服务器拷贝过来的数据文件的存放路径,该存放文件需要与主Dns服务器的区域数据文件同名
重启后可以解析文件
当我更新了主DNS服务器的一条DNS记录
此时我们查看从Dns服务器
从DnS服务器
数据未变,那么如何实现同步呢?
我们将主DnS服务器的序列号+1
同时DNZ还可以配置子域授权与分离解析
很有可能会出现如下情况
比如说我们有这样的要求
父DNS服务器需要解析baidu.com该域
子DNS服务器需要解析tieba.baidu.com该域
事实上。我们需要达到的是这个效果
于是,我们在主DNS配置文件中又增加了chris.yky.com这个子域名,并将其管理员账号设置为who。chris.yky.com,同时我们指出who.yky.com这个域名所对应的ip这样一来便确定了解析该子域的Dns主机
当查询www.chris.yky.com的时候,父域会将该查询交给chris.yky.com授权的那台主机上,将在这台被交予授权的主机上
进行DNS解析,将得到的结果返还给父域的主机。所得到的是非权威记录
进行测试
此时用nslookup解析
由于此时本机的的dns地址是192.168.0.1而www.chris.yky.com地址的解析记录位于子域dns服务器的区域配置文件中
因此得到的是非权威解析记录
既然我们可以通过子域授权使得可以向父域dns服务器查找而得到子域dns服务器的区域解析记录
那么我们也可以通过子域转发使得可以向子域dns服务器查找而得到父域dns服务器的区域解析记录
So how to do it ?
在子域dns区域配置文件中添加相应的转发配置
一样的也是非权威解析记录
Split view分离解析
我们想通过判断用户来源地址,给出不同的解析结果如何做
view "视图1" {
match-clients { 来源地址;};
zone “yky.com” IN {
type master;
file "yky.zone.1";
};
view "视图2" {
match-clients { any; };
zone “yky.com”IN{
type master;
file "yky.zone.2";
};
如上,其中match-client{ 来源地址;};
可以通过来源地址定义acl列表 如 acl "mylan"{
192.168.1.0/24;
127.0.0.0/24;
};
那么在定义acl之后来源地址就可以通过在acl中定义的匹配地址的那个变量代替如在本例中的mylan代替
}
这样一来 地址为 192.168.0.1的客户机解析文件的时候使用的是yky.zone.1的这个文件
而地址为 192.168.0.2的客户机解析文件的时候使用的是yky.zone.2的这个区域配置文件
构建缓存DNS服务器
此为转发,如果是通过获取根区域数据文件来实现dns缓存服务器话,配置如下
其中named.ca可以通过 wget ftp://ftp.internic.org/domain/named.root来的到根服务器的解析记录