Doman name Server 域名服务器
协议(53/udp 53/tcp)
Tcp:面向连接协议
Udp:无连接协议
本地解析配置文件:hosts
/etc/host //linux下
%windows%/system32/drivers/etc/hosts //window下
一级域:
Com,edu,mil,gov,net,org,int
名称服务器:域内负责解析本域内的名称主机。
根服务器:全球共13组跟服务器。
DNS服务器的类型:
主DNS服务器
辅助DNS服务器
缓存DNS服务器
转发器
{主DNS:维护所负责解析的域内解析库服务器,解析库有管理维护;
从DNS:从主DNS服务器或者其他的DNS服务器“复制”来的(区域传送)解析库}
序列号:解析库版本号,每次更改之后,主服务器的版本+1;
刷新时间:从服务器向主服务器请求同步解析库的时间间隔;
重试时间:从服务器从主服务器请求同步解析库失败时,再次尝试的时间间隔;
过期时间:在某时间内,主服务器没相应,从服务器罢免所有解析服务;
区域传送的两种方式:完全传送和增量传送。
递归查询:发送一次请求即可完成查询。缓存服务器属于递归查询。
迭代查询:发送一次请求,会有答案,或对或错。
一次完成DNS查询:
客户端–>hosts文件–>dns server递归查询(recursion) /local cache/server cache–>迭代查询(interation)
区域解析库-资源记录组成:
记录类型:
Soa:起始授权记录,一个区域解析库有且仅能有一个soa,必须出现在第一条。
A:正向 fqdn-ip
Ptr:反向解析 ip-fqdn
NS:表明当前区域的DNS服务器
Cname:别名
Mx:邮件交换记录
资源记录定义的格式:
语法:name [ttl] IN rr_type value
注意:
1.ttl可以从全局继承
[email protected]可引用于当前区域的名字
3.一个域名指向多ip,此时DNS会轮询方式响应。
4.多域名可以指向一个ip.
SOA记录:
Name:当前区域的名称,linuxsec.cn
Value:有多部分组成
(1)当前区域主DNS服务器的FQDN,也可以使用当前区域的名字;
(2)当前区域管理员的邮箱地址,但地址中不能使用@符号,一般用.替换,如:admin.linux.cn
(3)主从服务器协调属性的定义以及否定的答案统一的TTL
如:
Linuxsec.cn 86400 in soa ns.linuxsec.cn admin.linusec.cn.(
001;序列号
2h ;刷新时间
10m;重试时间
1w ;过期时间
1d ;否定答案的ttl
)
Ns记录:
name:当前区域的名字
value:当前区域的某个DNS服务器的名字,如:ns.linusec.cn 一个区域可有多个
如:
linuxsec.cn in ns ns1.linuxsec.cn
linuxsec.cn in ns ns2.linuxsec.cn
注意:
1.相邻的两个资源记录的name相同时,后续的可省略。
2.相对Ns而言,任何一个NS记录后面的服务器的名字,都应该在后续有一个A记录
Mx记录:
name:当前区域
value:当前区域某个邮件服务器的主机
一个区域内,MX可以有多个,但是每个记录的value值之前都应该有个数据(1-99),表示优先级。
如:
linuxsec.cn in mx 10 mx1.linuxsec.cn
in mx 20 mx2.linuxsec.cn
注意:
1.相对Mx记录而言,任何一个Mx记录后面的服务器名称,都应该在后续有一个A记录
A记录:
name:某主机的fqdn,如:www.linuxsec.cn
value:主机对应主机的ip地址
如:
www.linuxsec.cn. in a 1.1.1.1
www.linuxsec.cn. in a 1.1.1.2
www.linuxsec.cn in a 1.1.1.3
www.linuxsec.cn in a 1.1.1.4
注意:可以使用*域名解析
*.linuxsec.cn in a 1.1.1.4
避免用户输入错误名称时候给的错误答案,可以通过泛域名解析到指定地址。
AAAA记录:ipv6
ptr记录:
name:ip,有特定格式,把ip反过来写,1.2.3.4,写4.3.2.1,特定后缀in-addr-arpa ,4.3.2.1.in-addra.arpa
注意:网络地址以及后缀可以省略,主机地址依然需要反着写。
cname记录:
name:别名fqdn.
value:正名的dqdn
如:
web.linuxsec.cn in cname www.linuxsec.cn
bind服务安装前配置:
# yum list all bind* 查看bind的安装包
# rpm -qi bind-libs 查看libs安装包
# rpm -qlbind-utils 查看工具包 dig nslookup host
# yum info bind-chroot 查看未安装包的信息
# rpm -ql bind |less 查看bind的安装完成之后相关文件
bind
/etc/rc.d/init.d/named 脚本文件路径
/etc/named.conf , /etc/named.rfc1912.zones,/etc/rndc.key 主配置文件
/var/named/zone_name.zone 区域解析库文件
/etc/sysconfig/named 脚本的配置文件
rndc:remote name domain controller 远程域名控制 (默认和bind安装在同一服务器,且只能通过127.0.0.1来连接named进程,提供辅助性的管理)
注意:
1.一台物理服务器可以同时为多个区域文件提供解析
2.必须要根区域文件(named.ca)
3.应该有两个特殊区域。实现localhost和本地回环地址的解析库。localhost本地/loopback回环
bind.x86_64 主要安装包
bind-chroot.x86_64 程序目录限制 /var/named/chroot/
bind-utils.x86_64 DNS测试的工具包
bind-libs.i686 库文件
一.bind服务的安装
# yum install bind -y
# rpm -ql bind |less 查看生成的配置文件
/etc/named.conf 主配置文件
全局:option {};
日志:logging{};
区域:本机为哪些区域解析,就要定义哪些区域,zone "zone_name" in {};
include 定于区域文件的路径
#service named reload //重新加载配置文件
#endc reload 重新载入配置文件
ss -tunlp | grep :53 //查看53端口
# cp -v /etc/named.conf{,.bak} 复制named.conf配置文件
修改配置文件中的监听地址:listen-on port 53 { 127.0.0.1;192.168.118.128; };
# /etc/init.d/named restart 重启之后查看端口
# ss -an | grep :53
LISTEN 0 3 ::1:53 :::*
LISTEN 0 3 192.168.118.128:53 *:*
LISTEN 0 3 127.0.0.1:53 *:*
修改相关配置文件
allow-query { any; };
recursion yes; //是否开启递归查询
dnssec-enable no;
dnssec-validation no;
dnssec-lookaside auto;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
二.配置主DNS服务器:
1.)在主配置文件中定义区域
zone "linuxsec.cn" IN {
type {master|slave|hint|foward};
file"linuxsec.cn.zone";
};
2.)定义区域解析库文件
1.宏定义:@ttl
2.资源记录:
linuxsec.cn.zone 位置是相对于配置文件中的/var/named/**.zone
$ttl 1d
@ IN SOA ns1.linuxsec.cn admin.linuxsec.cn (
001
1h
5m
7d
1d)
IN NS ns1.linuxsec.cn.
IN NS ns2.linuxsec.cn.
IN MX 20 mx2.linuxsec.cn.
ns1 IN A 192.168.118.128
ns2 IN A 192.168.118.129
www IN A 192.168.118.128
ftp IN CNAME www
~
# named-checkconf 检查DNS配置文件是否有错
# named-checkzone "linuxsec.cn.zone" /var/named/linuxsec.cn.zone 检查DNS区域文件是否有错
zone linuxsec.cn.zone/IN: loaded serial 1
# ps aux | grep named 查看named服务运行状态
# ll /etc/named.conf -l
-rw-r—–. 1 root named 1021 4月 25 08:22 /etc/named.conf
安全期间把文件权限修改640,和把该文件的属组改成named
# chmod 640 /var/named/linuxsec.cn.zone
# chown :named linuxsec.cn.zone
# rndc status 查看服务器当前的系统状态
重启之后在真机测试:
C:\Users\Administrator>nslookup
DNS request timed out.
timeout was 2 seconds.
默认服务器: UnKnown
Address: 192.168.118.128
> www.linuxsec.cn
服务器: UnKnown
Address: 192.168.118.128
名称: www.linuxsec.cn
Address: 192.168.118.128
反向区域:
区域名称:网络地址反写.in-addr.arpa.128.118.168.192.–>
192.168.118.128.in-addr.arpa
1)定义区域
zone "zone_name" in {
type {master | slave| forward};
file "网络地址.zome"
};
zone "linuxsec.cn"IN {
type master;
file "linuxsecptr.cn.zone";
};
2)提供区域解析库文件
注意:不需要mx和A,以ptr为主
vim -o linuxsec.cn.zone linuxptr.cn.zone 对照编写。ctrl+o 跳转下面
$ttl 1d
$origin 118.168.192.in-addr-arpa.
@ IN SOA ns1.linuxsec.cn admin.linuxsec.cn. (
001
1h
5m
7d
1d)
IN NS ns1.linuxsec.cn.
IN NS ns2.linuxsec.cn.
128 IN PTR ns1.linuxsec.cn.
128 IN PTR www.linuxsec.cn.
127 IN PTR www.linuxsec.cn.
修改目录权限和文件属组
# chmod 640 linuxptr.cn.zone
# chmod :named linuxptr.cn.zone
dig 命令:
dig用于测试dns系统,因为不会查询host文件进行解析。
# dig –help
Invalid option: –help
Usage: dig [@global-server] [domain] [q-type] [q-class] {q-opt}
{global-d-opt} host [@local-server] {local-d-opt}
[ host [@local-server] {local-d-opt} […]]
Use "dig -h" (or "dig -h | more") for complete list of options
dig的使用:
dig -t -A www.linuxsec.cn @DNS地址 查询A记录
dig -t -A linuxsec.cn +trace跟踪解析过程
dig -t -recurse 递归解析,前提服务器需要开启递归
dig -t axfr linuxsec.cn @ 192.168.118.128 模拟区域传送
在本地测试:
[[email protected] named]# dig -t -A www.linuxsec.cn @192.168.118.128
;; Warning, ignoring invalid type -A
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6_6.2 <<>> -t -A www.linuxsec.cn @192.168.118.128
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51520
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 2
;; QUESTION SECTION:
;www.linuxsec.cn. IN A
;; ANSWER SECTION:
www.linuxsec.cn. 86400 IN A 192.168.118.121
www.linuxsec.cn. 86400 IN A 192.168.118.128
;; AUTHORITY SECTION:
linuxsec.cn. 86400 IN NS ns2.linuxsec.cn.
linuxsec.cn. 86400 IN NS ns1.linuxsec.cn.
;; ADDITIONAL SECTION:
ns1.linuxsec.cn. 86400 IN A 192.168.118.128
ns2.linuxsec.cn. 86400 IN A 192.168.118.129
;; Query time: 1 msec
;; SERVER: 192.168.118.128#53(192.168.118.128)
;; WHEN: Sat Apr 25 09:11:26 2015
;; MSG SIZE rcvd: 133
host命令:
# host –help
host: illegal option — –
Usage: host [-aCdlriTwv] [-c class] [-N ndots] [-t type] [-W time]
[-R number] [-m flag] hostname [server]
-a is equivalent to -v -t ANY
-c specifies query class for non-IN data
-C compares SOA records on authoritative nameservers
-d is equivalent to -v
-l lists all hosts in a domain, using AXFR
-i IP6.INT reverse lookups
-N changes the number of dots allowed before root lookup is done
-r disables recursive processing
-R specifies number of retries for UDP packets
-s a SERVFAIL response should stop query
-t specifies the query type
-T enables TCP/IP mode
-v enables verbose output
-w specifies to wait forever for a reply
-W specifies how long to wait for a reply
-4 use IPv4 query transport only
-6 use IPv6 query transport only
-m set memory debugging flag (trace|record|usage)
如:
host -t -A linuxsec.cn 192.168.118.128
host -t NS linuxsec.cn 192.168.118.128
host -t MX linuxsec.cn 192.168.118.128
nslookup命令:
server 8.8.8.8 使用Dns服务器的地址
set q=mx 指定查询资源的类型
name 要查询的命令
word文档下载:点击下载