名词解释:
域名:
域名是域名系统名字空间中,从当前节点到根节点的路径上所有节点标记的点分顺序连接。
域:
域是指域名系统名字空间中的一个子集,也就是树形结构名字空间中的一颗子树。这个子树根节点的域名就是该域的名字,
域的级别:
顶级域(TLD, Top Level Domain)是指域名系统名字空间中根节点下最顶层的域。顶级域也称一级域,顶级域的下级就是二级域,二级域的下级就是三级域,以此类推。每个域都是其上级域的子域。最早的顶级域名,也是现在说的国际域名,按照用途分为的7个大类:
.com: 用于商业公司;.net:用于网络服务;.org:用于组织协会等; .gov:用于政府部门; .edu:用于教育机构; .mil:用于军事领域; .int:用于国际组织。
域名系统的分布式管理是通过逐级授权实现的。授权(Delegation),就是指将子域的管理授权给某一个特定的组织或机构,其记录信息就直接由该组织或者机构所管理的权威服务器进行存储和解析。域名系统里的NS记录就是用来做授权的,向下授权。
域名授权体系:
为有效地管理域名空间,根管理机构对TLD授权,TLD管理机构在对下一级域名授权,整个域名空间及相应的授权形成了一个授权体系。
互联网域名体系的根有ICANN负责管理。根区的维护由IANA(由ICANN负责运行的机构)负责。具体的根服务器运营是由12个机构(公司或组织)分别负责13个根。其中A根(A.ROOT-SERVERS.NET)为主服务器,其余12个根(B根(B.ROOT-SERVERS.NET)-M根(M.ROOT-SERVERS.NET))为辅服务器。
域名解析:
域名解析就是域名到指定IP的转换过程,域名的解析工作是由DNS(Domain Name Server)服务器来完成的。
DNS解析过程
如图所示:bh4cxj.com域里的USER1用户想要访问www.xxxx.net的域名解析过程
1、USER1想要访问www.xxxx.net,首先查找本地的hosts文件,如果本机上的hosts文件中有目标主机的记录,USER1就可以通过查询到的IP去访问目标。如果hosts文件中没有,接着会查询本机上的dns缓存,查到就访问目标。
2、如果USER1在本机上没有查到目标IP,就会向本地网域的DNS服务器查询,查询DNS上的缓存,查到就把结果给USER1。本地DNS给本网域的用户提供了递归服务。
3、如果本地DNS没有记录,就由bh4cxj.com的DNS服务器向根(.)查询,指向.net网域的DNS,再由.net网域的DNS指向,目标网域xxxx.net的DNS服务器,通过查询xxxx.net的域名服务器得到www.xxxx.net的IP地址。然后由bh4cxj.com的DNS服务器把查询结果送给USER1。这是一个迭代的过程。
实验目标:
为网域bh4cxj.com做解析,要求建立主从DNS服务器,为其子域ops.bh4cxj.com做解析,同样要求建立主从DNS服务器。并且要求172.16.0.0/16网段的请求通过主DNS解析,192.168.1.0/24网段的请求通过从DNS解析。
实验环境配置信息
网域:bh4cxj.com
master NS: 172.16.249.116
slave NS: 172.16.142.53
mail:172.16.142.25
www server: 172.16.142.80/172.16.42.80
FTP server: 172.16.142.21
子域:ops.bh4cxj.com
master NS: 172.16.142.153
slave NS: 172.16.142.154
MX: 172.16.142.125
www server: 172.16.142.180
FTP server: 172.16.142.121
网域:bh4cxj.com 配置
1、BIND安装:
# yum install bind
2、修改master DNS服务器的主配置文件:/etc/named.conf,/etc/named.rfc1912.zones
# 全局配置段; 对全局生效的配置信息
options { listen-onport 53 { 127.0.0.1; }; # 监听在指定主机端口IPv4, 注释掉表示监听所有 listen-on-v6port 53 { ::1; }; # IPv6 directory"/var/named"; # 指定目录,后面的配置都是相对于这个路径的相对路径,最主要的配置; }; zone "." IN { typehint; file"named.ca"; }; include"/etc/named.rfc1912.zones"; # 包含/etc/named.rfc1912.zones中的配置文件
zone "." IN {};
指定迭代查询时指向根,根域的记录在/var/named/named.ca文件中
;; QUESTION SECTION: ;. IN NS ;; ANSWER SECTION: . 518400 IN NS M.ROOT-SERVERS.NET. . 518400 IN NS A.ROOT-SERVERS.NET. . 518400 IN NS B.ROOT-SERVERS.NET. . 518400 IN NS C.ROOT-SERVERS.NET. . 518400 IN NS D.ROOT-SERVERS.NET. . 518400 IN NS E.ROOT-SERVERS.NET. . 518400 IN NS F.ROOT-SERVERS.NET. . 518400 IN NS G.ROOT-SERVERS.NET. . 518400 IN NS H.ROOT-SERVERS.NET. . 518400 IN NS I.ROOT-SERVERS.NET. . 518400 IN NS J.ROOT-SERVERS.NET. . 518400 IN NS K.ROOT-SERVERS.NET. . 518400 IN NS L.ROOT-SERVERS.NET. ;; ADDITIONAL SECTION: A.ROOT-SERVERS.NET. 3600000 IN A 198.41.0.4 A.ROOT-SERVERS.NET. 3600000 IN AAAA 2001:503:ba3e::2:30 B.ROOT-SERVERS.NET. 3600000 IN A 192.228.79.201 C.ROOT-SERVERS.NET. 3600000 IN A 192.33.4.12 D.ROOT-SERVERS.NET. 3600000 IN A 128.8.10.90 E.ROOT-SERVERS.NET. 3600000 IN A 192.203.230.10 F.ROOT-SERVERS.NET. 3600000 IN A 192.5.5.241 F.ROOT-SERVERS.NET. 3600000 IN AAAA 2001:500:2f::f G.ROOT-SERVERS.NET. 3600000 IN A 192.112.36.4 H.ROOT-SERVERS.NET. 3600000 IN A 128.63.2.53 H.ROOT-SERVERS.NET. 3600000 IN AAAA 2001:500:1::803f:235 I.ROOT-SERVERS.NET. 3600000 IN A 192.36.148.17 J.ROOT-SERVERS.NET. 3600000 IN A 192.58.128.30 J.ROOT-SERVERS.NET. 3600000 IN AAAA 2001:503:c27::2:30 K.ROOT-SERVERS.NET. 3600000 IN A 193.0.14.129 K.ROOT-SERVERS.NET. 3600000 IN AAAA 2001:7fd::1 L.ROOT-SERVERS.NET. 3600000 IN A 199.7.83.42 M.ROOT-SERVERS.NET. 3600000 IN A 202.12.27.33 M.ROOT-SERVERS.NET. 3600000 IN AAAA 2001:dc3::35
这个文件可以通过命令得到
[root@localhost etc]# dig -t NS@a.root-servers.net
把这条命令的输出重定向到named.ca就可以得到最新的named.ca文件了
[root@localhost etc]# dig -t NS@a.root-servers.net > named.ca
/etc/named.rfc1912.zones配置文件:
zone "domain name" IN { type hint|master|slave|forward; file ""; };
可以定义一个区域,做解析或者反向解析:
type hint|master|slave|forward;
指定类型:hint 表示根域, master 表示主DNS, slave 表示从DNS, forward 表示做转发
file "";
提供区域解析库,文件目录相对应/var/named/
简单配置master DNS 主配置文件
编辑/etc/named.conf
[root@localhost etc]# vi /etc/named.conf
编辑/etc/named.rfc1912.zones
[root@localhost etc]# vinamed.rfc1912.zones
在配置文件中添加
检查两个配置文件有无语法错误
3、区域解析库
资源记录类型(RR, resource record)
name [ttl] IN RRType value
任何解析库文件第一个记录的类型必须是SOA(Start of Authority, 起始授权记录)
包含MNAME:主DNS服务器的 FQDN
RNAME:当前区负责人的邮箱,并将"@"改为".",以域名的方式存放
Serial number:序列号,32位无符号整数,用于主从更新时确定区的新旧版本
refresh:32位无符号整数,从服务器每两次检查主服务器的SOA记录之间的时间间隔。建议值为1200 - 43200,即20分钟 - 12小时
retry:重试间隔,32位无符号整数,辅服务器不能访问主服务器,就会在这个时间之后重试。建议值为300 - 7200,即5分钟 - 2小时,并且小于刷新间隔值
expire:过期时间,32位无符号整数,从服务器在持续多长时间内无法联系到主服务器时,仍然保持数据为有效。建议值为1209600 - 2419200,即2周 - 4周。
minmum:最小值,32位无符号整数,否定缓存时间,无资源记录的缺省缓存时间,建议值为3600 - 10800,即1小时 - 3小时。避免递归服务器短期内重复发出无效查询。
例如:
@ IN SOA ns.bh4cxj.com. admin.bh4cxj.com.( serialnumber refresh retry expire nagativeanswer ttl)
NS: 域名服务器
例如:
@ IN NS ns.bh4cxj.com.
MX: mail exchanger 邮件交换器
例如:
@ IN MX 10 mail.bh4cxj.com. @ IN MX 20 mail2.bh4cxj.com.
注意:
如果有多台MX服务器,每一个都必须有对应的MX记录;但各MX记录还有优先级属性(0-99)
对于正向解析文件来讲,每一个NS的FQDN都应该有一个A记录;
A: Address A记录用于正向解析库
例如:
www.bh4cxj.com. IN A 172.16.142.80 www.bh4cxj.com. IN A 172.16.42.80 ns.bh4cxj.com. IN A 172.16.249.116
CNAME: Canonical Name 权威名字,可以来定义别名
例如:
web.bh4cxj.com. IN A www.bh4cxj.com.
表示web 的权威名字是www
PTR: pointer 用于反向解析库
name: 逆向的主机IP地址加后缀in-addr.arpa,例如172.16.142.80/16,网络地址为172.16, 主机地址为142.80,其name为80.142.in-addr.arpa.
例如:
116.249.in-addr.arpa. IN PTR www.bh4cxj.com.
提供解析库:
在/var/named/下创建bh4cxj.com.zone文件
[root@localhost etc]# vi/var/named/bh4cxj.com.zone
检查zone
[root@localhostetc]# named-checkzone "bh4cxj.com" /var/named/bh4cxj.com.zone
[root@localhost etc]# service named configtest
4、修改区域文件权限:
[root@localhost named]# chown :namedbh4cxj.com.zone
[root@localhost named]# chmod 640bh4cxj.com.zone
查看修改后的属组和权限
5、启动进行测试:
[root@localhost named]# service named start
[root@localhost named]# ss -tunl |grep :53
可以看出服务已经启动
查看服务器运行状态
[root@localhost named]# service namedstatus
6、测试DNS服务器是否可以解析
解析www.bh4cxj.com
[root@localhost named]# dig -tA www.bh4cxj.com @172.16.249.116
可以看出已经解析到了已经设置的解析结果
解析mail.bh4cxj.com 和 ftp.bh4cxj.com
[root@localhost named]# dig -t A mail.bh4cxj.com@172.16.249.116
[root@localhost named]# dig -t A ftp.bh4cxj.com@172.16.249.116
查看所有的记录
[root@localhost named]# dig -t AXFR bh4cxj.com @172.16.249.116
简单总结步骤:
1安装BIND
2、配置主配置文件/etc/named.conf,/etc/named.rfc1912.zones
3、检查配置文件
# named-checkconf /etc/named.conf # named-checkconf /etc/named.rfc1912.zones
4、提供解析库
例如:假如解析区域为bh4cxj.com, 解析库为/var/named/bh4cxj.com.zone文件
5、检查解析库
# named-checkzone "bh4cxj.com" /var/named/bh4cxj.com.zone
6、检查named配置文件语法并启动服务,然后查看服务是否启动
# service named configtest # service named start # ss -tunl | grep :53 # service named status
7、测试域名是否如配置的情况解析
[root@localhost named]# dig -t Awww.bh4cxj.com @172.16.249.116 [root@localhost named]# dig -t A mail.bh4cxj.com@172.16.249.116 [root@localhost named]# dig -t A ftp.bh4cxj.com@172.16.249.116 [root@localhost named]# dig -t AXFR bh4cxj.com @172.16.249.116