Linux基础学习-DNS服务管理
第二十七节 DNS服务管理16
DHCP:网络配置,自动分配IP,子网掩码,默认网关
NFS:网络文件系统----文件共享----Linux之间
FTP:文件传输协议----文件共享----Windows和Linux之间
NTP:时间同步
27.1 DNS服务器发展过程
27.1.1.Dns服务—域名服务
1.Dns服务(domain name service) 域名服务 Dns服务器(域名服务器)----解析网址
1)主机名—计算机之间的网络通讯依靠IP ----主机名解析成IP
2)本地解析----/etc/hosts 在一个局域网中使用。
3)网址----服务器之间的网络通讯依靠ip----网址解析成ip
Dns解析----》在互联网中使用最为广泛的解析方式
27.1.2dns服务器–软件,脚本,端口
协议 | 软件-服务器端 | 启停脚本 | 端口 |
---|---|---|---|
DHCP | DHCP | /etc/rc.d/init.d/Dhcpd | 67、68 |
FTP | Vsftpd | /etc/rc.d/init.d/Vsftpd | 20、21 |
HTTP(s) | 80、(s)443 | ||
NFS | Nfs-utils | /etc/rc.d/init.d/nfs | 2049 |
NTP | NTP | NTP | UDP 123 |
DNS | Bind | Named | UDP53 TCP53 |
1.监听端口: Udp:53 TCP:53
2.启停脚本:named
3.Bind(Berkeley Internet Name Domain)----实现dns服务器的软件
BIND有四个内置的acl
any:任何主机
none:没有主机
local:本机IP地址和127.0.0.0
localnet:本机所在的网络
其格式如下:
acl acl-name {
address_match_list
};
address_match_list表示IP地址或IP地址集
27.1.3主机间通讯机制的演变
1.最开始计算机之间通过mac地址寻找对方
2.后期出现tcp/ip协议,计算机之间通过IP地址通讯
3.由于人记忆IP地址比较麻烦,就出现了主机名/域名
例如:http://www.bosenrui.com
ftp://192.168.198.128----》ip:192.168.198.128 端口(port)21
ftp://192.168.198.128:2030—> ip:192.168.198.128 端口(port)2030
ftp://ygdy8:ygdy8@yg69.dydytt.net:8018/阳光电影www.ygdy8.com.神弃之地.BD.1080p.中英双字幕.mkv
ftp:// yg69.dydytt.net:8018------》ip: 192.126.117.69 端口号8018
http://www.baidu.com----》
使用ip----直接访问目标服务器----》效率快
使用网址—进行域名/主机名解析—》访问目标服务器
27.1.4名称解析
1.名称解析的过程:就是某个应用程序基于某个搜索键在指定数据库中查询,查询到对应的键,与键对应值,被找出来的过程。
2.主机名解析/域名解析
3.用户名解析
例如:用户的suid–具备root用户的权限
用户yyn的uid是500,具有Euid(有效uid)。
当用户使用命令时,没有suid,那么euid就是uid
当用户使用命令时,有suid euid就是该命令配置文件属主的uid
4.名称解析的配置文件: /etc/nsswitch.conf
主机名解析就有2个文件对应解析:本地文件:/etc/hosts/和dns
27.2 域名解析发展过程
27.2.1本地hosts
网络自己可以组建,
27.2.2地址分配机构
地址分配机构(icnaa)----域名
由于互联网发展迅速,会有成千上万客户端去访问icann,而icann里的hosts文件也会保存成千上万条IP和域名,提供给客户独端下载,大家都来下载和访问服务器,那么效率会降低,出现阻塞状态,而且ftp的端口号也有限制。
27.2.3集中解析机制
集中解析机制
客户端无需下载服务器的hosts文件,要域名解析,直接输入网址,把这个请求发送给icann服务器,然后让icann服务器进行解析,把解析好的IP返回给客户端,客户端在拿着IP去访问这样的服务器就行。这样集中解析会减轻icann服务器的压力,但是在随着网络爆炸式增长,icann服务器的能力比较有限,数据一旦很多,访问量也会增大,处理效率也会降低。
27.2.4分布式数据库
分布式数据库
为了解决以上这些问题,icann服务器,将数据分发到不同的子节点中。
当客户端要ping一个域名时,向icann服务器发出请求,icann服务器,回应客户端ping的域名在他下设置的子节点中,并将子节点IP,返回给客户端,客户端在对子节点发出请求,子节点服务器收到请求,将客户端ping的域名,解析成IP,在返回给客户端。
如果子节点处理不过来数据,那么子节点会在下设分节点,一般现在是三层。
27.2.5域名
1.根域—顶级域(一级域)-----组织域(二级域)----主机名
www.baidu.com —网址----FQDN完全限定域名
2.早期由ICANN自行创建服务器----根域+顶级域
一级域分三类
1).组织域:.com,.org,.net,.mil(军队),.gov,.edu
2).国家域:.cn,.hk,.tw,.jp,.us,.uk
3).反向域:.in-addr.arpa(IP–>主机名)
二级域(在互联网上,通常二级域就由公司等去申请的,因此通常被称为组织域)
3解析分类:
域名解析成ip----正向解析
IP解析成域名-----反向解析
27.3 DNS解析过程
- 服务器—apache软件 —页面服务—www
服务器—vsftpd软件 —ftp服务—ftp
服务器—邮箱软件 —mail服务—mail
服务器—bind软件 —DNS解析服务—dns
2.网址的域组成部门
例如:www.music.baidu.com.
主机名:www.music
二级域:.baidu
一级域:.com
根 域:.
3根据域名划分不同的服务—对应不同的服务器
假如某客户端想要访问www.baidu.com ,那么.baidu.com域名里的dns服务器就会从他的缓存列表中找到对应的IP给客户端,供客户端使用。
假如某客户端想要访问www.sina.com,那么.baidu.com域名里的dns服务器也会从他的缓存列表中找到对应的IP给客户端,如果没有找到,baidu的dns服务器会询问icann服务器有没有www.sina.com,icann服务器会告诉我没有这样的域名,但是我知道.com域名是谁负责的,然后在去找.com下询问,.com域名会告诉你没有这样的域名,但是我知道.sina域名是谁负责,然后你在一层一层询问,直到找到找到.sina.com他会告诉你他的域名下的dns服务器有无该服务,有的话.sina.com的dns服务器就把IP发送给baidu.com的dns服务器,他在给客户端发送,供客户端使用。
4.参考答案和权威答案
百度客户端------访问www.Sina.com----- IP访问网站-----下载页面-----打开页面
解析过程:
询问dns(baidu)------ www.Sina.com
Dns(baidu)----根域服务器----DNS(baidu,线索) 参考答案
Dns(baidu)----一级域服务器—dns(baidu,线索) 参考答案
Dns(baidu)----dns(sina)------dns(baidu,ip) 权威答案
Dns(baidu)----IP解析结果----客户端---- 权威答案
5.迭代:经过多次请求得到权威答案的称为迭代
Dns(baidu)寻找IP的过程就是迭代
Dns发送了n次请求最终得到权威答案
6.递归:只发一次请求就能得到权威答案的称为递归
客户端和dns之间的通讯称为递归
客户端发送一次请求就得到另外权威答案
根域不为任何人提供递归
7.否定应答/肯定应答-----解析结果都会保存
只要没有找到就是否定应答,只要可以找到就是肯定应答
27.4 DNS功能和分类
27.4.1.dns服务器的分类
1dns服务器-----对客户端提供服务的同时,也能解析其他的dns的请求
A:主dns服务器(masters)-----需要自行手动编写区域数据文件
B:辅助dns服务器(slave)-----从主dns服务器同步区域数据文件
2缓存名称服务器-----仅能对客户端提供解析服务
27.4.2.dns服务器对应的功能
1 Dns服务器:给客户端提供解析服务,给其他dns服务器提供解析服务
2缓存名称服务器: 给客户端提供解析服务
27.4.3.dns服务器解析的域
1Dns服务器能够解析的域:
1)根域 .
2)本地域 localhost
3)反向域---- 127.0.0.1的反向域
127.0.0.1反过来—1.0.0.127.in-addr.arpa
4)特定域
2缓存名称服务器:
1)根域.
2)本地域 localhost
3)反向域 127.0.0.1的反向域
27.4.4 区域数据文件
区域里有区域数据文件,区域数据文件里编写资源记录(RR),资源记录各种域名服务及对应的IP.
资源记录(Resource Record,简称RR)
资源记录有类型 ,用于表示资源的功能
SOA:Start Of Authority,起始授权记录这一区域划归谁管理
NS:Name Server,域名服务器
MX:Mail eXchanger:邮件交换器
A:Address,(FQDN–>IP)类似于hosts文件的记录
PTR: PoinTeR,(IP–>FQDN)
AAAA:Address,FQDN–>IPv6
CNAME:Canonical Name,正式名称(别名记录)
27.5 搭建主dns服务器----正向解析
27.5.1搭建DNS服务器端
1.安装软件bind
2.查看安装软件bind
相关配置文件: /etc/named.conf ----主配置文件
/etc/rc.d/init.d/named-----启停脚本
/var/named--------------区域数据文件存放路径
3.配置文件(区域名称)----vim /etc/named.conf
- 复制一份数据 cp /etc/named.conf /etc/named.conf.bak
2)编辑文件vim /etc/named.conf
Option{
全局属性
}; ---------定义全局属性
Zone “区域名称” IN {
区域属性1;
区域属性2;
}; --------定义区域属性
定义全局属性和四个域的模板如图:
A.定义根域.
B.定义本地域localhost
C.定义反向域127.0.0.1–1.0.0.127.in-addr.arpa
D.定义特定域 yyn.com
F最后整体的定义:
D编写好后,保存退出
3)编写区域数据文件(资料记录)
A区域数据文件定义模板如图:
B /var/named下的是四个域的区域数据文件,里面存放着资料记录.
C编辑特定域的的区域数据文件(资源记录)
----Vim /var/named/yyn.com.zone(这个文件要新建)
a)首先到 cd/var/named下----vim yyn.com.zone
b)资源记录内容区分大小写
Name | TTL | IN | RR-TYPE | VALUE |
---|---|---|---|---|
@这个是区域名称—yyn.com—通常用@表示 | 统一设置 T T L 600 时 间 随 意 有 域 名 , 还 给 应 答 + 缓 存 时 间 − − − TTL 600时间随意有域名,还给应答+缓存时间--- TTL600时间随意有域名,还给应答+缓存时间−−−TTL+时间 | 一直是in | 有n个数值,最主要的是主DNS服务器的域名,点不可省略,当前管理员的FQDN,点不可省略dns.yyn.com.(主)admin.yyn.com.(管理) | 辅助dns服务器(slave),(序列号 年月日+01–2020092001,刷新时间 4H,重试时间 10M,失效时间 7D,否定应答缓存时间 7D) |
@ | IN | NS | DNS服务器的FQDN或相对名称,DNS服务器的FQDN:dns.yyn.com.,相对名称:dns | |
@ | ----- | IN | MX | 包含优先级和FQDN 10 mail.yyn.com |
@ | ----- | IN | A | IP地址 |
@ | ----- | IN | CNAME | FQDN(可以使用相对名称)WWW |
第一种类型SOA: 起始授权记录
刷新时间:每隔多久刷新一次
重试时间:每隔刷新时间问一次 ,一旦回应,从当前回应时间开始计算刷新时间
例如:刷新时间为4H,每4H刷新一次访问主dns服务器,重试时间一旦4h中有一次没有及时回应,就会10M访问一次,一旦回应,从当前回应时间在过4h访问主dns服务器
启动服务
失效时间:如果在失效时间一直联系不想主dns服务器,那么辅助就停止
否定应答缓存时间:如果某个域名没有就要保存起来,并定一个时间
第二种类型 NS 表示当前区域由谁负责—dns服务
第三种类型 MX 邮件–用于标识smtp服务器
优先级优先级:0-99,数字越小,级别越高,
第四种类型A: 将FQDN—ip----- 正向解析记录
所有区域名称以@开头的都要有与之对应的A记录(除了SOA记录的value不用添加A记录)
整体的查看编辑文件:
第五种类型CNAME----定义别名
4)启动服务----service named start
如果执行此命令后没有ok,ctrl+C后—执行rndc-confgen -r /dev/urandom -a
利用随机设备的随机数生产密钥保存在/etc/rndc.key
27.5.2搭建DNS客户端
1.客户端测试: 192.168.198.10 当客户端使用
2.定义DNS: 编辑: vim /etc/resolv.conf -----nameserver+服务器地址
3.在客户端上ping 刚才在主dns服务器上定义的域名服务,是否将域名解析成IP—正向解析
这以上5个域名服务对应的IP,和之前在配置文件里的一模一样,说明正向解析都已经完成
27.6 搭建主dns服务器----反向解析
主dns的反向解析:将ip解析成FQDN的过程称为反向解析
27.6.1搭建dns服务器
1.修改配置文件—定义反向域---- /etc/named.conf
反向区域名称:将IP地址的网络位反向书写+反向域
Ip地址为192.168.198.0/24---->网络地址为前21位,
反向:198.168.192+in-addr.arpa
2.编写反向解析区域数据文件----vim /var/named/192.168.198.zone
1)将正向解析文件 yyn.com.zone复制到 192.168.198.zone
2)编辑vim /var/named/192.168.198.zone
文件中必须书写FQDN的绝对名称(带.的),并删除所有的A记录(A记录又叫正向解析记录)
Name | In | TT-TYPE | VALUE |
---|---|---|---|
IP地址(逆向主机地址) | IN | PTR(PoinTeR point) | FQDN(绝对名称) |
相对IP | IN | Ptr记录—ip—FQDN | FQDN(绝对名称) |
3)保存退出
3.重启服务生效----service named restart
27.6.2搭建dns客户端
1.客户端测试:
1)dig命令
基本语法:dig +主机名/区域名称
-t:指定查询类型
-x:反向解析
Dig -x name/IP地址 [@dns服务器地址]
Dig -x 192.168.198.10@192.168.198.128
Dig -t 类型 名称
Dig -t A www.yyn.com
练习:
2)host命令
基本语法: host + 区域名称/主机名
-t :指定查询类型
Host -t 类型 name 【dns服务器】
host -t A www.yyn.com
练习:正向解析和反向解析的查看 查看主机名—查看正向解析,查看反向解析
查看aaa.yyn.com 的正向解析
查看CNAME别名
使用DNS解析www.yyn.com
27.7 辅助dns服务器(slave)搭建
1.安装软件
1)先将主dns服务器上的信息传输到辅助dns服务器上----scp远程传输文件
Scp 192.168.198.128:/etc/named.conf /etc/named.conf.1
2)做备份 先备份辅助服务器上的named.conf,在将传输的文件改名
2.编写配置文件—vim /etc/named.conf
定义类型为slave,—辅助dns服务器,
保存文件为file “/var/named/slaves/主存dns区域文件名“
3.启动服务----从主dns获取区域数据文件
默认以named用户的身份运行named进程,Named进程具有named用户的权限
Named进程从主dns获取区域数据,然后创建文件保存----/var/named/slaves
因为/var/named目录下named用户是属组用户,没有写权限,而/var/named/slaves目录是有写权限的,因此从主dns获取的区域数据,只能保存在/var/named/slaves下
1)启动服务失败—如何解决
A解决方法:named-checkconf(检查配置文件有无问题)
C.配置文件没有问题,就直接查看日志
发现权限有问题,
缺少对文件读的权限,需要chmod o+r /etc/named.conf-----chmod 644 /etc/named.conf
D 再次重新启动服务
2)如何确定辅助dns服务器搭建成功
在辅助dns服务器上查看/etc/var/named/slaves/下是否有刚才同步的主dns服务器上的区域数据文件
4.测试辅助dns服务器----需要指定辅助dns服务器的IP地址
5.还有另一种做法,就是修改vim/etc/resolv.conf
27.8 添加ns记录(可做可不做)
1.当网络中有多个dns服务器的时候,需要在配置文件添加服务器的记录
主dns服务器----dns.yyn.com—在主dns服务器添加辅助dns服务器记录
辅助dns服务器----dns1.yyn.com----在辅助服务器添加辅助记录
2.主dns上的区域数据文件(服务端上做)
正向解析区域数据文件----NS—A
反向解析区域数据文件----NS—PTR
/var/named/yyn.com.zone添加辅助服务器记录
在var/named/192.168.198.zone
27.9 立即手动同步数据(生效)
1.修改之后的数据辅助服务器上没有显示,即使在主dns服务器上重启服务,在到辅助服务器上查看,也没有刚才添加的记录。
那么如何解决这个问题?-----立即手动同步—
1)–修改主dns服务器上的区域数据文件中的序列号
2)重启主dns上的named服务
3)检查辅助nds中的区域数据文件()
使用dig命令查看
27.10 分析默认配置文件
默认配置文件:vim /etc/named.conf
打开配置文件:
1.程序启动时会去内核中注册端口号----进程监听ip上的端口,
进程监听的是某个ip上的端口号
2.配置文件中的默认使用选项:listen-on port 53 { 127.0.0.1; };可修改为自己的服务器IP
表示named进程监听127.0.0.1的53号端口
网卡会先拆帧头
内核—拆网络层首部(目标ip)-----拆传输层首部(目标端口port)
1).如果使用默认配置文件上的IP就会出现:
主dns服务器上的IP是127.0.0.1端口53,这是一个回环地址,named只能给自己提供服务
辅助dns服务器上的IP如果也是127.0.0.1端口53,只能给自己提供服务
2).可以将其改为主服务器的IP---- listen-on port 53 { 192.168.198.128; };
如果不添加这句话,表示监听所有网络内的服务器
3.Linux操作系统查看端口命令:
Netstat -tunpl | grep 服务名称------查看网络套接字
Nemed进程会指明地址:只监听配置文件里指定的IP+回环地址
在主配置文件中设置全局属性时,不添加监听语句,就是默认监听所有IP的53号端口,如果加了添加语句,并指定主dns服务器的IP地址,那么dns只会给指定的IP地址提供named服务。其他的IP一律忽略。
进程监听IP上的端口,进程会监听一个IP的一个端口,某些/所有IP的某个端口,不能监听所有IP的所有端口
如果修改了进程,监听的端口和IP必须restart生效,也可以使用reload,如果重新加载失败,就在使用restart
可以查看restart和redload的方法—》vim/etc/rc.d/init.d/named
4补充套接字:socket-----进程间进行通讯的一种机制
网络通讯:2台主机上的2个进程在相互进行通讯
Dhcp dns 属于网络通讯,也是进程在工作
进程通讯分为:
1)跨主机进程通讯—网络套接字—IP:port
Vsftpd(服务器端进程)----ftp(客户端进程)—这个就是跨主机进程通讯
例如:192.168.198.128:21(服务器端) 192.168.198.10:112233(客户端)
服务器端IP+服务器端端口-----服务器端套接字
客户端ip+客户端端口-----客户端套接字
以上组成一条网络连接
程序启动时会去内核中注册套接字,进程会监听套接字
2)本地进程通讯----本地套接字-----套接字文件(s)
Mysqld(服务器端)----mysql(客户端)—》都是安装在mysql数据库上
当服务器端运行时,会自动在服务器硬盘中自动产生一个套接字文件
分析:首先mysql数据库服务器中会有内存和硬盘,硬盘里放mysqld程序(服务器端)和mysql程序(客户端)一旦2个程序运行起来,就会出现mysqld进程和mysql进程,因为内存中进程都是独立的模块,所以mysql进程和mysqld进程不能互相通信,为了可以互相通信就会出现套接字文件和网络套接字。
套接字文件:mysql 进程启动就会编写mysql.sock(套接字文件),通过此文件与mysqld通信,mysqld会一直监听改文件,只要mysql写入数据,就会把数据拿走,并执行。
网络套接字:mysql进程会先去内核注册端口号,然后在将IP和端口封装好给网卡,在传输到mysqld的网卡,mysqld收到IP,就会在其内核的端口列表中找到对应的端口把数据给mysqld进程发送
网络套接字—程序启动时会去内核中注册端口号----进程监听ip上的端口
5.配置文件中的默认使用选项: allow-query { localhost; };可改为自己想要查询的ip
allow-query { IP地址1;IP地址2;。。。。 }; 指定接受DNS查询请求的客户端
例如:allow-query { 192.168.198.134;192.168.198.100; };只允许这两个地址查询
配置文件里的一个allow-query { 自定义名字; };