DNS 域名服务
2014-12-20 22:28
267 查看
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用来提供样本配置文件
![](http://images.cnitblog.com/blog/693068/201412/232124099684362.png)
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对文件进行检查
![](http://images.cnitblog.com/blog/693068/201412/232128239372873.jpg)
注意到主配置文件的路径
我们建立区域配置文件
我们先编辑区域配置文件的模板文件
全局ttl置顶以及SOA记录
$TTL(Time To Live ,生存时间)
SOA(start of authority ,授权信息开始)
分号“;”开始的部分表示注释
@ IN SOA 区域名.区域管理邮箱.(..
)
serial 更新序号
refresh 刷新时间
retry 重试间隔
expiry 失效时间
minimum 无效记录的生存周期
修改模板文件并重命名为主配置文件中描述的名字
![](http://images.cnitblog.com/blog/693068/201412/232154522962420.png)
重启dns服务
![](http://images.cnitblog.com/blog/693068/201412/232203320467433.png)
可以看到
成功解析
![](http://images.cnitblog.com/blog/693068/201412/232327357964539.png)
同样我们可以添加反向区域查找文件让DNS做反向解析
![](http://images.cnitblog.com/blog/693068/201412/271518186558999.png)
我们编辑antiyky这个文件
![](http://images.cnitblog.com/blog/693068/201412/271519387802954.png)
这是反向解析记录 可以注意到我们正想解析记录中的A记录变成了反向解析记录中PTR记录
同时在实际的生产环境中,可能会出现下列情况 我们需要对两百台主机做域名解析,他们被解析的域名往往具有一定的规律,但我们不方便将这两百条记录全部写上,因此,我们使用到了泛型解析格式为$GENERATE A-B 用GENERATE 产生 A到B的数列,如此大大减轻了配置的负担
![](http://images.cnitblog.com/blog/693068/201412/271526067183936.png)
可以看到,成功进行了解析
2 从域名服务器
在实际的生产环境中,为了保证服务器的高可用与负载均衡,我们需要进行主从DNS的配置
对于主DNS服务器,配置的时候我们需要使用transfer关键字
![](http://images.cnitblog.com/blog/693068/201412/271529531409196.png)
其中allow-transfer 指向从DNS服务器的IP
相比主DNS服务器。从DNS服务器不需要配置区域数据文件
![](http://images.cnitblog.com/blog/693068/201412/271537595308935.png)
type slave 声明自己是从Dns服务器
masters指明自己的主DNS服务器
不需要声明区域数据文件但是也需要声明从主Dns服务器拷贝过来的数据文件的存放路径,该存放文件需要与主Dns服务器的区域数据文件同名
![](http://images.cnitblog.com/blog/693068/201412/271606189529585.jpg)
重启后可以解析文件
当我更新了主DNS服务器的一条DNS记录
![](http://images.cnitblog.com/blog/693068/201412/271705099374416.png)
此时我们查看从Dns服务器
![](http://images.cnitblog.com/blog/693068/201412/271706481089257.png)
从DnS服务器
数据未变,那么如何实现同步呢?
我们将主DnS服务器的序列号+1
同时DNZ还可以配置子域授权与分离解析
很有可能会出现如下情况
比如说我们有这样的要求
父DNS服务器需要解析baidu.com该域
子DNS服务器需要解析tieba.baidu.com该域
事实上。我们需要达到的是这个效果
![](http://images.cnitblog.com/blog/693068/201412/302329551848919.png)
于是,我们在主DNS配置文件中又增加了chris.yky.com这个子域名,并将其管理员账号设置为who。chris.yky.com,同时我们指出who.yky.com这个域名所对应的ip这样一来便确定了解析该子域的Dns主机
![](http://images.cnitblog.com/blog/693068/201412/302359578727522.jpg)
当查询www.chris.yky.com的时候,父域会将该查询交给chris.yky.com授权的那台主机上,将在这台被交予授权的主机上
进行DNS解析,将得到的结果返还给父域的主机。所得到的是非权威记录
进行测试
此时用nslookup解析
![](http://images.cnitblog.com/blog/693068/201501/011002063099293.jpg)
由于此时本机的的dns地址是192.168.0.1而www.chris.yky.com地址的解析记录位于子域dns服务器的区域配置文件中
因此得到的是非权威解析记录
既然我们可以通过子域授权使得可以向父域dns服务器查找而得到子域dns服务器的区域解析记录
那么我们也可以通过子域转发使得可以向子域dns服务器查找而得到父域dns服务器的区域解析记录
So how to do it ?
在子域dns区域配置文件中添加相应的转发配置
![](http://images.cnitblog.com/blog/693068/201501/011013474507559.jpg)
![](http://images.cnitblog.com/blog/693068/201501/011014522948882.jpg)
一样的也是非权威解析记录
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代替
}
![](http://images.cnitblog.com/blog/693068/201501/011050097004336.jpg)
这样一来 地址为 192.168.0.1的客户机解析文件的时候使用的是yky.zone.1的这个文件
而地址为 192.168.0.2的客户机解析文件的时候使用的是yky.zone.2的这个区域配置文件
构建缓存DNS服务器
![](http://images.cnitblog.com/blog/693068/201501/011101554035339.png)
此为转发,如果是通过获取根区域数据文件来实现dns缓存服务器话,配置如下
![](http://images.cnitblog.com/blog/693068/201501/011112416226816.png)
其中named.ca可以通过 wget ftp://ftp.internic.org/domain/named.root来的到根服务器的解析记录
正向解析
根据主机名称(域名)查找其对应的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用来提供样本配置文件
![](http://images.cnitblog.com/blog/693068/201412/232124099684362.png)
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对文件进行检查
![](http://images.cnitblog.com/blog/693068/201412/232128239372873.jpg)
注意到主配置文件的路径
我们建立区域配置文件
我们先编辑区域配置文件的模板文件
全局ttl置顶以及SOA记录
$TTL(Time To Live ,生存时间)
SOA(start of authority ,授权信息开始)
分号“;”开始的部分表示注释
@ IN SOA 区域名.区域管理邮箱.(..
)
serial 更新序号
refresh 刷新时间
retry 重试间隔
expiry 失效时间
minimum 无效记录的生存周期
修改模板文件并重命名为主配置文件中描述的名字
![](http://images.cnitblog.com/blog/693068/201412/232154522962420.png)
重启dns服务
![](http://images.cnitblog.com/blog/693068/201412/232203320467433.png)
可以看到
成功解析
![](http://images.cnitblog.com/blog/693068/201412/232327357964539.png)
同样我们可以添加反向区域查找文件让DNS做反向解析
![](http://images.cnitblog.com/blog/693068/201412/271518186558999.png)
我们编辑antiyky这个文件
![](http://images.cnitblog.com/blog/693068/201412/271519387802954.png)
这是反向解析记录 可以注意到我们正想解析记录中的A记录变成了反向解析记录中PTR记录
同时在实际的生产环境中,可能会出现下列情况 我们需要对两百台主机做域名解析,他们被解析的域名往往具有一定的规律,但我们不方便将这两百条记录全部写上,因此,我们使用到了泛型解析格式为$GENERATE A-B 用GENERATE 产生 A到B的数列,如此大大减轻了配置的负担
![](http://images.cnitblog.com/blog/693068/201412/271526067183936.png)
可以看到,成功进行了解析
2 从域名服务器
在实际的生产环境中,为了保证服务器的高可用与负载均衡,我们需要进行主从DNS的配置
对于主DNS服务器,配置的时候我们需要使用transfer关键字
![](http://images.cnitblog.com/blog/693068/201412/271529531409196.png)
其中allow-transfer 指向从DNS服务器的IP
相比主DNS服务器。从DNS服务器不需要配置区域数据文件
![](http://images.cnitblog.com/blog/693068/201412/271537595308935.png)
type slave 声明自己是从Dns服务器
masters指明自己的主DNS服务器
不需要声明区域数据文件但是也需要声明从主Dns服务器拷贝过来的数据文件的存放路径,该存放文件需要与主Dns服务器的区域数据文件同名
![](http://images.cnitblog.com/blog/693068/201412/271606189529585.jpg)
重启后可以解析文件
当我更新了主DNS服务器的一条DNS记录
![](http://images.cnitblog.com/blog/693068/201412/271705099374416.png)
此时我们查看从Dns服务器
![](http://images.cnitblog.com/blog/693068/201412/271706481089257.png)
从DnS服务器
数据未变,那么如何实现同步呢?
我们将主DnS服务器的序列号+1
同时DNZ还可以配置子域授权与分离解析
很有可能会出现如下情况
比如说我们有这样的要求
父DNS服务器需要解析baidu.com该域
子DNS服务器需要解析tieba.baidu.com该域
事实上。我们需要达到的是这个效果
![](http://images.cnitblog.com/blog/693068/201412/302329551848919.png)
于是,我们在主DNS配置文件中又增加了chris.yky.com这个子域名,并将其管理员账号设置为who。chris.yky.com,同时我们指出who.yky.com这个域名所对应的ip这样一来便确定了解析该子域的Dns主机
![](http://images.cnitblog.com/blog/693068/201412/302359578727522.jpg)
当查询www.chris.yky.com的时候,父域会将该查询交给chris.yky.com授权的那台主机上,将在这台被交予授权的主机上
进行DNS解析,将得到的结果返还给父域的主机。所得到的是非权威记录
进行测试
此时用nslookup解析
![](http://images.cnitblog.com/blog/693068/201501/011002063099293.jpg)
由于此时本机的的dns地址是192.168.0.1而www.chris.yky.com地址的解析记录位于子域dns服务器的区域配置文件中
因此得到的是非权威解析记录
既然我们可以通过子域授权使得可以向父域dns服务器查找而得到子域dns服务器的区域解析记录
那么我们也可以通过子域转发使得可以向子域dns服务器查找而得到父域dns服务器的区域解析记录
So how to do it ?
在子域dns区域配置文件中添加相应的转发配置
![](http://images.cnitblog.com/blog/693068/201501/011013474507559.jpg)
![](http://images.cnitblog.com/blog/693068/201501/011014522948882.jpg)
一样的也是非权威解析记录
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代替
}
![](http://images.cnitblog.com/blog/693068/201501/011050097004336.jpg)
这样一来 地址为 192.168.0.1的客户机解析文件的时候使用的是yky.zone.1的这个文件
而地址为 192.168.0.2的客户机解析文件的时候使用的是yky.zone.2的这个区域配置文件
构建缓存DNS服务器
![](http://images.cnitblog.com/blog/693068/201501/011101554035339.png)
此为转发,如果是通过获取根区域数据文件来实现dns缓存服务器话,配置如下
![](http://images.cnitblog.com/blog/693068/201501/011112416226816.png)
其中named.ca可以通过 wget ftp://ftp.internic.org/domain/named.root来的到根服务器的解析记录
相关文章推荐
- 单位内部DNS架设及域名解析服务
- CentOS5.6 搭建DNS域名服务
- Active Directory 域服务 (AD DS) 服务器或域名系统 (DNS) 服务器角色从运行 Windows Server 2003、Windows Server 2008 或 Windows Server 2008 R2 的基于 x86 或基
- linux平台搭建DNS域名服务与常用配置
- DNS域名服务基础
- Google正式启用 DNS-Over-HTTPS 域名安全查询服务
- Google 发布 DNS 服务,从此不再有域名劫持
- CentOS7中安装DNS服务,并配合apache实现自定义域名访问
- Kubernetes1.6中配置私有 DNS 区域以及上级域名服务
- DNS服务(二):域名劫持
- DNS域名服务详解(1)
- 网站app被劫持怎么办?HTTPDNS阿里云域名防劫持, DNSPod 移动解析服务 D+
- DNS域名服务基础
- MDNS DDoS 反射放大攻击——攻击者假冒被攻击者IP向网络发送DNS请求,域名为“_services._dns-sd._udp.local”,这将引起本地网络中所有提供服务的主机都向被攻击者IP发送DNS响应,列举网络中所有服务
- DNS域名服务基础
- DNS域名正反向解析服务
- DNS域名服务之:动态DNS、生存时间值、DNS老化和净化、根提示、转发器
- DNS(域名系统)提供的服务以及工作机制
- OpenerDNS为中国用户提供域名解析服务
- 分离的DNS服务及其部署(解决外网可域名访问,内网不能域名访问问题)