基础服务:DNS
-
域名解析
网络出现的早期是使用IP地址通讯的,那时就几台主机通讯。随着接入网络主机的增多,这种数字白哦是的地址非常不便于记忆,UNIX上就出现了建立一个叫做hosts的文件(linux和Windows也继承保留了这个文件)。这个文件中记录着主机名称和IP地址的对应表。这样只要输入主机名称,系统就会去加载hosts文件并查找对应关系,找到对应的IP,就可以访问这个IP的主机了。
但是后来主机太多了,无法保证所有人都能拿到统一的最新的hosts文件,就出现了在文件服务器上集中存放hosts文件,以供下载使用。互联网规模进一步扩大,这种方式也不是一种好办法,这时DNS系统出现了。
DNS(Domain Name System,域名系统),万维网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP地址。通过域名,最终得到改域名对应的IP地址的过程教域名解析(或主机名解析)。DNS协议运行在TCP/UDP协议之上,使用端口号53。
-
域名解析概念
把域名指向的网站IP,让人们通过域名就可以访问到所绑定的域名的服务器上的服务
DNS系统在网络中的作用就是维护着一个地址数据库,其中记录了各种主机域名与IP地址的对应关系,以便为用户程序提供正向或返乡的地址查询服务,即正向解析与反向解析。
-
域名解析分类
正向解析:根据域名查IP地址,将指定的域名解析为对应点IP
反向解析:根据IP查找域名,将IP地址解析为对应的域名
-
DSN服务器查询模式
- 递归:客户机向DNS服务器发送解析请求,DNS服务器从本地DNS服务器中查询出结果,反馈给客户机,此过程称为递归查询(发出多次请求)
- 迭代:客户机向DNS服务器发出解析,DNS服务器从本地DNS服务器查询发现没有结果,此时DNS服务器以DNS客户的身份向其他DNS服务器发送解析请求或向根域名服务器发送请求,此过程成为迭代查询(只发出一次请求)
-
DNS服务器分布式结构
全球共有13台根域名服务器。这13台根域名服务器中名字分别为“A”至“M”,其中10台设置在美国,另外各有一台设置在英,日和瑞典。其中1个为主根服务器,放置在美国,其余12个均为辅根服务器。
DNS的分布式数据库是以域名为索引的,每个域名实际上就是一棵很大的逆向树中路径,这颗逆向树被成为域名空间(domian name space)。
-
域名分类
.com 顶级域名 baidu.com 一级域名
www.baidu.com 二级域名 a.www.baidu.com 三级域名
-
部分顶级域名含义:
.com 公司企业 .cn 中国 .net 具有互联网表示
.edu 教育 .org 各类组织机构 .gov.cn 中国政府机关
-
-
域名解析流程
- 第一步:打开浏览器,想要请求访问京东,在地址栏输入了网址: www.jd.com。
- 第二步:浏览器先检查自身缓存中有没有被解析过的这个域名对应的ip地址,如果有,解析结束。
- 第三步:如果浏览器缓存中没命中,浏览器会检查操作系统中hosts文件有没有对应的已解析过的结果。
- 第四步:如果至此还没有命中域名,才会将请求发给本地 DNS 域名服务器来解析这个域名。
- 第五步:如果还没有查到,本地DNS域名服务器会向根域名服务器进行查询,并将解析的结果在自身保存一份。
- 第六步:查到的京东服务器对应的IP地址之后,路由器通过路由协议找到一个路由转发的最优路径,将你的请求信息发送给这个P地址的京东的路由器。
- 第七步:京东的路由器发给了京东网站的服务器上。
- 第八步:京东网站服务器接收并处理完请求后,按照源路径,将自己的网站返回给你第九步:当你打开浏览器的时候,你的电脑给你的浏览器这个运行起来的程序给了一个编号,叫做端口号,当你的电脑收到京东发送过来的消息的时候,你的电脑通过端口号找到你的浏览器,你的浏览器拿到了京东的网站信息,然后将网站呈现在了自己的浏览器上。
-
DNS配置文件介绍
yum -y install bind rpm -qa bind bind-utils bind-libs bind-libs-*(版本号) #为bind\bind-utils提供所需要使用的库函数 bind-utils-*(版本号) #对DNS服务的测试工具 bind-*(版本号) #DNS服务器安装包 /usr/sbin/named #DNS服务名
使用BIND软件构建域名服务时,主要涉及两种类型的配置文件
主配置文件(/etc/name.conf):主配置文件用于设置named服务的全局选项,注册区域及访问控制等各种运行参数。
区域配置文件/var/named/下:区域配置文件用于存放某个DNS区域的地址解析记录(正向或反向记录)
cat /etc/named.conf #服务监听地址 options{ listen-on port 53{ 127.0.0.1;} listen0on-v6 port 53{;;1;}; #区域数据存放位置 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"; recursing-file "/var/named/data/named.recursing"; secroots-file "/var/named/data/named.secroots"; #允许谁来使用DNS服务器(any表示所有) allow-query {localhost}; } ...... #区域配置,根域配置 zone "." IN { type hint; file "named.ca"; }; #正向test.com区域 zone "test.com" IN { #类型为master主 type master; #区域配置文件 file "test.zheng"; } #反向192.168.80.0/24区域 zone "80.168.192.in-addr.arpa" IN { type master; file "test.fan"; } #对named.conf文件进行语法检查,有错误就提示 named-checkconf /etc/named/conf
-
区域数据配置文件
区域数据配置文件通常位于/var/named/目录下,每个区域数据文件对应一个DNS解析区域,文件名及内容由该域的管理员自行设置(没写过,用的别人写的设置好的,直接放进去用了)。
#正向区域数据文件
vim /var/named/test.zheng
#有效解析记录的生存周期
$TTL 86400
#SOA标记,域名,管理邮箱
@ IN SOAtest.com.admin.test.com. (
#更新序列号,10位以内整数
2019050101
#刷新时间,从服务器重新同步数据间隔
3H
#重试时间,同步失败后多长时间重试
15M
#失效时间,超过这个时间就放弃同步
1W
#无效解析记录的生成周期
1D
)
#地址解析记录
@ IN NS ns1.test.com.
IN MX10 mail.test.com.
ns1 IN A 192.168.80.128
www IN A 192.168.80.111
mail IN A 192.168.80.112
ftp IN CNAME www
常见的地址解析记录
NS记录/主域名记录:记录当前区域的DNS服务器的主机地址
MX记录/邮件记录:记录当前区域的邮件服务器的主机地址,数字10表示(当有多个MX记录时)选择邮箱服务器的优先级,数字越大优先级越低
A记录/正向ipv6域名记录:记录正向解析条目(IPV6)
AAAA记录/正向ipv6域名记录:记录正向解析条目(IPV6)
CNAME记录/别名记录:记录某一个正向解析条目的其他名称
#反向区域数据文件:不会用到A地址记录,而是使用PTR指针(pront)记录
vim /var/named/test.fan
$TTL 86400
@ IN SOAtest.admin.test.com. (
#更新序列号,10位以内整数
2019050101
#刷新时间,从服务器重新同步数据间隔
3H
#重试时间,同步失败后多长时间重试
15M
#失效时间,超过这个时间就放弃同步
1W
#无效解析记录的生成周期
1D
)
@ IN NS ns1.test.com.
128 IN PTR ns1.test.com.
111 IN PTR www.test.com.
112 IN PTR mail.test.com.
111 IN PTR ftp.test.com.
#测试DNS区域配置文件是否正确
named-checkzone test.com /var/named/test.zheng
named-checkzone 192.168.80.40 /var/named/test.fan
chgrp named /var/named/test.zheng
chgrp named /var/named/test.fan
systemctl restart named
-
验证
开启windows虚拟机,配置网卡DNS为DNS服务器,在cmd中验证
#验证正向解析域名为IP
C:\Users\Administrator>nslookup ftp.test.com
服务器 ns1.test.com
Address: 192.168.80.40
名称: www.test.com
Address:ftp.test.com
#验证反向IP解析为域名
C:\Users\Administrator>nslookup 192.168.80.111
服务器:ns1.test.com
Address:192.168.80.40
名称:ftp.test.com
Address: 192.168.80.40
名称: www.test.com
Address:ftp.test.com
#验证反向IP解析为域名
C:\Users\Administrator>nslookup 192.168.80.111
服务器:ns1.test.com
Address:192.168.80.40
名称:ftp.test.com
Address:192.168.80.111