目录
① 安装bind软件:yum install bind bind-utils -y
② 修改网卡dns配置: vim /etc/sysconfig/network-scripts/ifcfg-ens33
④ 修改区域配置文件:vim /etc/named.rfc1912.zones
目录
① 安装bind软件:yum install bind bind-utils -y
② 修改网卡dns配置: vim /etc/sysconfig/network-scripts/ifcfg-ens33
④ 修改区域配置文件:vim /etc/named.rfc1912.zones
① 主服务器配置区域配置文件:vim /etc/named.rfc1912.zones
② 从服务器网卡的DNS配置:vim /etc/sysconfig/network-scripts/ifcfg-ens33
③ 从服务器修改bind软件的主配置文件:vim /etc/named.conf
④ 从服务器修改区域配置文件:vim /etc/named.rfc1912.zones
⑤ 启动bind服务:systemctl start named
一. DNS介绍
1. 什么是DNS域名解析
生活中所看到的www.baidu.com,www.jd.com,这些都是域名,方便人类记忆。这些域名实际代表的还是ip地址,计算机内输入域名后,会由dns服务器将域名解析成ip地址,然后完成通信。
DNS:Domain Name System 域名系统,应用层协议,是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。
服务器端:53/udp, 53/tcp实际上,每一台 DNS 服务器都只负责管理一个有限范围(一个或几个域)内的主机域 名和 IP 地址的对应关系,这些特定的 DNS 域或 IP 地址段称为 zone(区域)。
本机名称解析配置文件:host
host文件解析优先级最高。解析域名时会先从host文件数据库中查找。
2. 域名管理
① 域名管理类别:
分散式管理:每个机器都有host文件,不方便管理
集中式管理:集中在一台服务器上,压力太大
分布式管理:一级管一级
② 分布式管理原理:
以www.baidu.com.为例,百度的完整域名是www.baidu.com. ,最后的点是根域
. :根域:由根. 根域名DNS服务器解析。
全球根服务器节点只有13个,10个在美国,1个在荷兰,1个瑞典,1个日本。
.com:一级域名。由一级DNS服务器解析(一般代表一种类型的组织机构或国家地区)
.baidu:二级域名:由二级DNS服务器负责解析。
www:主机名。前面没有. ,如果前面有“ . ”,那就是三级域名。一般表示功能,比如邮箱:mail,博客:blog等
二. 域名查询及原理
1.查询方式
①. 递归查询:
查询请求发出后,直接能从查询目标处获得结果,为了查询结果只需要发起一次查询。
一般客户机和本地DNS服务器之间属于递归查询
②. 迭代查询:
查询请求发出后,无法直接获得结果,需要向下一个服务器再次发起查询,查询发起的源不变,但是查询的目标不断变化,一般需要发起多次查询。
一般情况下(有例外)本地的DNS服务器向其它DNS服务器的查询属于迭代查询
图示:
2. 查询过程原理
以访问www.baidu.com为例
先看hosts文件,
没有就去找dns缓存服务器:有就直接回复,
没有会去问根服务器,根服务器只能解析主机名+ . 的域名,根服务器是迭代查询,透露消息让你去找com(一级域服务器) 主机名+根域名
在一级域com服务器,com服务器只能解析主机名+.com.
一级域服务器也是迭代查询,让你去找二级域服务器 主机名+一级域名+根域名
找到二级域服务器后,迭代查询。www.baidu.com在我管理范围内。 直接告诉dns缓存服务器。迭代查询完成。 主机名(www).二级域名(baidu).一级域(com).根域
dns缓存服务器告诉我们的客户端,dns解析服务器会缓存结果,递归查询完成。
3. DNS的作用
①. 正向解析:根据域名查找对应的ip地址
②. 反向解析:根据ip地址查找对应的域名
③. DNS系统的分布式数据结构
4. DNS系统类型
① 缓存服务器
只提供域名解析结果的缓存功能,目的在于提高查询速度和效率,但是没有自己控制的区域地址数据。
② 主域名服务器
特定NDS区域的权威服务器,具有唯一性。
负责维护该区域内所有域名-->ip地址的映射记录
需要自行建立所负责区域的地址数据文件
③ 从域名服务器
辅助域名服务器,是对主域名服务器的热备份
其维护的域名-->ip地址记录来源于主域名服务器
需要从主域名服务器自动同步区域地址数据库
三. DNS软件工具bind使用及实验
1. bind及其配置文件概述
监听端口 | 53 | |
执行程序(服务名称) | named | |
主配置文件 | /etc/named.conf | |
区域配置文件 | /etc/named.rfc1912.zones | 管理域名 |
数据库文件 | /var/named/kcg.com.zone | 需要注意此文件的权限(需要可执行) |
弄完后会自动生成一个用户叫named |
2. 正向解析实验
① 安装bind软件:yum install bind bind-utils -y
② 修改网卡dns配置: vim /etc/sysconfig/network-scripts/ifcfg-ens33
③ 修改主配置文件:vim /etc/named.conf
④ 修改区域配置文件:vim /etc/named.rfc1912.zones
进去后,复制五行配置模板,然后按下方要求修改文件名
⑤ 配置数据库文件
⑥.数据库文件内参数解析,如果已知这部分,可直接跳到步骤⑦
TTL:缓存时间
IN:internet记录
SOA:描述数据库的相关信息和主从记录。所有dns数据库必须以SOA为起始记录。
@:用于引用当前区域的域名
rname.invalid:邮箱地址,格式可参考步骤⑦
0;serial | 是否有更新,版本号 |
1D;refresh | 刷新时间,拉取时间 |
1H;retry | 重新尝试时间。即失败后一小时后再试一次 |
1W;expire | 过期时间,老是拉取不了,1周以后过期 |
3H );minimum | 老是去查错误的解析地址,3小时内的缓存下,用户再查直接返回找不到 |
NS记录:
类型 | 含义 | 范例 |
A | 正向解析 | www A 172.16.234.20 |
PTR | 反向解析 | 20.234.16.172 PTR www |
CNAME | 别名记录 | ftp cname www ftp和www含义一样 |
MX | 邮箱 | mx1 A 172.16.234.10 |
两种特殊的主机符号:
⑦ 正向解析具体配置
⑧ 重载配置
rndc reload 或者用systemctl restart named也可以
⑨ 验证DNS正向解析是否设置成功
systemctl restart network #重启网络服务
cat /etc/resolv.conf #验证DNS服务器是否生效
#结果显示nameserver 172.16.234.20
host www.mz.com #解析www.mz.com这个域名
#结果显示www.mz.com has address 172.16.234.30
#解析成功
10. 可能出现的错误
若是服务起不来,检查一下防火墙是否关闭了,没有的话使用下面两个命令
systemctl stop firewalld
setenforce 0
3. 主从服务器同步
同步的方式:从主动去找主,主主动推给从
实验前准备:
主服务器:172.16.234.20
从服务器:172.16.234.10
主服务器按照上面正向解析实验配置好即可
从服务器上安装好bind软件
两台服务器防火墙等关闭:
systemctl stop firewalld
setenforce 0
① 主服务器配置区域配置文件:vim /etc/named.rfc1912.zones
配置好后重载配置文件:rndc reload
② 从服务器网卡的DNS配置:vim /etc/sysconfig/network-scripts/ifcfg-ens33
配置完后可以cat /etc/resolv.conf ,查看DNS配置是否生效
③ 从服务器修改bind软件的主配置文件:vim /etc/named.conf
④ 从服务器修改区域配置文件:vim /etc/named.rfc1912.zones
⑤ 启动bind服务:systemctl start named
⑥ 验证:ls /var/named/slaves
启动服务后,slaves文件夹下会自动生成从服务器的数据库文件,是从主服务器同步过来的。如果服务没启动或配置有问题,则不会同步,也就没有这个数据库文件。
最后也可以用dig命令再验证一下:dig www.mz.com @172.16.234.10