DNS域名解析
一、DNS概述
1.1 什么是DNS
DNS是将域名和IP地址相互映射的一个分布式数据库
- 正向解析:根据域名查找对应的IP地
- 反向解析:根据IP地址查找对应的域名
DNS使用端口:
DNS服务使用TCP和UDP的53端口,TCP的53端口用于连接DNS服务器,UDP的53端口用于解析DNS
1.2 DNS的作用
- 定位访问网站的IP地址
- 将域名解析为IP地址,方便用户使
1.3 分布式数据结构
根域名:“.”
顶级域名:.cn(中国) .us .tw .kr(韩国) .jp(日本) .hk(香港) .uk(英国)
二级域名:.com.cn(中国商业组织) edu.cn(教育机构) .org.cn(非盈利) .net.cn(中国运营商)
三级域名:sina.com.cn nb.com.cn haixi.com.cn
主机名:www mail
域名与IP地址之间是多对一的关系,一个IP地址不一定只对应一个域名,但一个域名只可以对应一个IP地址
1.4 DNS系统类型
缓存域名服务器:
- 也称为DNS高速缓存服务器
- 通过向其他域名服务器查询获得域名------>IP地址记录
- 将域名查询结果缓存到本地,提高重复查询时的速度
主域名服务器:
- 特定DNS区域的权威服务器,具有唯一性
- 负责维护该区域内所有域名-------->IP地址的映射记录
- 需要自行建立所负责区域的地址数据文件
从域名服务器:
- 也称为辅助域名服务器,是对主域名服务器的热备份
- 其维护的域名-------->IP地址记录来源于主域名服务器
- 需要从主域名服务器自动同步区域地址数据库
1.5 DNS解析的查询类型和流程,以及原理
- 查询本机的缓存hosts
- 查询DNS域名服务器(通常是运营商去查)、
- 到根域服务器查,根域服务器知道结果,但是不会直接告诉你结果,会让你去顶级域找
- 顶级域服务器,他也不直接告诉你结果,让你去可能会知道结果的二级域服务器查找
- 二级域服务器查找到后返回结果;如果没有找到,回去子域查找
- 子域知道了结果,返回结果------->域名服务器-------->本地缓存----->用户
其中3到6为迭代,返回的过程为递归
二、实验
准备工作
[root@localhost ~]# yum -y install bind //bind只能用来内网划分DNS /etc/named.conf //主配置文件 /etc/named.rfc1912.zones //区域配置文件 /var/named/named.localhost //区域数据配置文件(模板文件,不可直接在原文件进行更改) DNS有三种服务类型:hint(根区域) master(主区域) slave(从区域)
2.1 正向解析
[root@localhost ~]# vim /etc/named.conf
[root@localhost ~]# vim /etc/named.rfc1912.zones 正向解析配置: zone "localhost" IN { //localhost表示域名 type master; //类型为主DNS服务器 file "named.localhost"; //指定区域数据文件为named.loopback(可自定义) allow-update { none; }; //表示若主dns故障切换到另一个指定的备用DNS服务器,none表示没有不指定 };
root@localhost ~]# cd /var/named/ [root@localhost named]# cp -a named.localhost xc.com.zone [root@localhost named]# vim xc.com.zone $TTL 1D //表示设置缓存解析结果的有效时间 @ IN SOA @ rname.invalid. ( 0 ; serial //更新序列号,一般是10以内的整数 1D ; refresh //刷新时间,重新下载地址数据的间隔 1H ; retry //重试间隔,下载失败后的重试间隔 1W ; expire //失效时间,超过该时间仍然无法下载则放弃 3H ) ; minimum //无效解析记录的生存时间 NS @ //记录当前区域的DNS服务器的名称 A 127.0.0.1 //记录主机IP地址 AAAA ::1 //表示ipv6服务器地址,不用可删除 IN MX 10 mail.ky29.com. //MX为邮件交换记录,数字越大优先级越低 www IN A 192.168.233.30 //记录正向解析www.benet.com对应的IP mail IN A 192.168.233.31 //邮箱的正向解析地址 ftp IN CNAME www //CNAME使用别名, ftp是www的别名 * IN A 192.168.233.100 //泛域名解析, "*" 代表任意主机名
[root@localhost named]# systemctl stop firewalld [root@localhost named]# setenforce 0 [root@localhost named]# vim /etc/resolv.conf
[root@localhost named]# systemctl restart named
验证:
2.2 反向解析
[root@localhost named]# vim /etc/named.rfc1912.zones 反向解析配置: zone "1.0.0.127.in-addr.arpa" IN { //1.0.0.127表示反向的IP地址 type master; //类型为主DNS服务器 file "named.loopback"; //指定区域数据文件为named.loopback(可自定义) allow-update { none; }; //表示若主dns故障切换到另一个指定的备用DNS服务器,none表示没有不指定 };
[root@localhost named]# cp -a xc.com.zone xc.com.zone.local [root@localhost named]# vim xc.com.zone.local
[root@localhost named]# systemctl restart named
验证:
2.3 主从服务器
需要同时使用两台虚拟机,第二台虚拟机也需要安装bind
虚拟机1
[root@localhost named]# vim /etc/named.rfc1912.zones
[root@localhost named]# systemctl restart named
虚拟机2
[root@localhost ~]# vim /etc/named.conf
[root@localhost ~]# vim /etc/named.rfc1912.zones 这里可以将虚拟机1的配置粘贴过来
两台虚拟机都要配置 [root@localhost named]# vim /etc/resolv.conf
[root@localhost named]# systemctl restart named [root@localhost named]# systemctl stop firewalld [root@localhost named]# setenforce 0
验证: