1. DNS介绍
1.1 什么是域名
域名(Domain Name),简称域名、网域,是由一串用点分隔的名字组成Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位。具有独一无二、不可重复的特性。
1.2 什么是DNS
域名系统(Domain Name System,缩写:DNS)是互联网的一项服务。域名解析是把域名指向网站空间IP,让人们通过注册的域名可以方便访问到网站的一种服务。IP地址是网络上标识站点的数字地址,为了方便记忆,采用域名来代替IP地址标识站点地址。域名解析就是域名到IP地址的转换过程。域名的解析工作由DNS服务器完成。可以理解为DNS就是翻译官。
正向解析:域名 ——> IP地址
反向解析:IP地址 ——> 域名
1.3 域名的组成
常见格式:www.atguigu.com
完成格式:www.atguigu.com.
. :根域,可省略不写
com:顶级域,由ICANN组织制定和管理
分类:
国家地区域名:cn(中国)、hk(香港)、sg(新加坡)等
通用顶级域名:com(商业机构)、org(非盈利组织)、edu(教育机构)等
新通用顶级域名:red(红色、热情)、top(顶级、高端)等
atguigu:二级域(注册域),可由个人或组织申请注册
www:三级域(子域),服务器网站站名代表
主机名:s1.www.atguigu.com.中的s1就是主机名,一般用来表示某一台主机
2.域名解析过程
①客户机首先查看本地host文件,如果有则返回,否则进行下一步
②客户机查看本地缓存,是否存在本条目的缓存,如果有则直接返回,否则进行下一步
③将请求转发给指向的DNS服务器
④查看域名是否本地解析,是则本地解析返回,否则进行下一步。
⑤本地DNS服务器首先在缓存中查找,有则返回,否则进行下一步
⑥想全球13个根域服务器发起DNS请求,根域返回org域服务器地址列表
⑦使用某一个org域的IP地址,发起DNS请求,org域返回kernel域服务器地址列表
⑧使用某一个kernel域IP地址,发起DNS请求,kernel域返回www.kernel.org主机的IP地址,本地DNS服务器收到后,返回给客户机,并在本地DNS服务器保存一份。
3 DNS软件信息
软件名称:bind
服务名称:named
软件端口:UDP 53 数据通信(域名解析)
TCP 53 数据同步(主从同步)
配置文件:
主配置文件:/etc/named.conf(服务器运行参数)
区域配置文件:/etc/named.rfc1912.zone(服务器解析的区域配置,正方向区域定义信息)
数据配置文件:/var/named.empty(named.localhost、named.loopback)(主机名和IP地址的对应解析关系,及主从同步信息)
A | 地址记录,用来指定域名的IPV4地址的记录 |
CNAME | 将域名(公开的)指向另一个域名(非公开的),再由另一个域名提供IP地址,就需要添加CNAME记录(域名别名) |
TXT | 可填写任何东西,长度限制255.绝大多数的TXT记录是用来做SPF的(反垃圾邮件) |
NS | 域名服务器记录,如果需要把子域名交给其他DNS服务器解析,就需要添加NS记录 |
AAAA | 地址记录,用来指定域名的IPV6地址的记录 |
4 DNS实验搭建
4.1 DNS基本功能实验
准备三台虚拟机(一台客户端、一台DNS服务器、一台网页服务器),先关闭三台机器的防火墙和SELinux,便于实验的顺利进行。
客户端 | DNS服务器 | 网页服务器 | |
IP | 192.168.11.10 | 192.168.11.20 | 192.168.11.30 |
1、配置网页服务器
[root@localhost ~]# yum -y install httpd #安装httpd网页服务
[root@localhost ~]# vim /var/www/html/index.html #创建index.html文件,并在文件中输入“DNS TEST!!”网页内容。
[root@localhost ~]# systemctl restart httpd.service #重启httpd服务
使用客户机访问网页服务器IP,查看网页服务器设置是否正确
[root@localhost ~]# elinks 192.168.11.30 #使用elinks命令(如果没有该命令,需要使用yum安装)访问网页服务器IP
出现以上界面,说明网页服务器配置成功!!!
2 配置DNS服务器
[root@localhost ~]# yum -y install bind #安装DNS服务软件
[root@localhost ~]# vim /etc/named.conf #修改主配置文件
vim /etc/named.rfc1912.zones #修改区域配置文件
[root@localhost named]# cp -a /var/named/named.localhost /var/named/dnstest.localhost
[root@localhost named]# cp -a /var/named/named.loopback /var/named/dnstest.loopback
[root@localhost named]# vim dnstest.localhost
[root@localhost named]# vim dnstest.loopback
[root@localhost named]# systemctl start named #启动dns服务
将客户机的dns改为192.168.11.20
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
重启网络服务
[root@localhost ~]# elinks www.dnstest.com
出现以上界面,说明DNS服务器配置成功!!!
4.2 主从同步实验
在上个实验的基础上增加一台虚拟机,作为从DNS服务器。
客户端 | 主DNS服务器 | 网页服务器 | 从DNS服务器 | |
IP | 192.168.11.10 | 192.168.11.20 | 192.168.11.30 | 192.168.11.40 |
1、首先配置主DNS服务器
[root@localhost ~]# vim /etc/named.conf #编辑主配置文件
[root@localhost ~]# vim /etc/named.rfc1912.zones #修改区域配置文件
[root@localhost named]# cp -a /var/named/named.localhost /var/named/dnstest.localhost
[root@localhost named]# vim dnstest.localhost
主DNS服务器配置完成,启动named服务
2、配置从DNS服务器
[root@localhost ~]# vim /etc/named.conf
启动named服务,从服务器配置完成。
3、修改客户端DNS的ip为从服务器IP(DNS1=192.168.11.40),重启NetworkManager服务。使用elinks命令访问www.dnstest.com,查验从服务器配置是否成功。
4.3 DNS缓存服务器
实验作用:加快解析速度,提高工作效率
实验软件:dnsmasq
在主从同步实验的基础上,将从服务器修改为DNS缓存服务器进行实验。
[root@localhost ~]# yum -y install dnsmasq #安装软件
配置文件:/etc/dnsmasq.conf
domain=域名 #需要解析的域名
service=ip #主DNS服务器IP
cache-size=15000 #生命缓存条数
重启服务:systemctl restart dnsmasq
在客户端测试nslookup www.dnstest.com是否成功。
客户端、缓存服务器、主DNS服务器关系