文章目录
-
目录
文章目录
前言
一.DNS服务器
概述:
域名分类
域名服务器的类型划分
DNS域名解析过程
DNS服务器配置
总结
前言
前面几节文章我们了解到时间服务器和远程连接服务器,还通过访问域名的方式建立一个网站,
我们知道访问服务器需要知道对应服务器的IP地址,现如今,网址大多以域名的方式呈现,通过域名又是如何访问到对应服务器的呢?接下来,一起了解一下域名解析服务器。
一.DNS服务器
概述:
DNS(Domain Name System)是互联网上的一项服务,它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网。 DNS系统使用的是网络的查询,那么自然需要有监听的port。DNS使用的是53端口,在/etc/services(搜索domain)这个文件中能看到。通常DNS是以UDP这个较快速的数据传输协议来查询的,但是没有查询到完整的信息时,就会再次以TCP这个协议来重新查询。所以启动DNS时,会同时启动TCP以及UDP的port53。
域名分类
-
国家顶级域名:采用ISO3166的规定。如:cn代表中国,us代表美国,uk代表英国,等等。国家域名又常记为ccTLD(country code top-level domains,cc表示国家代码contry-code)。
-
通用顶级域名:最常见的通用顶级域名有7个,即:com(公司企业),net(网络服务机构),org(非营利组织),int(国际组织),gov(美国的政府部门),mil(美国的军事部门)。
-
基础结构域名(infrastructure domain):这种顶级域名只有一个,即arpa,用于反向域名解析,因此称为反向域名。
域名服务器的类型划分
DNS域名解析过程
客户端访问域名www.baidu.com时
- 首先查看本地/etc/hosts文件中是否有域名www.baidu.com对应的IP地址,有则直接访问,没有则进入下一步。
- 查找本地系统缓存中是否有域名www.baidu.com对应的IP地址,没有则进入下一步。
- 访问本地域名服务器(114.114.114.114/8.8.8.8),首先查缓存,没有则进入下一步
- 本地域名服务器查看自身是否是baidu.com区域的dns服务器,是,则查找域名www.baidu.com对应的IP地址,否则进入下一步
- 上述简称递归查询
- 本地域名协议服务器会访问根域名服务器,根域名服务器会返回顶级域名服务器com的IP地址,本地域名服务器再去访问顶级域名服务器,顶级域名服务器再返回区域名服务器baidu的IP地址,本地域名服务器再次查找区域名服务器,之后根据去域名服务器返回的三级域名服务器访问www,三级域名解析服务器返回自己的IP地址
- 本地域名解析服务器收到对应域名解析服务器的IP地址后,首先缓存,再返回给客户端,客户端再根据IP访问对应的服务器
- 上述简称迭代查询
DNS服务器配置
- 正向解析
#安装软件包
[root@timeserver ~]# cd /etc/yum.repos.d/
[root@timeserver yum.repos.d]# yum install bind -y
#修改配置文件
#在文件/etc/named.conf中设置既可以解析baidu.com又可以解析qq.com
#在文件/var/named/中设置专门解析www.baidu.com/test.baidu.com等一系列baidu.com的目录#设置解析baidu.com[root@timeserver ~]# vim /etc/named.conf
命令行模式下使用 dG 清空文件内容
#编辑以下内容
options {listen-on port 53 {192.168.186.200;}; #192.168.186.200代表访问的DNS服务器的IP地址directory "/var/named"; #指定解析文件的路径allow-query {192.168.186.131;}; #设置允许访问的客户端
};
zone "baidu.com" IN { #设置当前域名服务器管理的服务器域名type master; #定义域名服务器类型为主域名服务器file "named.baidu.com"; #设置域名解析文件路径
};zone "qq.com" IN {type master;file "named.qq.com";};#查看 53 号端口监听情况
[root@timeserver ~]# netstat -lntup | grep 53
#创建对应文件
[root@timeserver ~]# vim /var/named/named.baidu.com
#复制文件内容
[root@timeserver ~]# cp /var/named/named.localhost /var/named/named.baidu.com
#在/var/named/named.baidu.com文件中编辑以下内容
$TTL 1D (#生存时间值:解析出的IP地址的缓存时间)
@(#代表当前区域) IN SOA @(#当前区域主DNS服务器域名) rname.invalid.(#邮箱账号) (0 ; serial #序号1D ; refresh #从DNS服务器每天更新一次1H ; retry #从DNS服务器每小时更新一次1W ; expire #从DNS服务器每周更新一次3H ) ; minimum #生存时间值IN NS @(#告诉这台DNS服务器有多少台DNS服务器)A 127.0.0.1 解析为IPV4地址AAAA ::1 解析为IPV6地址#参照以下内容示例
$TTL 1D
@ IN SOA ns.baidu.com admin.baidu.com. (0 ; serial1D ; refresh1H ; retry1W ; expire3H ) ; minimumNS ns.baidu.com.
ns IN A 192.168.186.200 #解析出主DNS服务器域名对应的IP
www IN A 192.168.186.131 #解析出域名www对应的IP
- 反向解析
[root@timeserver ~]# vim /etc/named.conf
#添加以下内容
zone "186.168.192.in-addr.arpa" IN { #添加反向解析的区域type master; file "named.186.168.192";
};#编辑文件
[root@timeserver ~]# vim /var/named/named.186.168.192
$TTL 1D
@ IN SOA @ admin.baidu.com. ( 0 1D 1H 1W 3H )IN NS ns.baidu.com. #代表当前域名解析服务器域名
200 IN PTR ns.baidu.com. #200代表DNS服务器的IP地址
131 IN PTR www.baidu.com. #131代表域名www对应的域名解析服务器的IP地址
- 主从DNS服务器
完全区域传送:主DNS服务器复制整个区域域名解析信息到从DNS服务器
- 主DNS服务器配置
[root@timeserver ~]# vim /etc/named.conf
options {listen-on port 53 {192.168.186.200;}; #192.168.186.200代表访问的DNS服务器的IP地址directory "/var/named"; #指定解析文件的路径allow-query {192.168.186.131;}; #设置允许访问的客户端
#添加以下命令allow-transfer {从DNS服务器IP地址} #该条命令代表允许传送给从DNS
};#假设需要传送baidu的信息
[root@timeserver ~]# vim /var/named/named.baidu.com
#参照以下内容示例
$TTL 1D
@ IN SOA ns.baidu.com admin.baidu.com. (0 ; serial1D ; refresh1H ; retry1W ; expire3H ) ; minimumNS ns.baidu.com.
#添加以下内容IN NS slave.baidu.com(从DNS的域名)
ns IN A 192.168.186.200 #解析出主DNS服务器域名对应的IP
www IN A 192.168.186.131 #解析出域名www对应的IP#添加slave.baidu.com对应的IP地址
slave IN A +从DNS服务器IP地址
- 从DNS服务器配置
#安装软件包
[root@timeserver ~]# yum install bind -y
[root@timeserver ~]# vim /etc/named.conf
options {listen-on port 53 {192.168.186.200;}; #192.168.186.200代表访问的DNS服务器的IP地址directory "/var/named"; #指定解析文件的路径allow-query {192.168.186.131;}; #设置允许访问的客户端
};
zone "baidu.com" IN {type slave; #类型为从服务器slavefile "named.baidu.com";masters {192.168.186.200;}; #告诉从DNS主DNS的IP
};#启动主服务器
[root@timeserver ~]# systemctl restart named
#关闭从服务器防火墙 SELinux
#查看文件 /var/named/slaves 此时文件没有内容
#重启从DNS
[root@timeserver ~]# systemctl restart named
#查看文件 /var/named/slaves 此时主DNS将域名信息传送到文件中
#此时可以通过从DNS查询到域名对应的IP地址
增量区域传送:主DNS服务器将新增的域名解析信息传送到从DNS服务器
#当主DNS新增域名信息后,需要将serial增大 否则从DNS将认为主DNS未更新信息,导致从DNS无法解析域名
$TTL 1D
@ IN SOA ns.baidu.com admin.baidu.com. (0 ; serial1D ; refresh1H ; retry1W ; expire3H ) ; minimum