DNS服务
DNS基础:
DNS即域名系统,DNS服务器把计算机的名字与其IP地址相对应
工作原理:
正向解析:
客户端向DNS服务器提交域名查询IP,DNS服务器做出响应
反向解析:
客户端向DNS服务器提交IP查询域名,DNS服务器做出响应
查询方式:
递归查询:
DNS服务器会发送返回客户请求的信息,或返回一个指出该信息不存在的错误信息。DNS服务器不会尝试联系其他DNS服务器以获取帮助。
迭代查询:
当DNS服务器没有该信息的记录时,它会返回一个可能具有要找的IP地址的DNS服务器的IP地址
完全合格域名:
FQON,格式:站点域名.域名后缀
DNS域名管理:
IANA,互联网数字分配结构,域名系统最高权威机构,主管国际化域名资源
CNNIC,中国互联网络信息中心,主管国家顶级域.cn授权域名代理
服务搭建:
软件包:bind,(保证安全,提供虚拟根支持bind-chroot,可安装)
服务名:named
主要程序:/usr/sbin/named
默认端口:tcp/udp 53(正常解析使用udp,主从同步使用tcp)
主配置文件:/etc/named.conf(指定负责解析的域名)
地址库文件:/var/named(主机名和IP地址的对应关系)
配置主文件:
options { #全局配置
listen-on port 53 { any; }; #指定监听端口,和网络接口,any表示所有主机
directory "/var/named"; #指定DNS数据文件路径
dump-file "/var/named/data/cache_dump.db"; #执行导出命令时,缓存数据 存储的路径
statistics-file "/var/named/data/named_stats.txt"; #指定Name服务的统计文件
allow-query { localhost; }; #指定可以访问DNS服务的客户端,any表示所有
};
zone "域名" IN{ #指定域,及域名的数据文件
type master;
#根域名使用hint,权威服务器使用master,从服务器使用slave
file "地址库文件名";
#默认地址/var/named/下,常用域名.zone格式命名
};
配置地址库文件:
模板:/var/named/named.localhost(注意权限,保证named拥有读的权限,常使用cp -p操作)
配置文件如下:
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
cl.com. NS server.cl.com. #指定server.cl.com为DNS服务器,server.cl.com和下一行必须同名
server.cl.com. A 127.0.0.1 #注意域名后的"."
www A 192.168.0.1 #指定www.cl.com的IP为192.168.0.1
DNS负载均衡:(较少使用)
在配置库文件中添加多条网址一样,使其指向的ip不一样,通过轮询达到负载均衡的作用
泛域名解析:
在库配置文件中添加一条记录:* A IP地址
在库配置文件中添加一条记录:域名 A IP地址(使用户即使只输入域名也能访问)
有规律的泛域名:
原理:使用函数"$GENERATE 数字1-数字2":生成一个范围以内的连续数字
在库配置文件中添加一条记录:$GENERATE 1-20 域名$ A 192.168.0.$($符号代表1-20的变量,有前面函数生成)
子域授权:
在父域名地址库文件中添加:(NS记录在相邻)
子域域名 NS 子域主机服务器完整域名
子域主机服务器完整域名 A 子域IP地址
父域转发:
更改子域名主配置文件中的类型为forward;地址库文件为"forwarders { 父域IP地址; };" (注:{前后都有空格)
DNS缓存:
内网为了加快内网访问速度
原理:将内网常用域名进行缓存,从而加快内网访问速度
实现方式:
全局转发:
将请求转发给指定DNS,请求递归
根域迭代:
依次向根、一级、二级DNS服务器请求递归
配置:主配置文件书写如下:
全局转发配置:
options {
directry "/var/named";
forwarders { 指定的DNS的IP地址 }; #类似父域名转发
};
根域迭代配置:
保留主配置文件中根域"."的zone
库配置文件/var/named/named.ca中存在根域地址
DNS分离解析:
定义:收到客户机的DNS的查询时:能够区分客户机的来源地址;为不同类别的客户机提供不同的解析结果(ip地址)
原理:使用主配置文件写入view视图将解析引导到地址库配置文件,通过地址库配置文件解析
配置内容:view视图
view "地址库名称1"{
match-clients{ 来源地址1;……; ); #可以写IP地址或IP网段192.168.146.2/24、acl列表
zone "域名" IN {
地址库1;
};
};
view "地址库名称2"{
match-clients{ 来源地址2;……; }
zone "域名" IN{
地址库2;
};
};
注:同一域名在多个视图内分别定义,其他地址库文件相互独立,从而实现解析结果的分离;定义vivw视图后,不允许在view以外出现zone配置,view总的zone个数须一样;优先级越靠前越高,来源地址any表示任意;需要将客户端完全分类,不能有遗漏
ACL列表
作用:保证view视图精简
验证DNS服务器:
1.使用ping命令
2.使用nslookup 需要解析的域名(注:该命令要在客户机的/etc/resolv.conf中键入"nameserver dns服务器ip地址";也可以在命令后指定dns服务器的ip地址)
注意事项:
注意防火墙,Selinux
将DNS在/etc/resolv.conf中的位置放在最前面,以免外部多个dns干扰