早期使用hosts文件解析域名,但是主机名称重复,主机维护困难。
DNS(Domain Name system域名系统)
/etc/nsswitch.conf :当系统中同时存在dns域名解析和/etc/hosts主机表机制时,用该文件确定主机名的解释顺序。
DNS系统的作用:
正向解析:根据主机名称查找对应的ip地址
反向解析:根据ip地址查找对应的主机域名
客户机及使用DNS解析,会先查看自己本地文件/etc/hosts文件,如果没有再看本地缓存,本地缓存没有,再看DNS服务器。
windows客户机有缓存,linux没有。
ipconfig /flushdns 清空缓存。
ping是会看缓存的,nslookup不会看缓存。
DNS树形结构:根域 ---> 顶级域 --->二级域 ----> 三级域 ---> 主机名
www.sxkeji.com.cn (www表示主机名,sxkeji为三级域,com为二级域,cn表示顶级域)
缓存域名服务器:将域名查询结果缓存到本地,提高重复查询时的速度
主域名服务器:负责维护该区域内所有的域名,ip地址的映射记录
从域名服务器:其维护的域名,ip地址的记录 来源于主域名服务器
配置DNS服务器
安装BIND软件包:
yum install bind*
bind-utils-9.3.3-7.el5.i386.rpm
客户端测试命令软件包
caching-nameserver-9.3.3-7.el5.i386.rpm(rhel6没有)
缓存服务器软件包,可以利用这个包生成的配置文件做模板,提高我们配置DNS的效率
bind-chroot-9.3.3-7.el5.i386.rpm
dns增强安全的软件包,安装后dns服务的根目录到/var/named/chroot,只要安装了这个软件包,则bind相关配置文件一定要保证named账户有读取和执行的权限
服务器端服务脚本:/etc/init.d/named
默认监听端口:53
主要配置文件:/var/named/chroot/etc/named.conf
数据文件位于:/var/named/chroot/var/named
如果没有安装bind-chroot软件包)
主要配置文件:/etc/named.conf
数据文件位于:/var/named目录
var/named/chroot/var/named/named.ca 指明13台根服务器的地址,bind9内置服务器地址,可以直接找到根。
主要配置文件named.conf
options { #全局配置
directory "/var/named"; #指定目录
dump-file "/var/named/data/cache_dump.db"; #查看缓存文件
forwarders{ #全局转发器(当服务器解析不了使,就交给全局转发器指定的ip服务器去解析)
8.8.8.8;
};
};
#include "/etc/named.rfc1912.zones"; #声明根和本地区域文件的路径
zone "wy.com"IN{ #区域配置,设置本服务器解析的特定DNS区域
type master; # 表示主域名服务器
file "wy.com.zone"; #指定文件
};
zone "xdx.com"IN{
type forward;
forwarders { #局部转发器(xdx.com这个域交给转发器指定ip服务器去解析)
10.0.1.111;
};
#recursion no #表示这台服务器解析不了,就不找其他服务器解析
};
zone "1.168.192.in-addr.arpa"IN{ #方向解析域,将ip地址解析成域名,需要反向写。
type master;
file "192.168.1.arpa";
};
rndc dumpdb 将缓存导入缓存文件
区域数据配置文件
DNS区域通过资源记录为客户提供相应域名解析
DNS区域文件中包含的资源记录的类型:
SOA 指定该区域的权威名称服务器
NS 表示某区域的权威服务器和SOA中的指定的该区域的主服务器和辅助服务器
A 列出区域中的域名到ip地址的映射
PTR 相对于A资源记录,PTR记录把ip地址映射到域名(做反向解析用)
MX 邮件交换记录,向指定邮件交换机提供消息路由
CNAME 将多个名字映射到统一台计算机,相当与别名。
编辑正向解析文件:
cp -a /var/named/named.localhost /var/named/wy.com.zone
vim wy.com.zone 编辑wy.com.zone文件
$TTL 1D
@ IN SOA dns root ( #形式:@ IN SOA 主机名 邮箱地址,它在每个区域是唯一记录
6 ; serial #序列号
1D ; refresh #更新
1H ; retry #重试
1W ; expire #过期
3H ) ; minimum #最小TTL
@ NS dns.wy.com. #主从服务器
NS dns1.wy.com.
A 10.0.1.9
www IN A 192.168.1.1 #主机名 IN A ip地址
dns IN A 10.0.1.9
ns1 IN A 192.168.1.5
编辑反向解析文件
cp -a /var/named/named.localhost /var/named/192.168.1.arpa (反向解析文件)
编辑192.168.1.arpa文件
$TTL 1D
@ IN SOA dns root (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ NS dns.wy.com.
NS dns1.wy.com.
1 IN PTR www.wy.com. #主机位倒序 IN PTR 主机名
修改玩配置文件后,重启服务:service named restart
named-checkconf工具:查看配置文件是否写错
named-checkconf -t /var/named/chroot
named-checkzone工具
格式:named-checkzone 域名 区域数据文件
客户机修改文件:
/etc/resolv.conf文件
nameserver 10.0.1.9 (DNS服务器ip)
用途:保存本机需要使用的DNS服务器的ip地址
dig命令:解析ip地址或区域
格式:dig hostname/ip @ip (@ip表示指定查询DNS服务器ip)
nslookup命令:
nslookup hostname/ip
测试效果:
[root@wenyao ~]# nslookup dns.wy.com
Server: 10.0.1.9
Address: 10.0.1.9#53
Name: dns.wy.com
Address: 10.0.1.9
[root@wenyao ~]# nslookup 192.168.1.1
Server: 10.0.1.9
Address: 10.0.1.9#53
1.1.168.192.in-addr.arpa name = www.wy.com.
构建从域名服务器:提供域名解析功能,它的数据不是直接输入的,是从其他服务器中复制过来的
所以从域名服务器中的数据无法被修改。它能够分担主服务器的负担,加快查询速度,提供容错能力。
1·修改从服务器上配置name.conf 文件
options {
directory "/var/named";
dump-file
forwarders{
8.8.8.8;
};
};
#include "/etc/named.rfc1912.zones";
zone "wy.com"IN{
type slave; #声明从域名服务器
masters{ #主服务器ip
10.0.1.9;
};
file "slaves/wy.com.zone"; #指定文件
};
zone "1.168.192.in-addr.arpa"IN{
type slave;
masters{
10.0.1.9;
};
file "slaves/192.168.1.arpa";
};
2·修改主服务器上的区域解析文件的序列号
@ IN SOA dns root (
6 ; serial (确保它比服务器从服务器的序列号大)
重启服务即可:service named restart