DNS系统的作用及类型
DNS域名解析
www.baidu.com
baidu 因为在互联网上,我们都是通过ip地址进行通信,180.
www.sina.com.cn
sina
作用1:就是把域名变成ip地址
正向解析:把域名解析成ip地址
反向解析:把ip地址解析成域名
作用2:导航:dns解析类型类似于导航,精确定位所需要访问的网站。
数据结构
www.baidu.com.cn. 这是百度在互联网上的完整域名
最后的. 根域 IPv4的根域全球一共有13个,美国10个,英国1个,瑞丹1个,日本1个,国内有2个根域的镜像服务器。ipv6根域名:全球有25个,中国1主3从,美国1主2从(了解即可)
.cn 一级域,顶级域:国家或者组织 .cn .us .jp
.com 二级域:组织或者机构 .com 表示商业组织 .edu(教育机构) org 非盈利组织 .net 运营商(以上全是国内)
baidu 子域:域名
www 主机站点,就是主机名
www.baidu.com.cn. 从根域开始,一级一级往下看
DNS系统的类型
缓存域名服务器:运营商,我们访问绝大多数的网站,都是从运营商的缓存服务器调用的缓存记录,直接访问。
主域名服务器:唯一性,记录了所有域名和ip地址的映射关系。
从域名服务器:就是主的热备份,主挂了,从服务器顶上。
热备份:实时备份,不需要关机的备份
现在我们知道,常用的域名都在运营商的缓存服务器上,缓存服务器上没有域名和ip地址的映射关系怎么办?那自然就需要去找
DNS解析的查询方式(重点,面试会问,一定要会)
迭代:每一次都比前面一次获得的信息要多
递归
详细步骤(要会):
1、用户------>本地文件(hosts)------>dns域名服务器(运营商缓存服务器)------>根域名服务器(知道结果,但是不告诉你,让你去二级服务器去查)------>二级域名服务器(我知道结果,但是我也不告诉你,子域名服务器去找)------>子域名服务器(知道结果了,域名和ip地址的映射关系)------>缓存服务器(运营商)------>hosts ------>用户
根域名服务器(知道结果,但是不告诉你,让你去二级服务器去查)------>二级域名服务器(我知道结果,但是我也不告诉你,子域名服务器去找)------>子域名服务器(知道结果了,域名和ip地址的映射关系) 迭代查询
子域名服务器(知道结果了,域名和ip地址的映射关系)------>缓存服务器(运营商,记录域名和ip地址的映射关系)------>hosts ------>用户 查询
递归查询,查询结果返回给目录(递归查询)
示例:
这是国内的根域名镜像服务器
国际上的根域名服务器如下,一共13台,这就是全球的ipv4根域名服务器
现在我们开始从根域开始一点一定往下找
set type=a 表示是IPv4类型
把根域名服务器放进去
Server: 218.2.135.1
Address: 218.2.135.1#53
本地的dns地址
Name: d.root-servers.net
Address: 199.7.91.13
根域名服务器d的ip地址
server 199.7.91.13 表示我们要和199这个服务器建立连接,通信
Default server: 199.7.91.13
Address: 199.7.91.13#53 #53表示的是dns解析服务的端口号,默认就是53
从.往下到com.
上面为13台顶级域的服务器的域名
下面为服务器对应的ip地址
1主两从
a-m 为服务器对应的ipv4的地址
a.gtld-servers.net has AAAA address 2001:503:a83e::2:30
b.gtld-servers.net has AAAA address 2001:503:231d::2:30
这个就是服务器对应的ipv6的地址
我们继续往下,和顶级域建立会话
到二级域
> set type=ns
> baidu.com.
向顶级域咨询baidu.com的域名的ip地址
这时候已经到子域了
就可以看到baidu对应的ip地址
ns上面的是百度的五个域名服务器
下面的这些服务器对应的ip地址
同样有ipv4和ipv6
我们和这个服务器地址进行通信
这个就是百度在网上的真实域名和它对应的ip地址
www.baidu.com canonical name = www.a.shifen.com.
相当于基于域名跳转,访问baidu相当于访问a.shifen.com.
Server: 180.76.76.92
Address: 180.76.76.92#53
这就是baidu这个域名的真正的ip地址180.
流程:从. 到com. 从com再到baidu.com 最终得到了结果 就知道了baidu具体的ip地址
小实验:
正向解析
反向解析
主从域名服务器
先安装bind
bind 开源软件,用于内网的dns解析,不同于外网,内网的dns是不需要注册的
是方便内部进行使用和访问的工具(主要用于内网)
安装
这个服务的配置文件一般在/etc下面
我们来看看这几个文件分别是干什么用的
/etc/named.conf 主配置文件
/etc/named.rfc1912.zones 区域配置文件,就是用来保存域名和ip地址对应关系的位置,这里只定义了域名与ip地址解析规则保存的文件位置以及服务类型。没有具体的ip,域名之间的关系。
/var/named/named.localhost 区域的数据配置文件,这里保存的是具体的ip地址和域名之间的关系
我们vim看一下
这里既有正向的配置也有反向的配置,既有ipv4也有ipv6
zone "localhost.localdomain" IN {
type master;
file "named.localhost";
allow-update { none; };
};
这些都是正向解析
zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {
type master;
file "named.loopback";
allow-update { none; };
};
ipv6的反向解析
zone "1.0.0.127.in-addr.arpa" IN {
type master;
file "named.loopback";
allow-update { none; };
};
这是反向解析
如何做正向解析
进入主配置文件
vim /etc/named.conf
options {
listen-on port 53 { 127.0.0.1; }; 53:dns解析的默认端口 listen监听地址,和谁要建立连接
这里写本机地址就是监听本机,用本机来对外提供服务,any表示所有也可以
listen-on-v6 port 53 { ::1; };这个监听的是ipv6的地址
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";
allow-query { localhost; };运行使用这台机器做dns服务的网段,就是哪些机器通过bind服务来做dns内容解析,这里可以写网段,也可以写any,表示任何都可以通过10这个服务器来做域名解析服务
这里写一个网段试试
这就配置好了主配置文件
区域配置文件:
添加一个正向区域的配置
vim /etc/named.rfc1912.zones 这就是区域配置文件
复制一个过来,进行修改
zone ky30.com file ky30.com.zone
前后要一致,前面ky30.com,后面的区域数据文件 file也要叫ky30.com.zone
要和后面的保持一致
cd/var/name/
ls
到这个目录下来配置正向数据的区域文件
注意:不能直接在name.localhost文件里面改,这是一个模版文件,不能直接改,把它复制出来
cp -a 保留权限来进行复制
把它改成ky30.com.zone和前面自定义的file要一一对应,不然会报错,文件会找不到
cp -a named.localhost ky30.com.zone
ll看一下
然后我们进ky30.com.zone里面改
这里配置的就是数据文件,也就是映射关系
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial 更行序列号
1D ; refresh 刷新时间
1H ; retry 下载失败后重试间隔1h
1W ; expire 失效时间
3H ) ; minimum 无效解析记录的生存时间(这几行了解即可)
NS @
A 127.0.0.1
AAAA ::1
$TTL 1D:引用全局变量,缓存解析结果的有效时间。1D,1天。
@:也是一个变量,表示当前dns的区域名,指的就是ky30.com.zone
in:表示使用的是Internet协议
SOA:解析类型,起始的解析记录
NS:记录当前区域的DNS服务名称 必不可少
A:记录主机的ip地址 必不可少(ipv4地址)
AAAA:Ipv6的地址
$TTL 1D
@ IN SOA ky30.com. admin.ky30.com. ( #严格格式,一定要这样写,一个空格错了都报错
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ky30.com. 记录当前dns服务器的名称(域名名称)
A 20.0.0.100 主机的ip地址,也就是解析服务器的地址
正式开始配置正向解析地址
IN MX 10 mail.ky30.com.
IN MX为邮件交换记录,数字为优先级 后面跟着邮件地址
配置正向解析:
WWW IN A 192.168.233.40
mail IN A 192.168.233.41
重启服务,systemctl restart named
注意:装的服务是 bind 但是重启要用named来重启
解析试一下:
为什么会变成129呢?
注意:要把reslove.conf dns的解析地址改了
用20.0.0.100做地址解析,所以要改为20.0.0.100
这样就可以了
注意:改完这个配置文件不要重启网络,也不用重启地址,一重启又变成了你网卡里面的地址了
还要把防火墙和安全机制关闭
然后我们再试试
反向解析:
从ip到域名,把ip地址解析成域名
改区域配置文件
一样复制一个反向配置进行修改
注意,两个区域配置文件不能重复,因此需要稍微修改一下
zone "233.168.192.in-addr.arpa" IN { 反向解析192.168.233.的IP地址
type master;
file "ky30.com.zone.local";区域数据文件可以自定义,但是不能重复
allow-update { none; };
};
到区域配置文件里面
因为前面已经改好了ky30,我们把它复制一下改为ky30.local
ls看一下
然后我们直接改ky30.com.zone.local
把前面的40 41写进去
IN 使用internet
PTR:表示反向解析
40 IN PTR www.ky30.com 表示你访问192.168.233.40 就会访问www.ky30.com
改完,保存退出重启服务
实验一下
这就是反向解析
第一个高可用:vrrp 主备,主挂了,备顶上去
主从域名服务器:第二个高可用
先修改resloaf.conf dns解析服务器地址,改完之后不要重启
改区域配置文件
allow改为transfer
地址改为备服务器的地址20.0.0.200
一样重启一下服务
1就配置完成了
服务器2:
先安装一下服务
一样修改resolv.conf
改主配置文件,设定一个监听地址
vim etc/named.conf
还是这个option
修改为any 所有
注意:前后左右的空格都不要改,会报错
同样的,修改区域配置文件
zone "ky30.com" IN {
type slave; slave备用
file "slaves/ky30.com.zone";改为主的文件的地址
masters { 20.0.0.100; };改为master 主机地址
};
zone "233.168.192.in-addr.arpa" IN {
type slave;
file "slaves/ky30.com.zone.local";
masters { 20.0.0.100; };
};
一样重启一下服务
cd到 /var/named 看到了slaves
cd 到slaves看一下
出现ky30的两个文件,说明没问题
只有这两个区域数据文件同步到了备上面才说明实验成功了
两边都验证一下,看看是否能正常解析
主服务器
从服务器
限制我们把主服务器停了,看看从服务器还行不行
发现从服务器依旧可以进行解析
那么从为什么还能继续工作呢?原因就在于这两个文件
这两个区域数据文件里面,对应了你的域名和ip地址的映射关系
区域配置文件告诉你你的数据文件的保存的信息,核心就在于这两个区域数据文件
怎么清理dns服务器的缓存
因为centos没有清除dns客户端的缓存,安装NSCD,清空DNS服务器的缓存,提高访问速度
安装
启动服务,查看一下是否启动
nscd -g 查看一下缓存信息
nscd -i hosts 清除缓存,并查看一下
重点总结:
常用的域名解析:
正向解析:把域名变成ip地址
为什么要有域名解析:
ip地址难记,域名好记,但是在互联网上,我们都是通过ip地址进行通信,于是域名解析应运而生,它的主要作用就是把域名转换成ip,方便我们进行访问
域名解析的命令:nslookup 域名/ip地址
作用1:就是把域名变成ip地址
正向解析:把域名解析成ip地址
反向解析:把ip地址解析成域名
作用2:导航:dns解析类型类似于导航,精确定位所需要访问的网站。
完整的域名 www.baidu.com.cn.
. 根域 IPv4的根域全球一共有13个,
ipv6根域名:全球有25个,中国1主3从,美国1主2从(了解即可)
.cn 一级域,顶级域:国家或者组织 .cn .us .jp
.com 二级域:组织或者机构 .com 表示商业组织 .edu(教育机构) org 非盈利组织 .net 运营商(以上全是国内)
baidu 子域:域名
www 主机站点,就是主机名
www.baidu.com.cn. 从根域开始,一级一级往下看,从右往左看
缓存域名服务器:运营商,我们访问绝大多数的网站,都是从运营商的缓存服务器调用的缓存记录,直接访问。
主域名服务器:唯一性,记录了所有域名和ip地址的映射关系。
从域名服务器:就是主的热备份,主挂了,从服务器顶上。
DNS解析的查询方式(重点,面试会问,一定要会)
迭代:每一次都比前面一次获得的信息要多,一级一级向下查询
递归:查询结果反馈给客户
一旦在缓存服务器上没有相关的域名和ip地址的映射关系,那怎么去访问,定位这个域名的地址?
概括一下:
迭代查询就是根域--->二级域--->子域名
子域名--->缓存服务器--->用户(查询的结果返回给客户就是递归)
详细步骤(要会):
1、用户------>本地文件(hosts)------>dns域名服务器(运营商缓存服务器)------>根域名服务器(知道结果,但是不告诉你,让你去二级服务器去查)------>二级域名服务器(我知道结果,但是我也不告诉你,子域名服务器去找)------>子域名服务器(知道结果了,域名和ip地址的映射关系)------>缓存服务器(运营商)------>hosts ------>用户
根域名服务器(知道结果,但是不告诉你,让你去二级服务器去查)------>二级域名服务器(我知道结果,但是我也不告诉你,子域名服务器去找)------>子域名服务器(知道结果了,域名和ip地址的映射关系) 迭代查询
子域名服务器(知道结果了,域名和ip地址的映射关系)------>缓存服务器(运营商,记录域名和ip地址的映射关系)------>hosts ------>用户 查询
递归查询,查询结果返回给目录(递归查询)
/etc/named.conf 主配置文件
/etc/named.rfc1912.zones 区域配置文件,就是用来保存域名和ip地址对应关系的位置,这里只定义了域名与ip地址解析规则保存的文件位置以及服务类型。没有具体的ip,域名之间的关系。
/var/named/named.localhost 区域的数据配置文件,这里保存的是具体的ip地址和域名之间的关系
$TTL 1D:引用全局变量,缓存解析结果的有效时间。1D,1天。
@:也是一个变量,表示当前dns的区域名,指的就是ky30.com.zone
in:表示使用的是Internet协议
SOA:解析类型,起始的解析记录
NS:记录当前区域的DNS服务名称 必不可少
A:记录主机的ip地址 必不可少(ipv4地址)
AAAA:Ipv6的地址
PTR:表示反向解析
30 IN PTR www.ky30.com. 访问192.168.233.40 就会访问www.ky30.com.
第一个高可用:vrrp 主备,主挂了,备顶上去
主从域名服务器:第二个高可用
nscd -g 查看缓存
nscd -i hosts 清除缓存
需要掌握
1、域名解析的概念及作用
2、各个域名服务器的概念
3、DNS解析的查询方式及其具体步骤(重点掌握,面试题)
迭代查询 根域-二级域-子域
递归查询 子域查询结果反回给用户
4、主配置文件 区域配置文件 区域的数据文件的位置及参数代表的意思
/etc/named.conf
/etc/named.rfc1912.zones
/var/named/named.localhost
NS:记录当前区域的DNS服务名称 必不可少
A:记录主机的ip地址 必不可少(ipv4地址)
PTR 反向解析