笔记|Linux网络服务—DNS
文章目录
- 一、DNS简介
-
- 1.1 DNS名词介绍
- 1.2 DNS系统的作用
- 1.3 DNS查询类型及原理
- 1.3DNS系统类型
- 1.4本地名称解析配置文件
- 1.5 DNS查询方式
- 1.6 DNS正向解析查询原理过程
- 二、正向解析资源记录及配置实例
-
- 1.各种资源记录
-
-
- 1.1.1 SOA记录
- 1.1.2 NS记录
- 1.1.3 MX记录
- 1.1.4 A记录
- 1.1.5PTR记录
- 1.1.6 CNAME别名记录
- 1.2 正向解析安装配置方法
-
- 2.反向解析
- 3.主从复制
-
- 3.1 主服务器的配置
-
- 3.1.1 关闭主服务器的防火墙和selinux
- 3.1.2 安装bind bind-utils.x86_64
- 3.1.3 修改配置文件
- 3.1.4 启动服务
- 3.2 从服务器的配置
-
- 3.2.1 关闭主服务器的防火墙和selinux
- 3.2.2 安装bind bind-utils.x86_64
- 3.2.3 修改配置文件
- 3.2.4 启动服务
- 3.2.5 验证操作
- 4.分离解析
-
- 4.1 关闭主服务器的防火墙和selinux
- 4.2 安装bind bind-utils.x86_64
- 4.3 网卡设置
- 4.4 两台windows设置
- 4.5 更改配置文件
- 4.6 验证操作
一、DNS简介 1.1 DNS名词介绍
域名管理系统DNS(Domain Name System)是域名解析服务器的意思,应用层协议,是互联网的一项服务。它在互联网的作用是:把域名转换成网络可以识别的ip地址,在通过IP地址访问主机。 种由文字组成的名称,显而易见要更容易记忆。
实际上,每一台 DNS 服务器都只负责管理一个有限范围(一个或几个域)内的主机域 名和 IP 地址的对应关系,这些特定的 DNS 域或 IP 地址段称为 zone(区域)。根据地址解析的方向不同,DNS 区域相应地分为正向区域(包含域名到 IP 地址的解析记录)和反向区 域(包含 IP 地址到域名的解析记录)。
1.2 DNS系统的作用 正向解析:根据域名查找对应的IP地址
反向解析:根据IP地址查找对应的域名
DNS系统的分布式数据结构:
文章图片
IPv4的根名称服务器:全球共13个负责解析根域的DNS服务器,美国10个,英国1,瑞典1,日本1
IPv6的根名称服务器:全球共25个,中国1主3从,美国1主2从
1.3 DNS查询类型及原理 一级DNS服务器:专门负责一级域名的解析(一般代表一种类型的组织机构或国家地区):
一级域名 | |
---|---|
.com | 工商企业 |
.net | 网络供应商 |
.edu | 教育机构 |
.cn | 中国国家域名 |
.org | 团体组织 |
.gov | 政府部门 |
二级域名 |
---|
二级域名 |
.net.cn |
.edu.cn |
.com.cn |
三级域名 |
---|
ina.com.cn |
.pku.edu.cn |
主机名 |
---|
tts9 |
tts6 |
www |
但是没有自己控制的区域地址数据。构建缓存域名服务器时,必须设置根域或指定
其他 DNS 服务器作为解析来源。
**主域名服务器:**管理和维护所负责解析的域内解析库的服务器
从域名服务器:
从主服务器或从服务器"复制"(区域传输)解析库副本
序列号:解析库版本号,主服务器解析库变化时,其序列递增
刷新时间间隔:从服务器从主服务器请求同步解析的时间间隔
重试时间间隔:从服务器请求同步失败时,再次尝试时间间隔
过期时长:从服务器联系不到主服务器时,多久后停止服务
通知机制:主服务器解析库发生变化时,会主动通知从服务器
1.4本地名称解析配置文件
Linux: /etc/hosts windows : c/windows/system32/drivers/etc/hosts
文章图片
[root@localhost ~]#vim /etc/nsswitch.conf
#修改dns的优先级
hosts:files dns myhostname
#修改 files和 dns的先后优先级就不同。如果files在前面,那么file优先级就比较高
文章图片
文章图片
文章图片
文章图片
1.5 DNS查询方式 递归查询:一般客户机和本地DNS服务器之间属于递归查询,即当客户机向DNS服务器发出请求后, 若DNS服务器本身不能解析,则会向另外的DNS服务器发出查询请求,得到最终的肯定或否定的结 果后转交给客户机。此查询的源和目标保持不变,为了查询结果只需要发起一次查询。(不需要自己动手)
迭代查询:一般情况下(有例外)本地的DNS服务器向其它DNS服务器的查询属于迭代查询,如:若对 方不能返回权威的结果,则它会向下一个DNS服务器(参考前一个DNS服务器返回的结果)再次发起 进行查询,直到返回查询的结果为止。此查询的源不变,但查询的目标不断变化,为查询结果一般需 要发起多次查询。(需要自己动手)
1.6 DNS正向解析查询原理过程 ①先查本机的缓存记录
②查询hosts文件
③查询dns域名服务器,交给dns域名服务器处理以上过程成为递归查询:我要一个答案你直接会给我结果
④这个dns服务器可能是本地域名服务器,也有个缓存,如果有直接返回结果,如果没有则进行下一步
⑤求助根域服务器,根域服务器返回可能会知道结果的顶级域服务器让他去找顶级域服务器
⑥求助顶级域服务器,顶级域服务器返回可能会知道结果的二级域服务器然他去找二级域服务器
⑦求助二级域服务器,二级域服务器查询发现是我的主机,把查询到的ip地址返回给本地域名服务器
⑧本地域名服务器将结果记录到缓存,然后把域名和ip的对应关系返回给客户端
二、正向解析资源记录及配置实例 1.各种资源记录 区域解析库:由众多资源记录RR(Resource Record)组成
记录类型:A, AAAA, PTR, SOA, NS, CNAME, MX
【笔记|Linux网络服务—DNS】SOA:Start Of Authority,起始授权记录;一个区域解析库有且仅能有一个SOA记录,必须位于解
析库的第一条记录SOA,是起始授权机构记录,说明了在众多 NS 记录里哪一台才是主要的服务器。在任何DNS记录文件中,都是以SOA ( Startof Authority )记录开始。SOA资源记录表明此DNS名称服务器是该DNS域中数据信息的最佳来源。
A(internet Address):作用,域名解析成IP地址
AAAA(FQDN): --> IPV6
PTR(PoinTeR):反向解析,ip地址解析成域名
NS(Name Server):专用于标明当前区域的DNS服务器,服务器类型为域名服务器
CNAME : Canonical Name,别名记录
**MX(Mail eXchanger)**邮件交换器
TXT:对域名进行标识和说明的一种方式,一般做验证记录时会使用此项,如:SPF(反垃圾邮
件)记录,https验证等
SOA记录与NS记录的区别:NS记录表示域名服务器记录,用来指定该域名由哪个DNS服务器来进行解析;SOA记录设置一些数据版本和更新以及过期时间等信息。
1.1.1 SOA记录 name: 当前区域的名字,例如"kgc.com."
value: 有多部分组成
注意:
- 当前区域的主DNS服务器的正向解析,也可以使用当前区域的名字
- 当前区域管理员的邮箱地址;但地址中不能使用@符号,一般用.替换
- 主从服务区域传输相关定义以及否定的答案的统一的TTL
$TTL 1D
@IN SOAmaster.ttt.com. admin.ttt.com. (
0;
serial
1D;
refresh
1H;
retry
1W;
expire
3H );
minimum
1.1.2 NS记录 name: 当前区域的名字
value: 当前区域的某DNS服务器的名字,例如: ns.kgc.org.
注意:
- 相邻的两个资源记录的name相同时,后续的可省略
- 对NS记录而言,任何一个ns记录后面的服务器名字,都应该在后续有一个A记录
- 一个区域可以有多个NS记录
master IN NS ttt.com.master IN NS ttt.com.
1.1.3 MX记录 name: 当前区域的名字
value: 当前区域的某邮件服务器(smtp服务器)的主机名
注意:
- 一个区域内,MX记录可有多个;但每个记录的value之前应该有一个数字(0-99),表示此服务器的
- 对MX记录而言,任何一个MX记录后面的服务器名字,都应该在后续有一个A记录
mailIN MX 10 mx1.ttt.org.
IN MX 20 mx2.ttt.org.
mx1 A192.168.91.10
mx2 A192.168.91.10
1.1.4 A记录 name: 某主机的域名解析,例如:www.ttt.com
value:主机名对应主机的IP地址
避免用户写错名称时给错误答案,可通过泛域名解析进行解析至某特定地址
范例:
www.ttt.com. IN A 1.1.1.1
www.ttt.com. IN A 2.2.2.2
www.ttt.com. INA 3.3.3.3
www.ttt.com. INA 4.4.4.4
* IN A 5.5.5.5
#代表泛域名
@INA 6.6.6.6
#代表不需要名字
1.1.5PTR记录
name: IP,有特定格式,把IP地址反过来写,1.2.3.4,要写作4.3.2.1;而有特定后缀:inaddr.arpa.,所以完整写法为:4.3.2.1.in-addr.arpa.
value: FQDN
例如:
3.2.1.in-addr.arpa. IN PTR www.kgc.org.
#如1.2.3为网络地址,可简写成:
4 IN PTR www.ttt.com
1.1.6 CNAME别名记录
name: 别名的FQDN
value: 真正名字的FQDNftp.ttt.com.IN CNAME www.ttt.com
#固定格式
name[TTL]INrr_typevalue
缓存时间internet记录区域解析库值$TTL 1D
@IN SOAmaster.ttt.com. admin.ttt.com. (
0;
serial
1D;
refresh
1H;
retry
1W;
expire
3H );
minimum
NSmaster.ttt.com.
masterA192.168.187.150
wwwA192.168.187.151
dbA192.168.187.152
INMX 10mail.ttt.com.
mailA192.168.187.10
ftpCNAMEwww$TTL 1D#有效解析记录的生存周期
@in SOA benet.com. admin.benet.com. (#“@"符号表示当前的DNS区域名
0;
serial#更新序列号,可以是10位以内的整数
1D;
refresh#刷新时间,重新下载地址数据的间隔
1H;
retry#重试延时,下载失败后的重试间隔
1W;
expire#失效时间,超过该时间仍无法下载则放弃#
3H);
minimum#无效解析记录的生存周期,
NSbenet.com.#记录当前区域的DNS服务器的名称
A192.168.80.10#记录主机IP地址
INMX 10mail.benet.com.#MX为邮件交换记录,数字越大优先级越低
wwwIN A192.168.80.10#记录正向解析www.benet.com对应的IP
mail IN A192.168.80.11#MX为邮件交换记录,数字越大优先级低
ftpIN CNAMEwww#CNAME使用别名,ftp 是www的别名
*IN A192.168.80.100#泛域名解析,“*"代表任意主机名
注意:
- TTL可从全局继承
- 使用 “@” 符号可用于引用当前区域的域名
- 同一个名字可以通过多条记录定义多个不同的值;此时DNS服务器会以轮询方式响应
- 同一个值也可能有多个不同的定义名字;通过多个不同的名字指向同一个值进行定义;此仅表示通
1.2 正向解析安装配置方法
[root@localhost ~]#yuminstall bind bind-utils -y
#主软件 和 配置包管理软件
文章图片
[root@localhost ~]#systemctl stop firewalld.service
[root@localhost ~]#setenforce 0
[root@localhost ~]#systemctl start named
#开启服务
文章图片
[root@localhost ~]#netstat -ntap |grep named
文章图片
[root@localhost ~]#vim /etc/sysconfig/network-scripts/ifcfg-ens33 DNS1=127.0.0.1
文章图片
[root@localhost ~]#systemctl restart network
[root@localhost ~]#ping www.baidu.com
[root@localhost ~]#rpm -qc bind
#配置文件包
/etc/logrotate.d/named
/etc/named.conf
/etc/named.iscdlv.key
/etc/named.rfc1912.zones
/etc/named.root.key
/etc/rndc.conf
/etc/rndc.key
/etc/sysconfig/named
/var/named/named.ca
/var/named/named.empty
/var/named/named.localhost
/var/named/named.loopback
文章图片
[root@localhost ~]#vim /etc/named.conf
#可以修改配置,注释,或者删除这两行
listen-on port 53 { any;
};
allow-query{ any;
};
文章图片
[root@localhost ~]#rndc reload
#重新加载DNS服务
server reload successful
文章图片
[root@localhost named]#vim /etc/named.rfc1912.zones
#编写域名
zone "ttt.com" {
type master;
file "ttt.com.zone";
};
文章图片
[root@localhost named]#cd /var/named/
#切换目录
[root@localhost named]#ls
datadynamicnamed.canamed.emptynamed.localhostnamed.loopbackslaves
[root@localhost named]#cp named.localhost ./ttt.com.zone -p
#保留权限复制
[root@localhost named]#ls
datadynamickgc.com.zonenamed.canamed.emptynamed.localhostnamed.loopbackslaves
[root@localhost named]#vim ttt.com.zone
#编辑数据库文件,解析记录对应关系
$TTL 1D
@IN SOAmaster. admin.ttt.com. (
0;
serial
1D;
refresh
1H;
retry
1W;
expire
3H );
minimum
NSmaster
masterA192.168.187.150
wwwA192.168.91.151
文章图片
文章图片
wq 保存退出
host www.ttt.com 验证一下
[root@kgc ~]# cd /var/www/html/
[root@kgc html]# ls
[root@kgc html]# vim index.html
www.ttt.com
#检查启动文件格式
named-checkconf
named-checkzone kgc.com /var/named/kgc.com.zone 要开启httpd服务
systemctl start httpd
没有httpd就要下载
yum -y install httpd
文章图片
文章图片
文章图片
2.反向解析
[root@localhost named]#vim /etc/named.rfc1912.zones
#先修改区域配置文件
zone "91.168.192.in-addr.arpa" IN {
type master;
file "ky15.com.zone";
};
文章图片
[root@localhost named]#cp -p named.localhost ttt.com.zone
#复制正向解析文件
[root@localhost named]#vim ky15.com.zone
#编辑文件
TTL 1D
@IN SOAmaster admin.ttt.com. (
0;
serial
1D;
refresh
1H;
retry
1W;
expire
3H );
minimum
NSmaster
masterA192.168.187.150
100 INPTRwww.ttt.com.
88INPTRftp.ttt.com.
文章图片
3.主从复制 实验环境:
主服务器地址:192.168.91.100
从服务器地址:192.168.91.103
3.1 主服务器的配置
3.1.1 关闭主服务器的防火墙和selinux
systemctl stop firewalld.service
setenforce 0
文章图片
3.1.2 安装bind bind-utils.x86_64
yum -y install bind bind-utils.x86_64
文章图片
3.1.3 修改配置文件
vim /etc/named.conf
文章图片
文章图片
vim /etc/named.rfc1912.zones
文章图片
文章图片
[root@localhost ~]# cd /var/named/
[root@localhost named]# ls
datanamed.canamed.localhostslavesdynamicnamed.emptynamed.loopback
[root@localhost named]# cp -p named.localhost ttt.com.zone
[root@localhost named]# vim ttt.com.zone
文章图片
文章图片
3.1.4 启动服务
systemctl start named启动服务
注
如果发生错误就
systemctl status named#查看一下错在哪,修改配置文件
文章图片
这个时候主就搭好了,下面来搭从服务器
3.2 从服务器的配置
3.2.1 关闭主服务器的防火墙和selinux
systemctl stop firewalld.service
setenforce 0
文章图片
3.2.2 安装bind bind-utils.x86_64
yum -y install bind bind-utils.x86_64
文章图片
3.2.3 修改配置文件
vim /ect/named.conf
文章图片
vim /etc/named.rfc1912.zones
文章图片
3.2.4 启动服务
systemctl start named 注
如果发生错误就
systemctl status named#查看一下错在哪,修改配置文件
文章图片
3.2.5 验证操作
ls /var/named/slaves
ttt.com.zone
文章图片
dig www.ttt.com @192.168.187.160
解析命令域名@你的dns服务器地址
文章图片
4.分离解析 实验环境:
将linux服务器配置两块网卡,都为仅主机模式
ens33:192.168.100.1
ens37:12.0.0.1
win7作为外网:12.0.0.12 255.0.0.0
win10作为内网:192.168.100.100
4.1 关闭主服务器的防火墙和selinux
systemctl stop firewalld.service
setenforce 0
文章图片
4.2 安装bind bind-utils.x86_64
yum -y install bind bind-utils.x86_64
文章图片
4.3 网卡设置
给linux服务器添加一块网卡,两块网卡都设置为仅主机
文章图片
cd /etc/sysconfig/network-scripts
vim ifcfg-ens33#先修改ens33的网卡
文章图片
先ifconfig查看一下自己第二块网卡的名字我的是ens37
文章图片
cp ifcfg-ens33 ifcfg-ens37
vim ifcfg-ens37
文章图片
文章图片
systemctl restart network#重启网卡
文章图片
4.4 两台windows设置
一台win7 和 一台win10
都设置为仅主机模式
win7作为外网 ipv4手动改为:12.0.0.12 255.0.0.0
文章图片
win10作为内网:192.168.100.100
文章图片
4.5 更改配置文件
vim /etc/named.conf
文章图片
vim /etc/named.rfc1912.zone
文章图片
cd /var/named
cp -p named.localhost ttt.com.lan
vim ttt.com.lan
文章图片
cp -p ttt.com.lan ttt.com.wan
文章图片
vim ttt.com.wan
文章图片
systemctl start named 注
如果发生错误就
systemctl status named#查看一下错在哪,修改配置文件
文章图片
4.6 验证操作
nslookup www.ttt.com
文章图片
推荐阅读
- EffectiveObjective-C2.0|EffectiveObjective-C2.0 笔记 - 第二部分
- Android中的AES加密-下
- Linux下面如何查看tomcat已经使用多少线程
- 【读书笔记】贝叶斯原理
- 【韩语学习】(韩语随堂笔记整理)
- Beego打包部署到Linux
- 人性的弱点-笔记
- 读书笔记:博登海默法理学|读书笔记:博登海默法理学 —— 正义的探索(1)
- D034+3组苏曼+《写作这回事》读书笔记
- 《自我的追寻》读书笔记3