1、DNS域名解析服务
域名系统(英文:Domain Name System,缩写:DNS)
1.1 DNS作用:
将域名 转换成 ip地址。
一个ip可以对应多个域名,但一个域名不能对应多个ip
180.18.125.10 www.baidu.com
ip地址 域名
1.2 DNS的三个发展阶段:
- 分散式 :早期 使用文本文件记录,效率极低
- 集中式 :中期 使用单台服务器 集中解析
- 分布式 :按照层级划分,不同层级管理的范围不同
1.3 DNS解析的分类:
- 正向解析:根据域名查找对应的IP地址;
- 反向解析:根据IP地址查找对应的域名,反向基本不用。
1.4 域名的组成:
- 根域名
- 一级域名(顶级域名)
- 二级域名
- 三级域名
- ……
- 最多可达到127级域名
www.baidu.com.
拆解:
最后一个. : 代表根域,根域可以省略
.com : 一级域名
.biadu : 二级域名
www : 主机名
有 . 的叫域名; 没有 . 的是主机名
1.4.1 根域名
根域服务器 一共13台:美国10台、英国1台、瑞典1台、日本1台。
1.4.2 一级域名(顶级域名)
一级域名 | 含义 |
---|---|
.com | 工商 企业 |
.net | 网络供应商 |
.edu | 教育机构 |
.cn | 中国国家域名 |
.org | 团体组织 |
.gov | 政府部门 |
1.4.3 二级域名
二级域名 | 含义 |
---|---|
.com.cn | 中国商业组织 |
.edu.cn | 中国教育机构 |
.net.cn | 中国运营商 |
.org.cn | 中国非盈利组织 |
1.4.4 子域名(三级以下的域名都称为子域名)
子域名 | 含义 |
---|---|
sina.com.cn | 新浪 |
pku.edu.cn | 北京大学 |
tsinghua.edu.cn | 清华大学 |
1.4.5 主机名
www
mails
news
小拓展:
DNS | 说明 |
---|---|
114.114.114.114 | 三大运营商 |
8.8.8.8 | 谷歌 |
218.2.135.1 | 南京电信 |
域名 | 网络地址 | 解析范围 | 对应服务器 |
---|---|---|---|
根域名 | test | 主机+根域 | 根域服务器 |
一级域名(顶级域) | test.com | 主机+1级域+根域 | 一级域服务器 |
二级域名 | www.baidu.com | 主机 +2级域+1级域+根域 | 二级域服务器 |
三级域名 | test.www.baidu.com | 主机+3级域 +2级域+1级域+根域 | 三级域服务器 |
1.5 DNS解析过程(互联网环境)
1.先去看 /etc/hosts 文件中是否 有 www.baidu.com 的地址,如果有(递归查询)直接访问
2.如果没有 去问 你自己设置dns服务器,运营商提供,如果有就直接反馈,没有就找根域名
3.根域无法解析www.baidu.com,会透露一个信息给你,让你去找一级域
4.一级域无法解析www.baidu.com,会透露一个信息给你,让你去找二级域
5.以此类推, 最后有一台权威服务器会告诉你 具体的 ip地址,然后 反馈给用户
1.6 解析类型
- 递归:一次询问直接就有结果
- 迭代:需要多次询问
2、bind软件(内网)
bind是DNS服务器软件,提供域名解析,和dhcp同属于www.isc.org公司。
2.1 bind各配置文件位置:
名称或位置 | 文件含义 |
---|---|
bind | 软件名(安装包名) |
named | 程序名 |
/etc/named.conf | 主配置文件 |
/etc/named.rfc1912.zones | 区域配置文件,存放要解析的域名 |
/var/named /* | 数据库配置文件,就是以前的hosts文件 |
usr/sbin/rndc**** | bind管理工具 |
/var/named/named.ca | 指明根的位置 |
// rndc reload 刷新、重新加载
2.2 主配置文件
位置:/etc/named.conf
2.2.1 指向
改DNS指向 是重点!
假如本机是7-2,那么其他机器的设置要指向7-2,本机也要指向7-2的地址。
注意:上图中,DNS1也可以改成127.0.0.1 回环地址,同样也是指向自己。
systemctl restart network #重启网络
cat /etc/resolv.conf #验证下 DNS有没有修改成功
2.2.2 修改主配置文件
有两种方法:
1、不修改,直接注释
options {
// listen-on port 53 { 127.0.0.1; };
listen-on-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";
// allow-query { localhost; };
2、将下面两处,改成any(注意结束符 ; )
2.3 区域配置文件
/etc/named.rfc1912.zones
2.4 数据库配置文件
位置和查看权限:
[root@localhost ~]# cd /var/named #切换到数据库配置文件位置
[root@localhost named]# ls
abc.com.zone data dynamic named.ca named.empty named.localhost named.loopback slaves
[root@localhost named]# cp -p named.localhost abc.com.zone #abc.com.zone 必须与区域配置文件里的名字保持一致。
[root@localhost named]# ll #查看权限,权限也要保持一致
-rw-r-----. 1 root named 152 6月 21 2007 abc.com.zone
drwxrwx---. 2 named named 23 4月 27 20:52 data
drwxrwx---. 2 named named 60 4月 27 20:53 dynamic
-rw-r-----. 1 root named 2253 4月 5 2018 named.ca
-rw-r-----. 1 root named 152 12月 15 2009 named.empty
-rw-r-----. 1 root named 152 6月 21 2007 named.localhost
-rw-r-----. 1 root named 168 12月 15 2009 named.loopback
drwxrwx---. 2 named named 6 10月 16 2023 slaves
[root@localhost named]# vim abc.com.zone #编辑数据库文件
通式:
name [TTL] IN rr_type value
域名 生命周期(可省略) 使用INTERNET协议 数据类型:A、AAAA ip地址
2.4.1 数据记录类型 rr_type
注意:必须要是大写字母!!!
- SOA:Start Of Authority,起始授权记录; 所有解析库的第一条记录必须是SOA,一个区域解析库有且仅能有一个SOA记录。
- A(internet Address):正向解析,代表ipv4,作用:域名解析成IP地址
- AAAA(FQDN): 代表ipv6
- PTR(PoinTeR):反向解析,ip地址解析成域名
- NS(Name Server):,专用于标明当前区域的DNS服务器,服务器类型为域名服务器
- CNAME : Canonical Name,别名记录
- MX(Mail eXchanger)邮件交换器
- TXT:对域名进行标识和说明的一种方式,一般做验证记录时会使用此项,如:SPF(反垃圾邮件)记录,https验证等
2.4.1.1 SOA记录
SOA记录必须是第一条,作用是:制定了规则和属性。
拆解示例:
$TTL 1D #生命周期 ,默认是1天
@ in SOA master.abc.com. admin.benet.com. ( #“@"符号表示当前的DNS区域名
域名 当前服务器名称 邮箱地址
0 ; serial #版本号,可以是10位以内的整数,手动更新
1D ; refresh #刷新时间,重新下载地址数据的间隔
1H ; retry #重试延时,下载失败后的重试间隔
1W ; expire #失效时间,超过该时间仍无法下载则放弃
3H) ; minimum #无效解析记录的生存周期
NS abc.com. #记录当前区域的DNS服务器的名称
A 192.168.80.10 #记录主机IP地址
IN MX 10 mail.abc.com. #MX为邮件交换记录,数字越大优先级越低
www IN A 192.168.80.10 #记录正向解析www.benet.com对应的IP
mail IN A 192.168.80.11 #MX为邮件交换记录,数字越大优先级低
ftp IN CNAME www #CNAME使用别名,ftp 是www的别名
* IN A 192.168.80.100 #泛域名解析,“*"代表任意主机名
// 推 是主服务器 主动推给 从服务器
// 拉取 是从服务器 主动联系 主服务器
2.4.1.2 NS记录
指明谁是主服务器,谁是从服务器。
NS master 主服务器
NS slave 从服务器
注意:
- 对NS记录而言,任何一个NS记录后面的服务器名字,都应该在后续有一个A记录
- 一个区域可以有多个NS记录
2.4.1.3 MX记录
邮箱记录。
2.4.1.4 A记录(正向解析)
将域名解析为IP地址。
name: 某主机的域名解析,例如:www.kgc.com
value:主机名对应主机的IP地址
示例:
// www.kgc.com. 后面的 . 必须要写全,不写全,会出问题!
* IN A 5.5.5.5 #代表泛域名
@ IN A 6.6.6.6 #代表不需要名字
2.4.1.5 PTR记录(反向解析)
将IP地址解析为域名。
ip地址要反过来写!
name: IP,有特定格式,把IP地址反过来写,1.2.3.4,要写作4.3.2.1;而有特定后缀:inaddr.arpa.,所以完整写法为:4.3.2.1.in-addr.arpa.
示例:
3.2.1.in-addr.arpa. IN PTR www.kgc.org.
#如1.2.3为网络地址,可简写成:
4 IN PTR www.kgc.com
2.4.1.6 CNAME 别名记录
name: 别名的FQDN
value: 真正名字的FQDN
ftp.kgc.com. IN CNAME www.kgc.com
2.5 named-checkconf 检查
named-checkconf 检查启动文件格式 检查语法是否错误
通式:
named-checkzone abc.com /var/named/abc.com.zone
域名 文件名
rndc reload #重新加载named服务
2.6 正向解析 实验一:
[root@localhost ~]# yum install bind bind-utlis -y //安装bind软件
主包 工具包(依赖包)
[root@localhost ~]# rpm -ql bind //显示所有文件列表
vim /etc/sysconfig/network-scripts/ifcfg-ens33
DNS1=本机ip地址
systemctl restart network
cat /etc/resolv.conf
#先修改主配置
vim /etc/named.conf
#可以修改配置,注释,或者删除这两行
listen-on port 53 { any; };
allow-query { any; };
# // listen-on port 53 { 127.0.0.1; };
# // allow-query { localhost; };
#再修改区域配置
vim /etc/named.rfc1912.zones
#5yy 加大P
#编写域名
zone "abc.com" {
type master;
file "abc.com.zone";
};
#第三部分
[root@localhost named]#cd /var/named/
[root@localhost named]#ls
[root@localhost named]#cp -a named.localhost abc.com.zone
[root@localhost named]#vim abc.com.zone
#第四部分
[root@localhost named]# systemctl start named #必须要开启named服务
[root@localhost named]# host www.abc.com #解析
[root@localhost named]# named-checkzone #检查语法是否错误
2.7 反向解析
2.7.1 区域配置文件
vim /etc/named.rfc1912.zones
// ip地址要反过来写
2.7.2 数据库配置文件
rndc reload
host 192.168.91.123 #解析
host 192.168.91.155
2.8 主 从复制
两个DNS 一主一从
主:192.168.91.100
从:192.168.91.101
2.8.1 主服务器 设置:
允许谁和 主同步:
vim /etc/named.rfc1912.zones
2.8.2 从服务器 设置:
[root@localhost ~]# yum install bind bind-utlis -y //安装bind软件
[root@localhost ~]# vim /etc/named.conf #主配置,跟正向解析一样,进行注释
# // listen-on port 53 { 127.0.0.1; };
# // allow-query { localhost; };
#再修改区域配置
vim /etc/named.rfc1912.zones
#5yy 加大P
systemctl start named #开启named服务
host
dig
主从 复制之间的拉取:
2.9 域名解析工具
- nslookup
- dig
- host