DNS 是 (Domain Name System) 的缩写,是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个,能够使人更方便的访问,而不用去记住能够被机器直接读取的IP数串.
# rpm -ql bind-utils
/usr/bin/dig #dig测试命令工具
/usr/bin/host #host测试命令工具
/usr/bin/nslookup #nslookup测试命令工具
bind:
主配置文件:named.conf,每个语句都要使用分号结尾;否则就是语法错误
程序文件:/usr/sbin/named
dig命令: dig -t 资源记录类型 名称 @server-ip
option:
[ -t type] 指定类型
[-x addr] 指定IP
资源记录类型名称:
NS :对应DNS服务器的FQDN
A :代表"主机名称"与"IP"地址的对应关系, 作用是把名称转换成IP地址
PTR:代表"IP地址"与"主机名"的对应关系,作用刚好与A记录相反
[@server-ip]:
不写IP,默认是本地服务器的IP
用@server-ip,指定服务器的IP
# dig -x IP @server-ip查找反向解析
dig +trace 跟踪解析
例如: #dig -t NS badu.com @192.54.112.30 +trace
#dig -t axfr zone 验证完全区域传送
host [option] 资源记录类型名称 [server-ip]
例如: #host -t A www.51cto.com 172.16.0.1
nslookup FQDN [server-ip]
例如: nslookup 172.16.0.1
named-checkzone "zone_name" /path/to/zone_file检测区域文件语法错误
chroot /mnt/sysroot
限定在/mnt/sysroot/目录下,防止被劫持而造成严重后果,一般生产环境中应用。
bind-chroot: named, /var/named/chroot/
一个FQDN可对应同多个IP:负载均衡
多个FQDN可对应一个IP:一台主机可以有多个名称
named -chechconf检测主配置文件语法错误
named-checkzone "magedu.com" /var/named/magedu.com.zone检测区域文件语法错误
修改完如果service named restart会使服务终止,所以service named reload 重新加载文件
#dig -t A www.magedu.com @172.16.100.1 查看A记录
#dig -t NS magedu.com @172.16.100.1 不能加www,因为NS后面是区域名称
#host -t A www.magedu.com @172.16.100.1 查看A记录
#dig -t CNAME ftp.magedu.com @172.16.100.1 查看别名
#dig -t axfr magedu.com @172.16.100.1 完全区域传送 显示所有信息
编辑vim /etc/resolv.conf
修改直接指向本机ip地址, 这样就不用每次都指向本机了
1、缓存服务器;
如果没有安装bind包,就自己配置yum源,然后安装bind包,例如:
#vim /etc/yum.repos.d/ yum.repo
【base】
name=RHEL6.4 x86_64
baseurl=http://172.16.0.1/cobbler/ks_mirror/centos-6.4-x86_64/
gpgcheck=0
安装bind
#yum -y install bind
主配置文件/etc/named.conf的修改:注释掉options段中如下选项,也可以修改
//listen-on port 53 { 127.0.0.1; };被注释掉
//listen-on-v6 port 53 { ::1; };被注释掉
//allow-query { localhost; };定义允许谁查询
forwarders { 127.16.0.1; };定义转发的服务器的ip,一般为运营商的ip地址
启动named服务:缓存DNS服务器; service named start
第一次需要开启服务,之后只需要加载配置文件即可
# service named reload (rndc reload)
# rndc status 显示DNS服务器的工作属性
2、主服务器
安装bind
#yum -y install bind
主配置文件/etc/named.conf的修改:注释掉options段中如下选项,也可以修改
//listen-on port 53 { 127.0.0.1; };
//listen-on-v6 port 53 { ::1; };
//allow-query { localhost; };
启动named服务: service named start
正向的主DNS服务器
在区域配置文件/etc/named.rfc1912.zones新建一个区域:
zone "区域名称" IN {
type master|slave|forward;
file "ZONE_NAME.zone";
};
例如 zone "magedu.com" IN {
type master;
file "magedu.com.zone"; /var/named为默认存放路径
allow-transfer { allowxfer } 允许定义在allowxfer 的主机做区域传送
}; 指定从服务器的ip地址
检测主配置文件语法错误:named-checkconf
在/var/named下建立“ZONE_NAME.zone”文件,通常只包含宏定义和资源记录,而第一个记录必须是SOA记录;例如:
$TTL 600
$ORIGIN magedu.com.
@ IN SOA dns.magedu.com. admin.magedu.com. (
2013081201
2H
10M
7D
6H )
IN NS dns.magedu.com.(或dns不加点)
IN MX 10 mail 10表示优先级
dns IN A 172.16.100.1
mail IN A 172.16.100.2
www IN A 172.16.100.6
ftp IN CNAME www 别名
确保属组为named ,权限为640
named-checkzone "magedu.com" magedu.com.zone 检查区域解析库文件
反向的主DNS服务器
在区域配置文件/etc/named.rfc1912.zones新建一个区域:
zone "4.16.172.in-addr.arpa." IN {
type master;
file "172.16.100.zone"; /var/named默认存放路径
};
检查主配置文件 #named-checkconf
#cp -p magedu.com.zone 172.16.100.zone查看属性信息
编辑文件/var/named/172.16.100.zone
$TTL 600;
$ORIGIN 100.16.172.in-addr.arpa.
@ IN SOA dns.magedu.com. admin.magedu.com. (
2013081201
2H
10M
7D
6H )
IN NS dns.magedu.com.
1 IN PTR dns.magedu.com.不能写dns 因为会自动补成 dns.100.16.172.in-addr.arpa.
2 IN PTR mail.magedu.com.
6 IN PTR www.magedu.com.
8 IN PTR www.magedu.com.
8 IN PTR pop.magedu.com.
#named-checkzone "100.16.172.in-addr.arpa." /var/named/172.16.100.zone 检查区域解析库文件
测试 #host -t PTR 172.16.100.1 解析172.16.100.1得主机名
3、辅助服务器
如何创建从服务器?(slave)
如果有多台DNS服务器,必须为每个DNS服务器建立NS记录,否则主DNS将不向发送通知;
区域定义:
zone "区域名称" IN {
type slave;
file "slaves/ZONE_NAME.zone"; /var/named/slaves下保存从服务器文件
masters {
MASTER_DNS_IP;
MASTER_DNS2_IP;
};
};
正向的从服务器
#vim /etc/named.conf:注释掉options段中如下选项,也可以修改
//listen-on port 53 { 127.0.0.1; };
//listen-on-v6 port 53 { ::1; };
//allow-query { localhost; };
例如:在/etc/named.rfc1912.zones里
zone "magedu.com" IN {
type slave; 指定类型为从服务器
file "slaves/magedu.com.zone"; 指定文件路径
allow-transfer { none } 一般从服务器不允许任何人做区域传送
masters { 172.16.100.1; }; 指定主服务器ip
};
#named-checkconf检测主配置文件是否有错误
在主服务器上加一个记录 vim magedu.com.zone
IN NS ns2
ns2 IN A 172.16.100.17
#named-checkzone "magedu.com" magedu.com.zone
#rndc reload
检测一下 #dig -t NS magedu.com
#service named start启动服务
可以看到 /var/named/下 有magedu.com
反向的从服务器
vim /etc/named.rfc1912.zones
zone "100.16.172.in-addr.arpa." IN {
type slave;
file "slaves/172.16.100.zone";
masters { 172.16.100.1; };
allow-transfer { none } 一般从服务器不允许任何人做区域传送
};
在主服务器上添加上:
IN NS ns2.magedu.com
17 IN PTR ns2.magedu.com
#named-checkzone “100.16.172.in-addr.arpa.” /var/named/172.16.100.zone
序列号加一表示修改过的
主和从服务器都要重新加载、同步 #service named start ;(rndc reload)
验证在windows上面的
打开输入命令nslookup 进入交换式模式
#server 172.16.100.17 服务器变成了172.16.100.17 启动服务
查看A记录 set q=A
www.magedu.com
查看NS set q=NS
magedu.com
MX记录 set q=MX
magedu.com