通过域名,最终得到该域名对应的IP地址的过程叫做域名解析。
DNS协议运行在UDP协议之上,使用端口53号
DNS域名空间中,树的最大深度不得超过127层,树种每个节点最长可以存储63个字符。
2、域和域名
DNS树的每一个完全合格域名(FQDN)标识。FQDN能准确表示出其对于DNS域树根的位置,也就是节点到DNS树根的完整表述方式。
例如:google为com域的子域,其表示方法为googgle.com,而www为google域中的子域,可以使用www.google.com表示。
注意:FQDN有严格的命名限制,长度不能超过256字节,只允许使用字符a-z,0-9,A-Z和减号(-)。
.号只允许在域名标志之间和域名结尾使用。
域名不区分大小写,从最顶层到下层,可以分成:根域、顶级域、二级域、子域。
互联网的域名空间最顶层的是根域(root),记录这Interne的重要DNS信息,有Internet域名注册授权机构管理,该机构把域名空间各部分的管理责任分配给链接到Internet的各个组织。
全球有13个根域服务器:
1个为主根域服务器,在美国;其余12个为辅助根域服务器,
其中9个在美国;欧洲2个,分别在英国和瑞迪;亚洲一个,在日本。
3、域名的分类和等级
域名可以分为3中类型的顶级域分别是:
组织域:采用3个字符表示,表示组织的主要功能和活动,比如com为商业机构组织,edu为教育机构组织,gov为政府机构组织,mil为军事机构组织,net为网络机构组织,org为非盈利机构组织,int为国际机构组织。
地址域:采用两个字符的国家或地区代号,如cn表示中国,jp表示日本、hk表示香港,kr表示韩国,us表示美国。
反向域:特殊域,名字为in-addr.arpa,用于将IP地址映射到名字(反向查询)
二、DNS相关概念
1、DNS服务器
运行DNS服务器程序的计算机,存储DNS数据库信息。
2、DNS缓存
DNS服务器在解析客户机的域名请求时,如果本地没有该域名的记录,则会询问其它DNS服务器,当其它域名将解析结果返回给DNS服务器是,DNS将对应的记录保存在本地,生成DNS缓存,当下一次客户机再次请求是,DNS服务器则可以直接使用缓存中的DNS记录。
3、DNS查询方式:递归查询和迭代查询
递归查询:当客户机向DNS服务器发起域名解析请求时,DNS服务器首先查看自己本机的DNS记录,如果没有则会想其它DNS服务器发起解析请求。
迭代查询:当客户机向DNS服务器发起域名解析请求是,DNS服务器不会给客户机解析地址,而是告诉客户机另外一台DNS服务器,客户即再向这台服务器发起地址解析请求。
4、正向解析和反向解析
正向解析:指域名解析到IP地址的解析过程。
反向解析:指IP地址解析到域名的解析过程。
5、DNS资源记录
1)SOA资源记录
每个区在区的开始都包含了一个起始授权记录(Start of Authority Record),简称SOA记录
SOA定义了域的全局参数,进行整个域的管理设置。一个区域文件只允许存在唯一的SOA记录。
2)NS资源记录
NS(Name Server)记录是域名服务器记录,用来指定该域名由哪个DNS服务器来进行解析,每个区在区根处至少包含一个NS记录。
3)A资源记录
地址(A)资源记录把FQDN映射到IP地址。因为有次记录,所以DNS服务器能解析FQDN域名对应的IP地址。
4)PTR资源记录
相对于A记录,指针(PTR)记录把IP地址映射到FQDN。用于反向查询,通过IP地址,找到域名。
5)CNAME资源记录
别名记录(CNAME)资源记录创建特定FQDN的别名。用户可以使用CNAME记录来隐藏用户网络的实现细节,使链接的客户机无法知道真正的域名。
6)MX资源记录
邮件交换(MX)资源记录,为DNS域名指定邮件交换服务器。
三、DNS服务器安装及相关配置文件
1、安装DNS
BIND 简介:
BIND 全称为Berkeley Internet Name Domain(伯克利因特网名称域系统),BIND 主要有三个版本:BIND4、BIND8、BIND9。
BIND8版本:融合了许多提高效率、稳定性和安全性的技术,而BIND9 增加了一些超前的理念:IPv6支持、密钥加密、多处理器支持、线程安全操作、增量区传送等等。
安装命令:
[root@xuegod ~]# yum -y install bind bind-chroot bind-utils
安装包的作用:
bind.x86_64 32:9.9.4-73.el7_6 #DNS服务的主程序包
bind-chroot.x86_64 32:9.9.4-73.el7_6 #提高安全性
#bind-chroot是bind的一个功能,使bind可以在一个chroot 的模式下运行,也就是说,bind运行时的/(根)目录,并不是系统真正的/(根)目录,只是系统中的一个子目录而已,这样做的目的是为了提高安全性,因为在chroot的模式下,bind可以访问的范围仅限于这个子目录的范围里,无法进一步提升,进入到系统的其他目录中。
bind-utils-9.9.4-50.el7.x86_64.rpm #该包为客户端工具,系统默认已经安装的了,它用于搜索域名指令。
2、DNS服务器相关配置文件
[root@xuegod ~]# ls /etc/named.conf -l
-rw-r----- 1 root named 1808 1月 30 01:23 /etc/named.conf
named.conf是BIND的核心配置文件,它包含了BIND的基本配置,但其并不包括区域数据
/var/name/目录为DNS数据库文件存放目录,每一个域文件都放在这里
3、启动服务器
[root@xuegod ~]# systemctl start named
[root@xuegod ~]# systemctl enable named
Created symlink from /etc/systemd/system/multi-user.target.wants/named.service to /usr/lib/systemd/system/named.service.
[root@xuegod ~]# netstat -antup | grep 53
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 3501/named
4、服务的使用方法
在客户端上配置好DNS服务器地址
[root@xuegod140 ~]# vim /etc/resolv.conf
[root@xuegod140 ~]# cat /etc/resolv.conf
Generated by NetworkManager
nameserver 192.168.1.130
resolv.conf文件,添加DNS,此文件的生效范围是全局的,即是所有网卡都可以生效。
修改网卡添加的DNS,此方法添加DNS仅对当前网卡生效。
DNS1=192.168.1.130
5、配置文件详解
要求:配置DNS服务器解析:xuegod.cn
[root@xuegod etc]# cp /etc/named.conf /etc/named.conf.bak
DNS配置文件整体分为三段:
options:对全局生效
zone:针对某个区域生效
type:指定区域类型
type主要分为六种
Master:主DNS服务器,拥有区域数据文件,并对此区域提供管理梳理
Slave:辅助DNS服务器,拥有主DNS服务器的区域数据文件的副本,辅助DNS服务器会从主DNS服务器同步所有区域数据
Stub:stub区域和slave类似,但其只复制主DNS服务器上的NS记录,而不像slave复制DNS服务器的所有数据
Forward:一个forward zone是每个区域的配置转发的主要部分。一个zone语句中的type forward可以包括一个forward和/或forwarders子句,它会在区域名称给定的域中查询。如果没有forwarders语句或者forwarder是空表,那么这个域就不会转发,消除了options语句中有关转发的配置
Hint:根域名服务器的初始化组指定使用线索区域hint zone,当服务器启动时,它使用跟线索来查找根域名服务器,并找到最近的根域名服务器列表
四、实战-为公司搭建一个DNS服务器
1、配置正向解析区域
修改配置文件,授权DNS服务器管理xuegod.cn区域,并把该区域的区域文件命名为xuegod.cn
options {
listen-on port 53 { any}#把原来的127.0.0.1改为any。
listen-on-v6 port 53 { any}#把原来的::1,改为any。
directory “/var/named”
dump-file “/var/named/data/cache_dump.db”
statistics-file “/var/named/data/named_stats.txt”
memstatistics-file “/var/named/data/named_mem_stats.txt”
allow-query { any}#把原来的localhost,改为any。
recursion yes
dnssec-enable yes
dnssec-validation yes
dnssec-lookaside auto #加入此项。
1
2
3
4
5
1
2
3
4
5
zone “xuegod.cn” IN { #把原来的 . 改为xuegod.cn。
type master#把原来的hint,改为master。
file “xuegod.cn.zone”#把原来的named.ca,改为xuegod.cn.zone。
}
include “/etc/named.rfc1912.zones”
include “/etc/named.root.key”
2、创建zone文件
[root@xuegod etc]# cd /var/named #进入zone工作目录
[root@xuegod named]# ll -d named.localhost
-rw-r----- 1 root named 152 6月 21 2007 named.localhost
[root@xuegod named]# cp -a named.localhost xuegod.cn.zone
#-a参数,复制后的文件保留源文件权限
[root@xuegod named]# ll -d xuegod.cn.zone
-rw-r----- 1 root named 152 6月 21 2007 xuegod.cn.zone
[root@xuegod named]# vim xuegod.cn.zone
[root@xuegod named]# cat xuegod.cn.zone
$TTL 1D
xuegod.cn. IN SOA dns.xuegod.cn. root.xuegod.cn. (
0 serial #系列
1D refresh #刷新
1H retry #重试
1W expire #到期
3H ) minimum #最低限度
xuegod.cn. NS dns.xuegod.cn. #NS资源记录
dns.xuegod.cn. A 192.168.1.130 #A资源记录
www.xuegod.cn. A 192.168.1.130 #A资源记录
www1.xeugod.cn. CNAME www.xuegod.cn. #CNAME记录
3、重启DNS服务:
[root@xuegod named]# systemctl restart named
4、修改客户机的DNS记录
[root@xuegod140 ~]# vim /etc/resolv.conf
[root@xuegod140 ~]# cat /etc/resolv.conf
Generated by NetworkManager
nameserver 192.168.1.130
5、删除网卡配置文件的DNS记录
[root@xuegod140 ~]# cd /etc
[root@xuegod140 etc]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
[root@xuegod140 etc]# cat !$ | grep DNS1 #删除DNS1的行
cat /etc/sysconfig/network-scripts/ifcfg-ens33 | grep DNS1
6、测试结果:
[root@xuegod140 etc]# ping www.xuegod.cn
PING www.xuegod.cn (192.168.1.130) 56(84) bytes of data.
64 bytes from 192.168.1.130 (192.168.1.130): icmp_seq=1 ttl=64 time=0.216 ms
64 bytes from 192.168.1.130 (192.168.1.130): icmp_seq=2 ttl=64 time=0.359 ms
[root@xuegod140 etc]# ping www1.xuegod.cn
PING www.xuegod.cn (192.168.1.130) 56(84) bytes of data.
64 bytes from 192.168.1.130 (192.168.1.130): icmp_seq=1 ttl=64 time=0.216 ms
64 bytes from 192.168.1.130 (192.168.1.130): icmp_seq=2 ttl=64 time=0.255 ms
[root@xuegod140 etc]# ping dns.xuegod.cn
PING dns.xuegod.cn (192.168.1.130) 56(84) bytes of data.
64 bytes from 192.168.1.130 (192.168.1.130): icmp_seq=1 ttl=64 time=0.170 ms
64 bytes from 192.168.1.130 (192.168.1.130): icmp_seq=2 ttl=64 time=0.294 ms
总结:实验容易错误点
1)区文件的权限,需要注意,这里直接使用cp -a参数拷贝,保留文件的权限和属组、属主
2)服务端的防火墙必须要关闭,如果不关闭,就要放通DNS53号端口
3)客户端指定DNS地址时,resolv文件需要表示全局生效,本地网卡修改表示当前网卡生效
4)可以的话最好关闭NetworkManager
7、zone配置文件的参数说明
$TTL 1D:设置有效地址解析记录的默认缓存时间,默认为1天也就是1D。
xuegod.cn. IN SOA dns. xuegod.cn. root. xuegod.cn.
#原来的@表示当前的域xuegod.cn.,为方便大家记忆,在此直接写成xuegod.cn.
#设置SOA记录为:dns.xuegod.cn.
#在此配置文件中写域名时,都把根 . 也需要写上。
#域管理邮箱root.xuegod.cn. 由于@有其他含义,所以用“.”代替@。
0 :更新序列号,用于标示数据库的变换,可以在10位以内,如果存在辅助DNS区域,建议每次更新完数据库,手动加1。
1D :刷新时间,从域名服务器更新该地址数据库文件的间隔时间,默认为1天。
1H :重试延时,从域名服务器更新地址数据库失败以后,等待多长时间,默认为1小时。
1W :到期,失效时间,超过该时间仍无法更新地址数据库,则不再尝试,默认为一周。
3H :设置无效地址解析记录(该数据库中不存在的地址)默认缓存时间。设置无效记录,最少缓存时间为3小时。
NS @ :域名服务器记录,用于设置当前域的DNS服务器的域名地址,
A 127.0.0.1: 设置域名服务器的A记录,地址为ipv4的地址127.0.0.1,可以设置成192.168.100.102
AAAA ::1:设置域名服务器的A记录,地址为ipv6的地址。
资源记录参数详解:
CNAME 资源记录
别名(CNAME)资源记录用于为某个主机指定一个别名
CNAME 资源记录语法格式:
别名 CNAME 主机名
www1.xuegod.cn. CNAME www.xuegod.cn.
MX 资源记录
MX(邮件交换器)资源记录提供邮件传递信息。该记录会指定区域内的邮件服务器名称。
MX 资源记录语法格式:
mail A 192.168.1.63
MX 192.168.1.63
PTR 资源记录
指针(PTR)资源记录。该记录与A 记录相反,用于查询IP 地址与主机名的对应关系。
根区域是一个较为特殊的区域,记录列出全球根域名服务器信息,域名通常用“.”表示,如表 5-1 所示。
在这里插入图片描述
五、实战-DNS递归查询和搭建DNS转发服务器
1、使用DNS递归查询
修改配置文件:
[root@xuegod130 etc]# vim /etc/named.conf #修改DNS配置文件,修改如下内容。
options {
listen-on port 53 { any }#把原来的127.0.0.1改为any。
listen-on-v6 port 53 { any}#把原来的::1,改为any。
directory “/var/named”
dump-file “/var/named/data/cache_dump.db”
statistics-file “/var/named/data/named_stats.txt”
memstatistics-file “/var/named/data/named_mem_stats.txt”
allow-query { any}#把原来的localhost,改为any。
recursion yes#默认是支持递归查询。
#dnssec-enable yes
#dnssec-validation yes
#dnssec-lookaside auto
只需要把以上三条内容注释了,其它内容不用改,这样客户端才能通过这个DNS进行递归查询,把dns加密通讯功能关闭,才可以和根服务器时行迭代查询。:
2、重启DNS服务,使配置文件生效:
[root@xuegod63 ~]# systemctl restart named
3、在xuego140主机上进行测试:
[root@localhost network-scripts]# ping www.baidu.com
PING www.a.shifen.com (61.135.169.105) 56(84) bytes of data.
64 bytes from 61.135.169.105: icmp_seq=1 ttl=55 time=318 ms
64 bytes from 61.135.169.105: icmp_seq=3 ttl=55 time=147 ms
4、 搭建DNS转发服务器
[root@xuegod130 ~]# vim /etc/named.conf
options {
listen-on port 53 { any}#把原来的127.0.0.1改为any。
listen-on-v6 port 53 { any}#把原来的::1,改为any。
directory “/var/named”
dump-file “/var/named/data/cache_dump.db”
statistics-file “/var/named/data/named_stats.txt”
memstatistics-file “/var/named/data/named_mem_stats.txt”
allow-query { any}#把原来的localhost,改为any。
recursion yes#允许递归查询
#dnssec-enable yes#注释以下三行。
#dnssec-validation yes
#dnssec-lookaside auto
zone “xuegod.cn” IN {
#type master#注释此项
type forward#添加此项,类型为转发。
#file “xuegod.cn.zone”#注释此项
forward only #仅执行转发操作,only:仅转发,first:先查找本地zone,再转发。
forwarders { 8.8.8.8}#指定转发查询请求的DNS服务器列表。
}
重启DNS服务,使配置文件生效:
[root@xuegod63 ~]# systemctl restart named
在xuegod140主机上进行测试:
[root@localhost network-scripts]# ping www.baidu.com
PING www.a.shifen.com (61.135.169.105) 56(84) bytes of data.
64 bytes from 61.135.169.105: icmp_seq=1 ttl=55 time=318 ms
64 bytes from 61.135.169.105: icmp_seq=3 ttl=55 time=147 ms
六、实战-搭建DNS主从服务器
1、搭建一个主DNS服务器A,配置内容如下
[root@xuegod63 ~]# vim /etc/named.conf
options {
listen-on port 53 { any}#把原来的127.0.0.1改为any。
listen-on-v6 port 53 { any}#把原来的::1,改为any。
directory “/var/named”
dump-file “/var/named/data/cache_dump.db”
statistics-file “/var/named/data/named_stats.txt”
memstatistics-file “/var/named/data/named_mem_stats.txt”
allow-query { any}#把原来的localhost,改为any。
recursion yes
#dnssec-enable yes
#dnssec-validation yes
#dnssec-lookaside auto
zone “xuegod.cn” IN {
type master#指定类型为master。
file “xuegod.cn.zone”#指定为xuegod.cn.zone。
allow-transfer { 192.168.1.0/24}#指定允许哪个网段的从DNS服务器,可以同步主DNS服务器zone文件,不写默认为所有。
}
include “/etc/named.rfc1912.zones”
重启DNS服务,使配置文件生效:
[root@xuegod63 ~]# systemctl restart named
2、从DNS服务器的配置
要求:主从系统时间一定要保持一致。
域名系统,在TCP/IP 网络中有非常重要的地位,能够提供域名与IP地址的解析服务,而不用去记住能够被机器直接读取的IP数串。通过域名,最终得到该域名对应的IP地址的过程叫做域名解析。DNS协议运行在UDP协议之上,使用端口53号DNS域名空间中,树的最大深度不得超过127层,树种每个节点最长可以存储63个字符。2、域和域名DNS树的每一个完全合格域名(FQDN)标识。FQDN能准确表示出其对于DNS域树根的位置,也就是节点到DNS树根的完整表述方式。例如:google为com域的子域,其表示方法为googgle.com,而www为google域中的子域,可以使用www.google.com表示。注意:FQDN有严格的命名限制,长度不能超过256字节,只允许使用字符a-z,0-9,A-Z和减号(-)。.号只允许在域名标志之间和域名结尾使用。域名不区分大小写,从最顶层到下层,可以分成:根域、顶级域、二级域、子域。互联网的域名空间最顶层的是根域(root),记录这Interne的重要DNS信息,有Internet域名注册授权机构管理,该机构把域名空间各部分的管理责任分配给链接到Internet的各个组织。全球有13个根域服务器:1个为主根域服务器,在美国;其余12个为辅助根域服务器,其中9个在美国;欧洲2个,分别在英国和瑞迪;亚洲一个,在日本。3、域名的分类和等级域名可以分为3中类型的顶级域分别是:组织域:采用3个字符表示,表示组织的主要功能和活动,比如com为商业机构组织,edu为教育机构组织,gov为政府机构组织,mil为军事机构组织,net为网络机构组织,org为非盈利机构组织,int为国际机构组织。地址域:采用两个字符的国家或地区代号,如cn表示中国,jp表示日本、hk表示香港,kr表示韩国,us表示美国。反向域:特殊域,名字为in-addr.arpa,用于将IP地址映射到名字(反向查询)二、DNS相关概念1、DNS服务器运行DNS服务器程序的计算机,存储DNS数据库信息。2、DNS缓存DNS服务器在解析客户机的域名请求时,如果本地没有该域名的记录,则会询问其它DNS服务器,当其它域名将解析结果返回给DNS服务器是,DNS将对应的记录保存在本地,生成DNS缓存,当下一次客户机再次请求是,DNS服务器则可以直接使用缓存中的DNS记录。3、DNS查询方式:递归查询和迭代查询递归查询:当客户机向DNS服务器发起域名解析请求时,DNS服务器首先查看自己本机的DNS记录,如果没有则会想其它DNS服务器发起解析请求。迭代查询:当客户机向DNS服务器发起域名解析请求是,DNS服务器不会给客户机解析地址,而是告诉客户机另外一台DNS服务器,客户即再向这台服务器发起地址解析请求。4、正向解析和反向解析正向解析:指域名解析到IP地址的解析过程。反向解析:指IP地址解析到域名的解析过程。5、DNS资源记录1)SOA资源记录每个区在区的开始都包含了一个起始授权记录(Start of Authority Record),简称SOA记录SOA定义了域的全局参数,进行整个域的管理设置。一个区域文件只允许存在唯一的SOA记录。2)NS资源记录NS(Name Server)记录是域名服务器记录,用来指定该域名由哪个DNS服务器来进行解析,每个区在区根处至少包含一个NS记录。3)A资源记录地址(A)资源记录把FQDN映射到IP地址。因为有次记录,所以DNS服务器能解析FQDN域名对应的IP地址。4)PTR资源记录相对于A记录,指针(PTR)记录把IP地址映射到FQDN。用于反向查询,通过IP地址,找到域名。5)CNAME资源记录别名记录(CNAME)资源记录创建特定FQDN的别名。用户可以使用CNAME记录来隐藏用户网络的实现细节,使链接的客户机无法知道真正的域名。6)MX资源记录邮件交换(MX)资源记录,为DNS域名指定邮件交换服务器。三、DNS服务器安装及相关配置文件1、安装DNSBIND 简介:BIND 全称为Berkeley Internet Name Domain(伯克利因特网名称域系统),BIND 主要有三个版本:BIND4、BIND8、BIND9。BIND8版本:融合了许多提高效率、稳定性和安全性的技术,而BIND9 增加了一些超前的理念:IPv6支持、密钥加密、多处理器支持、线程安全操作、增量区传送等等。安装命令:[root@xuegod ~]# yum -y install bind bind-chroot bind-utils安装包的作用:bind.x86_64 32:9.9.4-73.el7_6 #DNS服务的主程序包bind-chroot.x86_64 32:9.9.4-73.el7_6 #提高安全性#bind-chroot是bind的一个功能,使bind可以在一个chroot 的模式下运行,也就是说,bind运行时的/(根)目录,并不是系统真正的/(根)目录,只是系统中的一个子目录而已,这样做的目的是为了提高安全性,因为在chroot的模式下,bind可以访问的范围仅限于这个子目录的范围里,无法进一步提升,进入到系统的其他目录中。bind-utils-9.9.4-50.el7.x86_64.rpm #该包为客户端工具,系统默认已经安装的了,它用于搜索域名指令。2、DNS服务器相关配置文件[root@xuegod ~]# ls /etc/named.conf -l-rw-r----- 1 root named 1808 1月 30 01:23 /etc/named.confnamed.conf是BIND的核心配置文件,它包含了BIND的基本配置,但其并不包括区域数据/var/name/目录为DNS数据库文件存放目录,每一个域文件都放在这里3、启动服务器[root@xuegod ~]# systemctl start named[root@xuegod ~]# systemctl enable namedCreated symlink from /etc/systemd/system/multi-user.target.wants/named.service to /usr/lib/systemd/system/named.service.[root@xuegod ~]# netstat -antup | grep 53tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 3501/named4、服务的使用方法在客户端上配置好DNS服务器地址[root@xuegod140 ~]# vim /etc/resolv.conf[root@xuegod140 ~]# cat /etc/resolv.confGenerated by NetworkManagernameserver 192.168.1.130resolv.conf文件,添加DNS,此文件的生效范围是全局的,即是所有网卡都可以生效。修改网卡添加的DNS,此方法添加DNS仅对当前网卡生效。DNS1=192.168.1.1305、配置文件详解要求:配置DNS服务器解析:xuegod.cn[root@xuegod etc]# cp /etc/named.conf /etc/named.conf.bakDNS配置文件整体分为三段:options:对全局生效zone:针对某个区域生效type:指定区域类型type主要分为六种Master:主DNS服务器,拥有区域数据文件,并对此区域提供管理梳理Slave:辅助DNS服务器,拥有主DNS服务器的区域数据文件的副本,辅助DNS服务器会从主DNS服务器同步所有区域数据Stub:stub区域和slave类似,但其只复制主DNS服务器上的NS记录,而不像slave复制DNS服务器的所有数据Forward:一个forward zone是每个区域的配置转发的主要部分。一个zone语句中的type forward可以包括一个forward和/或forwarders子句,它会在区域名称给定的域中查询。如果没有forwarders语句或者forwarder是空表,那么这个域就不会转发,消除了options语句中有关转发的配置Hint:根域名服务器的初始化组指定使用线索区域hint zone,当服务器启动时,它使用跟线索来查找根域名服务器,并找到最近的根域名服务器列表四、实战-为公司搭建一个DNS服务器1、配置正向解析区域修改配置文件,授权DNS服务器管理xuegod.cn区域,并把该区域的区域文件命名为xuegod.cnoptions {listen-on port 53 { any}#把原来的127.0.0.1改为any。listen-on-v6 port 53 { any}#把原来的::1,改为any。directory “/var/named”dump-file “/var/named/data/cache_dump.db”statistics-file “/var/named/data/named_stats.txt”memstatistics-file “/var/named/data/named_mem_stats.txt”allow-query { any}#把原来的localhost,改为any。recursion yesdnssec-enable yesdnssec-validation yesdnssec-lookaside auto#加入此项。1234512345zone “xuegod.cn” IN { #把原来的 . 改为xuegod.cn。type master#把原来的hint,改为master。file “xuegod.cn.zone”#把原来的named.ca,改为xuegod.cn.zone。}include “/etc/named.rfc1912.zones”include “/etc/named.root.key”2、创建zone文件[root@xuegod etc]# cd /var/named #进入zone工作目录[root@xuegod named]# ll -d named.localhost-rw-r----- 1 root named 152 6月 21 2007 named.localhost[root@xuegod named]# cp -a named.localhost xuegod.cn.zone#-a参数,复制后的文件保留源文件权限[root@xuegod named]# ll -d xuegod.cn.zone-rw-r----- 1 root named 152 6月 21 2007 xuegod.cn.zone[root@xuegod named]# vim xuegod.cn.zone[root@xuegod named]# cat xuegod.cn.zone$TTL 1Dxuegod.cn. IN SOA dns.xuegod.cn. root.xuegod.cn. (0 serial #系列1D refresh #刷新1H retry #重试1W expire #到期3H ) minimum #最低限度xuegod.cn. NS dns.xuegod.cn. #NS资源记录dns.xuegod.cn. A 192.168.1.130 #A资源记录www.xuegod.cn.A 192.168.1.130 #A资源记录www1.xeugod.cn. CNAMEwww.xuegod.cn.#CNAME记录3、重启DNS服务:[root@xuegod named]# systemctl restart named4、修改客户机的DNS记录[root@xuegod140 ~]# vim /etc/resolv.conf[root@xuegod140 ~]# cat /etc/resolv.confGenerated by NetworkManagernameserver 192.168.1.1305、删除网卡配置文件的DNS记录[root@xuegod140 ~]# cd /etc[root@xuegod140 etc]# vim /etc/sysconfig/network-scripts/ifcfg-ens33[root@xuegod140 etc]# cat !$ | grep DNS1 #删除DNS1的行cat /etc/sysconfig/network-scripts/ifcfg-ens33 | grep DNS16、测试结果:[root@xuegod140 etc]# pingwww.xuegod.cnPINGwww.xuegod.cn(192.168.1.130) 56(84) bytes of data.64 bytes from 192.168.1.130 (192.168.1.130): icmp_seq=1 ttl=64 time=0.216 ms64 bytes from 192.168.1.130 (192.168.1.130): icmp_seq=2 ttl=64 time=0.359 ms[root@xuegod140 etc]# ping www1.xuegod.cnPINGwww.xuegod.cn(192.168.1.130) 56(84) bytes of data.64 bytes from 192.168.1.130 (192.168.1.130): icmp_seq=1 ttl=64 time=0.216 ms64 bytes from 192.168.1.130 (192.168.1.130): icmp_seq=2 ttl=64 time=0.255 ms[root@xuegod140 etc]# ping dns.xuegod.cnPING dns.xuegod.cn (192.168.1.130) 56(84) bytes of data.64 bytes from 192.168.1.130 (192.168.1.130): icmp_seq=1 ttl=64 time=0.170 ms64 bytes from 192.168.1.130 (192.168.1.130): icmp_seq=2 ttl=64 time=0.294 ms总结:实验容易错误点1)区文件的权限,需要注意,这里直接使用cp -a参数拷贝,保留文件的权限和属组、属主2)服务端的防火墙必须要关闭,如果不关闭,就要放通DNS53号端口3)客户端指定DNS地址时,resolv文件需要表示全局生效,本地网卡修改表示当前网卡生效4)可以的话最好关闭NetworkManager7、zone配置文件的参数说明$TTL 1D:设置有效地址解析记录的默认缓存时间,默认为1天也就是1D。xuegod.cn. IN SOA dns. xuegod.cn. root. xuegod.cn.#原来的@表示当前的域xuegod.cn.,为方便大家记忆,在此直接写成xuegod.cn.#设置SOA记录为:dns.xuegod.cn.#在此配置文件中写域名时,都把根 . 也需要写上。#域管理邮箱root.xuegod.cn. 由于@有其他含义,所以用“.”代替@。0 :更新序列号,用于标示数据库的变换,可以在10位以内,如果存在辅助DNS区域,建议每次更新完数据库,手动加1。1D :刷新时间,从域名服务器更新该地址数据库文件的间隔时间,默认为1天。1H :重试延时,从域名服务器更新地址数据库失败以后,等待多长时间,默认为1小时。1W :到期,失效时间,超过该时间仍无法更新地址数据库,则不再尝试,默认为一周。3H :设置无效地址解析记录(该数据库中不存在的地址)默认缓存时间。设置无效记录,最少缓存时间为3小时。NS @ :域名服务器记录,用于设置当前域的DNS服务器的域名地址,A 127.0.0.1: 设置域名服务器的A记录,地址为ipv4的地址127.0.0.1,可以设置成192.168.100.102AAAA ::1:设置域名服务器的A记录,地址为ipv6的地址。资源记录参数详解:CNAME 资源记录别名(CNAME)资源记录用于为某个主机指定一个别名CNAME 资源记录语法格式:别名 CNAME 主机名www1.xuegod.cn. CNAMEwww.xuegod.cn.MX 资源记录MX(邮件交换器)资源记录提供邮件传递信息。该记录会指定区域内的邮件服务器名称。MX 资源记录语法格式:mail A 192.168.1.63MX 192.168.1.63PTR 资源记录指针(PTR)资源记录。该记录与A 记录相反,用于查询IP 地址与主机名的对应关系。根区域是一个较为特殊的区域,记录列出全球根域名服务器信息,域名通常用“.”表示,如表 5-1 所示。在这里插入图片描述五、实战-DNS递归查询和搭建DNS转发服务器1、使用DNS递归查询修改配置文件:[root@xuegod130 etc]# vim /etc/named.conf #修改DNS配置文件,修改如下内容。options {listen-on port 53 { any }#把原来的127.0.0.1改为any。listen-on-v6 port 53 { any}#把原来的::1,改为any。directory “/var/named”dump-file “/var/named/data/cache_dump.db”statistics-file “/var/named/data/named_stats.txt”memstatistics-file “/var/named/data/named_mem_stats.txt”allow-query { any}#把原来的localhost,改为any。recursion yes#默认是支持递归查询。#dnssec-enable yes#dnssec-validation yes#dnssec-lookaside auto只需要把以上三条内容注释了,其它内容不用改,这样客户端才能通过这个DNS进行递归查询,把dns加密通讯功能关闭,才可以和根服务器时行迭代查询。:2、重启DNS服务,使配置文件生效:[root@xuegod63 ~]# systemctl restart named3、在xuego140主机上进行测试:[root@localhost network-scripts]# pingwww.baidu.comPINGwww.a.shifen.com(61.135.169.105) 56(84) bytes of data.64 bytes from 61.135.169.105: icmp_seq=1 ttl=55 time=318 ms64 bytes from 61.135.169.105: icmp_seq=3 ttl=55 time=147 ms4、 搭建DNS转发服务器[root@xuegod130 ~]# vim /etc/named.confoptions {listen-on port 53 { any}#把原来的127.0.0.1改为any。listen-on-v6 port 53 { any}#把原来的::1,改为any。directory “/var/named”dump-file “/var/named/data/cache_dump.db”statistics-file “/var/named/data/named_stats.txt”memstatistics-file “/var/named/data/named_mem_stats.txt”allow-query { any}#把原来的localhost,改为any。recursion yes#允许递归查询#dnssec-enable yes#注释以下三行。#dnssec-validation yes#dnssec-lookaside autozone “xuegod.cn” IN {#type master#注释此项type forward#添加此项,类型为转发。#file “xuegod.cn.zone”#注释此项forward only #仅执行转发操作,only:仅转发,first:先查找本地zone,再转发。forwarders { 8.8.8.8}#指定转发查询请求的DNS服务器列表。}重启DNS服务,使配置文件生效:[root@xuegod63 ~]# systemctl restart named在xuegod140主机上进行测试:[root@localhost network-scripts]# pingwww.baidu.comPINGwww.a.shifen.com(61.135.169.105) 56(84) bytes of data.64 bytes from 61.135.169.105: icmp_seq=1 ttl=55 time=318 ms64 bytes from 61.135.169.105: icmp_seq=3 ttl=55 time=147 ms六、实战-搭建DNS主从服务器1、搭建一个主DNS服务器A,配置内容如下[root@xuegod63 ~]# vim /etc/named.confoptions {listen-on port 53 { any}#把原来的127.0.0.1改为any。listen-on-v6 port 53 { any}#把原来的::1,改为any。directory “/var/named”dump-file “/var/named/data/cache_dump.db”statistics-file “/var/named/data/named_stats.txt”memstatistics-file “/var/named/data/named_mem_stats.txt”allow-query { any}#把原来的localhost,改为any。recursion yes#dnssec-enable yes#dnssec-validation yes#dnssec-lookaside autozone “xuegod.cn” IN {type master#指定类型为master。file “xuegod.cn.zone”#指定为xuegod.cn.zone。allow-transfer { 192.168.1.0/24}#指定允许哪个网段的从DNS服务器,可以同步主DNS服务器zone文件,不写默认为所有。}include “/etc/named.rfc1912.zones”重启DNS服务,使配置文件生效:[root@xuegod63 ~]# systemctl restart named2、从DNS服务器的配置要求:主从系统时间一定要保持一致。那么php的运行原理就是Apache、PHP、浏览器之间的协作过程:①当用户在浏览器地址中输入要访问的PHP页面文件名,然后回车就会触发这个PHP请求,并将请求传送化支持PHP的WEB服务器(apache)。
②WEB服务器(apache)接受这个请求,并根据其后缀进行判断如果是一个PHP请求,WEB服务器(apache)从硬盘或内存中取出用户要访问的PHP应用程序,并将其发送给PHP引擎程序。
③PHP引擎程序将会对WEB服务器(apache)传送过来的文件从头到尾进行扫描并根据命令从后台读取,处理数据,并动态地生成相应的HTML页面。
④PHP引擎将生成HTML页面返回给WEB服务器(apache)。WEB服务器(apache)再将HTML页面返回给客户端浏览器,最后一个完整的页面基于通过浏览器展现在我们眼前。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)