DNS
监听tcp和udp的53端口,一般监听的是udp的53端口
查询方式:
1、递归查询(recursive):非常消耗服务器的资源,只在本地用
2、迭代查询
解析方式:
name-->ip正向解析
ip-->name方向解析
在域名树中,下级只知道根,不知道其他的级别,而上机知道
仅接着的下级,而不能越级
DNS中记录类型:
FODN--->IP: A
IP----->FQDN: PTR
DOMAIN-->SERVER : NS
DOMAIN-MTA: MX (mail exchanger)
别名-->正式名字: CNAME
起始授权记录:SOA (Start of Authority) 表示主域名服务器
DNS服务器的类型:
主服务器
辅助服务器
缓存名称服务器
转发器(实现内外防火墙之间的两个dns之间)
区域传送:
axft:完全区域传送
ixfr: 增量区域传送
区域类型
hint
master
slave
主服务器---辅助服务器
辅助服务器会定期到主服务器去同步数据
如果主服务器发生改变,会通知他的服务器来同步数据,防止
因时间差而照成的数据不同
名称解析:
正向:需要一个单独的数据文件
反向:需要一个单独的数据文件
区域:物理概念
域:逻辑概念
一个域包含一个正向区域和反向区域
client---流程:
1.先查看/etc/hosts
2.查看本地dns的缓存
正好查找到的主机解析出来的是权威答案,如果是从缓存中
返回的,是非权威答案
3.本地dns区域的文件
bind : Berkeley Internet Name Domain
bind-9.8.0-p4最新的版本
bind的配置文件:
/etc/named.conf(主配置文件)
/etc/rndc.conf(远程管理的)
/etc/rndc/key
数据文件:
/var/named下
name.ca
主配置文件/etc/named.conf
options {
version "haha";
directory "/var/named" //定义目录
};
zone "." IN {
};
zone "locahost.zone" IN {
};
zone "0.0.127.in-addr.arpa.zone" {
};
配置完成之后,需要把属组改为named
dig t NS . 查看根节点
生成named.ca文件
dig -t NS . @a.root-servers.net > /var/named/named.ca
区域配置文件/var/named/localhost.zone
宏定义
解析记录
$TTL 86400
name [ttl] IN RECORD_TYPE value
eg: 86400 IN A 1.1.1.1
1.1.1.1 86400 IN PTR
对于这个文件,第一条类型是SOA,而且对于一个数据文件只有
一个SOA
$TTL 8400
@(localhost.) 600 IN SOA localhost. admin.localhhost. (
2011081601 ;serial(“;”后为注释)序列号,为了辅助服务器的同步比较
1H (刷新时间,辅助服务器来同步间隔)
10M (重试时间)
7D (过期时间,如果这个时候还没重试成功,从服务器就“殉情”)
1D (否定回答的TTL值)
)
@ IN NS localhost.
localhost. IN A 127.0.0.1
在name.localhost文件中
$TTL 8400
@(localhost.) 600 IN SOA localhost. admin.localhhost. (
2011081601 ;serial(“;”后为注释)序列号,为了辅助服务器的同步比较
1H (刷新时间,辅助服务器来同步间隔)
10M (重试时间)
7D (过期时间,如果这个时候还没重试成功,从服务器就殉情)
1D (否定回答的TTL值)
)
@ IN NS localhost.
1 IN A PTR localhost.
然后把named*的属组改为named
检查named配置文件的语法错误
service named configtest
named-checkconf
named-checkkzone "localhost" /var/named/localhost.zone 区域坚持配置文件
netstat -tunlp | grep :53
vim /etc/resolv.conf 配置域名解析地址
dig -t A
辅助服务器:
主服务器采用notify机制来通知辅助服务器同步数据
zone "linuxidc.net" IN {
type slave;
file "slaves/linuxidc.net.zone";
masters { 172.16.100.1; };
Allow transfer { IP; };限制指定的IP 同步自己的信息
}
子域:
glue records:
tech.linuxidc.net. IN NS ns1. tech.linuxidc.net
ns2.tech.linuxidc.net IN A
部分转发:
完全转发
options {
forward only|first;
forwarders {IP};
};
部分转发
zone "linuxidc.net" IN {
type forward;
file "linuxidc.net";
forwarders { IP; };
};
dns中的acl
allow-query 允许查询
格式 eg: allow-query { 192.168.0.0/24; 127.0.0.0/8 };
访问控制列表一定要限定义,后使用,一般放在options上面
acl myclients {
192.168.0.0/24;
127.0.0.0/8;
};
然后在下面调用
allow-query { myclients };
dns中的视图(view)
使用view来实现自能dns
view NAME {
match-clients {};
zone1
zone2
...
};
view NAME {
match-clients {};
zone1
zone2
...
};
只要用了view,所有的zone都要位于view中
例子:
acl nei {
192.168.0.0/24;
127.0.0.0/8;
};
acl wai {
172.16.0.0/24;
};
options {
directory "/var/named";
};
view nei {
match-clients { nei; };
recursion yes;
zone "." IN {
type hint;
file "named.ca";
};
zone "linuxidc.net" IN {
type master;
file "linuxidc.net.nei";
};
};
view wai {
match-clients { wai; };
recursion no;
zone "." IN {
type hint;
file "named.ca";
};
zone "linuxidc.net" IN {
type master;
file "linuxidc.net.wai";
};
};