文章目录

  • 1 域名系统---DNS
    • 1.1 DNS使用的协议及端口号
    • 1.2 DNS系统的分布式数据结构
    • 1.3 DNS系统的作用及类型
    • 1.4 域名解析查询过程
    • 1.5 两种查询方式
  • 2 BIND的安装和配置文件
    • 2.1 BIND的软件包
    • 2.2 BIND主配置文件---named.conf
    • 2.3 修改主要配置文件
    • 2.4 修改区域配置文件,添加正向区域配置
    • 2.5 配置正向区域数据文件
    • 2.6 启动服务,关闭防火墙
    • 2.7 在客户端的域名解析配置文件中添加DNS服务器地址
    • 2.8 测试DNS解析
    • 2.9 正向解析服务器配置实验
    • 2.10 反向解析服务器配置实验
  • 3 使用BIND构建域名服务器
  • 3.1 DNS主从服务器实验

1 域名系统—DNS

DNS 域名系统(Domain Name System 缩写 DNS,Domain Name 被译为域名)是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。

1.1 DNS使用的协议及端口号

DNS 的默认端口为53,DNS 端口分为 TCP 和 UDP

  • TCP是用来做区域传送,多用于主从同步在一个区中主DNS 服务器从自己本机的数据文件中读取该区的 DNS 数据信息,而辅助 DNS 服务器则从区的主 DNS 服务器中读取该区的 DNS 数据信息
  • UDP是用来做DNS解析的
    域名:通常由一个完全合格域名(FQDN)标识。FQDN 全称 Fully Qualified Domain Name,它能准确表示出其相对于 DNS 域树根的位置,也就是节点到 DNS 树根的完整表述方式,从节点到树根采用反向书写,并将每个节点用 “.” 分隔,对于 DNS 域 google 来说,其完全正式域名(FQDN)为 google.com
    例如,google 为 com 域的子域,其表示方法为google.com,而 www 为 google 域中的了域,可以使用 www.google.com. 表示
  • 全域名:同时带有主机名和域名的名称
    注意:最前面的一定是主机,最后一个点表示根域,通常是省略不写的,但实际上

注意:通常,FQDN有严格的命名限制,长度不能超过 256 字节,只允许使用字符 a-z,0-9,A-Z 和减号 (-),点号 (.) 只允许在域名标志之间(例如 “google.com” )或者FQDN的结尾使用。域名不区分大小,由最顶层到下层,可以分成:根域、顶级域、二级域、子域

1.2 DNS系统的分布式数据结构

  • 大型、分布式的互联网DNS解析库
根.根域名DNS服务器:专门负责根域名一级DNS服务器:专门负责一级域名的解析(一般代表一种类型的组织机构或国家地区)
.com(工商企业)
.net(网络供应商)
.edu(教育机构)
.cn(中国国家域名)
.org(团体组织)
gov(政府部门)二级DNS服务器:专门负责二级域名的解析
.net.cn
.edu.cn
.com.cn子域名DNS服务器:专门负责子域名的解析也称为三级域名
ina.com.cn
.pku.edu.cn
主机站点
tts9
tts6
mail
www

1.3 DNS系统的作用及类型

DNS系统的作用

  • 正向解析:根据域名查找对应的 IP 地址
  • 反问解析:根据 IP 地址查找对应的城名(域名的反向解析不是很常用。只在一些特殊场合才会用到,比如如可用于反垃圾邮件的验证。)

DNS系统类型

  • 缓存域名服务器

    • 也称为 DNS 高速缓存服务器,只提供域名解析结果的缓存功能
    • 通过向其他域名服务器查询获得域名->IP地址记录(没有域名数据库)
    • 将域名查询结果缓存到本地,提高重复查询时的速度
  • 主域名服务器
    • 特定 DNS 区域的权威服务器,具有唯一性
    • 负责维护该区域内所有域名->IP 地址的映射记录
    • 需要自行建立所负责区域的地址数据文件
  • 从域名服务器
    • 也称为辅助域名服务器,主域名服务器出现故障、关闭或负载过重时,从域名服务器作为备份服务提供域名解析服务
    • 其维护的域名->IP 地址记录来源于主域名服务器
    • 构建从域名服务器时,需要指定主城名服务器的位置,以便服务器能自动同步区域的地址数据库。
  • 转发域名服务器
    • 负责所有非本地域名的本地查询。
    • 转发域名服务器接到查询请求后,在其缓存中查找;如果找不到就将请求依次转发到指定的域名服务器,直到查找到结果为止,否则返回无法映射的结果。

1.4 域名解析查询过程

(1)先查本机的缓存记录
(2)查询 hosts 文件
(3)查询 dns 主域名服务器,交给 dns 域名服务器处理
以上过程成为递归查询:我要一个答案你直接会给我结果
(4)这个 dns 服务器可能是本地域名服务器,也有个缓存,如果有直接返回结果,如果没有则进行下一步
(5)求助根域服务器,根域服务器返回可能会知道结果的顶级域服务器让他去找顶级域服务器
(6)求助顶级域服务器,顶级域服务器返回可能会知道结果的二级域服务器然他去找二级域服务器
(7)求助二级域服务器,二级域服务器查询发现是我的主机,把查询到的ip地址返回给本地域名服务器
(8)本地域名服务器将结果记录到缓存,然后把域名和ip的对应关系返回给客户端windows系统查询dns缓存命令: ipconfig /displaydnswindows系统清理dns缓存命令: ipconfig /flushdnslinux清dns缓存需要安装nscd软件,启动、执行nscd -i hosts


1.5 两种查询方式

  • 递归查询
    递归查询是一种 DNS 服务器的查询模式,在该模式下 DNS 服务器接收到客户机请求,必须使用一个准确的查询结果回复客户机。如果 DNS 服务器本地没有存储查询 DNS 信息,那么该服务器会询问其他服务器,并将返回的查询结果提交给客户机
    总结:客户机发送请求后自己只用等待结果即可,中间具体过程交给服务器实现
  • 迭代查询
    DNS 服务器另外一种查询方式为迭代查询,当客户机发送查询请求时,DNS 服务器并不直接回复查询结果,而是告诉客户机另一台 DNS 服务器地址,客户机再向这台 DNS 服务器提交请求,依次循环直到返回查询的结果为止
    总结:客户机的请求需要自己挨个去查询才能得到结果,服务器没有结果时候只会给你提供其它服务器的地址,而不会帮你去请求查询,这与递归截然相反

    从递归和迭代查询可以看出
  • 客户端—本地DNS服务器:这部分属于递归查询
  • 本地DNS服务端—外网:这部分属于迭代查询
  • 递归查询时,返回的结果只有两种:查询成功或查询失败
  • 迭代查询又称作重指引,返回的是最佳的查询点或者主机地址。

2 BIND的安装和配置文件

2.1 BIND的软件包

bind-9.9.4-37.el7.x86_64.rpm   //提供了域名服务的主要程序及相关文件
bind-utils-9.9.4-37.el7.x86_64.rpm   //提供了对 DNS 服务器的测试工具程序,如 nslookup 等
bind-libs-9.9.4-37.el7.x86_64.rpm   //提供了 bind、bind-utils 需要使用的库函数
bind-chroot-9.9.4-37.el7.x86_64.rpm   //为 BIND 服务提供一个伪装的根目录(将/var/named/chroot/文件夹 作为 BIND 服务的根目录),以提高安全性默认已安装 bind-utils 和 bind-libs,因此只需要安装 bind 和 bind-chroot 即可

2.2 BIND主配置文件—named.conf

[root@localhost ~]# rpm -qc bind   //查询bind软件配置文件所在路径
/etc/logrotate.d/named   //主配置文件 控制系统全局
/etc/named.rfc1912.zones  //区域配置文件 控制具体单个区域 主要配置文件
/var/named/named.localhost   //区域数据配置文件 区域信息 部分配置文件安装bind软件包
yum install bind -y (必须网络源或光盘挂载) 或rpm -ivh 前提挂载光盘(系统盘ISO镜像)

2.3 修改主要配置文件

vim /etc/named.conf
options {undefined
listen-on port 53 { 192.168.80.10; };  监听53端口,ip地址使用提供服务的本地IP,也可用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";   //内存统计文件的位置
allow-query { 192.168.80.0/24; 172.16.100.0/24; };  //允许使用本DNS解析服务的网段,也可用any代表所有
}zone "." IN {    //正向解析"."根区域
type hint;   //类型为根区域
file "named.ca";   //区域数据文件为named.ca,
记录了13台根域服务器的域名和IP地址等信息
};include "/etc/named. rfc1912. zones";   //包含区域配置文件里的所有配置

2.4 修改区域配置文件,添加正向区域配置

vim /etc/named.rfc1912.zones   //文件里有模版,可复制粘贴后修改
zone "benet.com" IN {   //正向解析"benet.com"区域
type master;   //类型为主区域
file "benet.com.zone";   //指定区域数据文件为benet.com.zone
allow-update { none; };
};

2.5 配置正向区域数据文件

cd /var/ named/
cp -p named.localhost benet.com.zone   //保留源文件的权限和属主的属性复制
vim /var/named/benet.com.zone
$TTL 1D    //有效解析记录的生存周期
@ in SOA benet.com. admin.benet.com. (   //"@"符号表示当前的DNS区域名
0 ; serial   //更新序列号,可以是10位以内的整数
1D ; refresh   //刷新时间,重新下载地址数据的间隔
1H ; retry   //重试延时,下载失败后的重试间隔
1W ; expire   //失效时间,超过该时间仍无法下载则放弃
3H) ; minimum   //无效解析记录的生存周期,
NS benet.com.    //记录当前区域的DNS服务器的名称
A 192.168.80.10   //记录主机IP地址IN MX 10 mail.benet.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   //泛域名解析,"*"代表任意主机名#"@"这里是一个变量,当前DNS区域名
#SOA记录中的更新序列号用于同步主、从服务器的区域数据,当从服务器判断区域更新时,若发现主服务器中的序列号与本地区域数据中的序列号相同,则不会进行下载。"benet.com. "此为完全合格域名(FQDN) ,后面有个"."不能漏掉#“admin.benet.com.”表示管理员邮箱,这里的"@"符号已有其他含义,所以用"."代替
#IN 表示internet

2.6 启动服务,关闭防火墙

systemctl start named
systemctl stop firewalld
setenforce 0#如果服务启动失败,可以查看日志文件来排查错误
tail -f /var/log/messages
#如果服务启动卡住,可以执行下面命令解决
rndc-confgen -r /dev/urandom -a
#对域名语法进行检查(named.conf)
named-checkconf -z /etc/named.conf

2.7 在客户端的域名解析配置文件中添加DNS服务器地址

vim /etc/resolv.conf   //修改完后立即生效
nameserver 192.168.80.10
或
vim /etc/sysconfig/network-scripts/ifcfg-ens33  //修改完后需要重启网卡
DNS1=192.168.80.10
systemctl restart network

2.8 测试DNS解析

host www.benet.com
nslookup www.benet.com
ext file
lenath:11.599 lines:231
Ln:121 Co

2.9 正向解析服务器配置实验

第一步:安装并关闭防火墙

安装主软件和配置包管理软件
[root@localhost ~]# yum  install bind bind-utils -y
关闭防火墙
[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# setenforce 0


第二步:开启服务并查看是否查看成功

[root@localhost ~]# systemctl restart named
[root@localhost ~]# netstat -ntap |grep named


第三步:修改配置文件/etc/named.conf

[root@localhost ~]# rpm -qc bind 查询安装服务的配置文件
[root@localhost ~]# vim /etc/named.conf  进入修改配置文件


第四步:编写域名,在配置文件/etc/named.rfc1912.zones下

[root@localhost named]# vim /etc/named.rfc1912.zones
zone "fyr.com" IN {type master;file "fyr.com.zone";allow-update { none; };
};


第五步:切换至named文件夹,拷贝named.localhost变成根域名文件

[root@localhost ~]# cd /var/named/
[root@localhost named]# ls
[root@localhost named]# cp -p named.localhost fyr.com.zone


第六步:修改成根域名文件

[root@localhost named]# vim fyr.com.zone


第七步:修改网卡的DNS服务地址并重启网卡

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 [root@localhost ~]# rndc reload(也可以实验systemctl restart network)
[root@localhost ~]# cat /etc/resolv.conf //显示当前生效的



第八步:测试

[root@localhost ~]# host www.fyr.com
[root@localhost ~]# host ftp.fyr.com
[root@localhost ~]# host mail.fyr.com

2.10 反向解析服务器配置实验

第一步:安装并关闭防火墙

安装主软件和配置包管理软件
[root@localhost ~]# yum  install bind bind-utils -y
关闭防火墙
[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# setenforce 0


第二步:开启服务并查看是否查看成功

[root@localhost ~]# systemctl restart named
[root@localhost ~]# netstat -ntap |grep named


第三步:修改配置文件/etc/named.conf

[root@localhost ~]# rpm -qc bind 查询安装服务的配置文件
[root@localhost ~]# vim /etc/named.conf  进入修改配置文件


第四步:修改区域配置文件/etc/named.rfc1912.zones

[root@localhost ~]# vim /etc/named.rfc1912.zones
zone "16.168.192.in-addr.arpa" IN {type master;file "fyr.com.zone.local";allow-update { none; };
};


第五步:切换至named文件夹,复制正向解析文件

[root@localhost ~]# cd /var/named/
[root@localhost named]# ls
[root@localhost named]# cp -p fyr.com.zone fyr.com.zone.local


第六步:修改配置文件

[root@localhost named]# vim fyr.com.zone.local
$TTL 1D
@       IN SOA  master.fyr.com admin.fyr.com. (0       ; serial1D      ; refresh1H      ; retry1W      ; expire3H )    ; minimumNS      master.fyr.com.
master  A       192.168.16.16
80      PTR     www.fyr.com.
28      PTR     mail.fyr.com.
16      PTR     ftp.fyr.com.


第七步:修改网卡的DNS服务地址并重启网卡

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 [root@localhost ~]# systemctl restart network(rndc reload也可以重载配置文件)
[root@localhost ~]# cat /etc/resolv.conf //显示当前生效的



第八步:重启服务并测试

[root@localhost named]# host 192.168.16.28
[root@localhost named]# host 192.168.16.80
[root@localhost named]# host 192.168.16.16

3 使用BIND构建域名服务器

  • 构建缓存域名服务器
  • 构建主、从域名服务器

3.1 DNS主从服务器实验

实验环境
主服务器:192.168.16.16
从服务器:192.168.16.18

第一步:安装主从软件和配置包管理软件并关闭防火墙

[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# setenforce 0
[root@localhost ~]# yum install -y bind


第二步:主配置文件/etc/named.conf
配置主服务器192.168.16.16

[root@localhost ~]# vim /etc/named.conf  进入修改配置文件


第三步:修改主域名服务器区域配置文件/etc/named.rfc1912.zones

[root@localhost ~]# vim /etc/named.rfc1912.zones
zone "fyr.com" IN {type master; //类型为主区域file "fyr.com.zone"; 和var下面地址一样allow-transfer { 192.168.16.18; }; //设置从服务器地址
};


第四步:配置正向区域数据文件

[root@localhost ~]# cd /var/named/
[root@localhost named]# cp -p named.localhost fyr.com.zone   //保留源文件的权限和属主的属性复制
[root@localhost named]# vim fyr.com.zone$TTL 1D
@       IN SOA  master admin.fyr.com. (0       ; serial1D      ; refresh1H      ; retry1W      ; expire3H )    ; minimumNS      master
master  A       192.168.16.16
www     A       192.168.16.16
mail    A       192.168.16.28
ftp     A       192.168.16.21


第五步:从配置文件/etc/named.conf
配置从服务器192.168.16.18

[root@localhost ~]# vim /etc/named.conf  进入修改配置文件


第六步:修改从域名服务器区域配置文件/etc/named.rfc1912.zones,添加正、反区域配置

[root@localhost ~]# vim /etc/named.rfc1912.zones
zone "fyr.com" IN {type slave; //类型为从区域file "slaves/fyr.com.zone"; //下载的区域数据文件保存到slaves/目录下masters { 192.168.16.16; }; //设置主服务器地址
};


第七步:从服务器复制

[root@localhost ~]# cd /var/named/
[root@localhost named]# cp -p named.localhost fyr.com.zone


第八步: 主、从重启动服务,并查看区域数据文件是否已下载成功

[root@localhost named]# systemctl restart named
ls -l /var/named/slaves/ 反向解析就必须要有区域文件

第九步:在客户端的域名解析配置文件中添加从DNS服务器地址并测试

[root@localhost named]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
[root@localhost named]# systemctl restart network测试
[root@localhost named]# host www.fyr.com
[root@localhost named]# host mail.fyr.com
[root@localhost named]# host ftp.fyr.com



主服务器的配置

Linux服务篇之DNS域名解析服务相关推荐

  1. RHEL 5服务篇—部署DNS域名解析服务(一)BIND软件

    DNS 系统在网络中的作用就是维护着一个地址数据库,其中记录了各种主机域名与IP地址的对应关系,以便为客户程序提供正向或反向的地址查询服务,即正向解析和反向解析. 正向解析:根据域名查询IP地址,即将 ...

  2. Linux系统安装DNS域名解析服务

    在linux系统下安装DNS域名解析服务 步骤如下: 1>查看挂在镜像位置 2>查看光盘是否挂载 3>查看需要挂在的位置 4>进行挂载 [root@localhost mnt] ...

  3. DNS域名解析服务(正向解析)

    DNS域名解析服务 文章目录 DNS域名解析服务 BIND域名服务基础 DNS系统的作用 DNS的定义: 域名的结构 DNS服务器类型: DNS解析查询方式 BIND软件安装 构建DNS域名解析服务器 ...

  4. DNS域名解析服务的正向和反向解析

    DNS域名解析服务 文章目录 DNS域名解析服务 一.DNS系统的作用 1.域名结构 2.DNS的定义 3.DNS服务器类型 二.构建DNS域名解析服务器步骤 1.关闭防火墙 2.安装bind软件包 ...

  5. 在linux下dns绑定域名,在Linux系统中,使用Bind搭建DNS域名解析服务

    DNS域名解析服务(DomainNameSystem)是用于解析域名与IP地址对应关系的服务作用为维护着一个地址数据库,记录着各种主机域名与IP地址的对应关系,以便为客户提供正向或反向的地址查询服务, ...

  6. linux下DNS配置及域名解析服务,linux DNS域名解析服务

    DNS域名解析服务 (一)Dns软件包安装 Bind:提供域名服务的主要程序及相关文件 Bind-utils:测试dns工具(nslookup.host) Yum仓库安装软件 Yum install ...

  7. Linux网络服务之DNS域名解析服务

    Linux网络服务之DNS域名解析服务 DNS简介 DNS名词介绍 DNS系统的作用 DNS分布式数据结构 DNS系统类型 DNS的查询方式(递归查询和迭代查询) 本地主机映射文件hosts 域名的解 ...

  8. Linux网络 DNS域名解析服务

    目录 1. DNS域名解析服务 (1)DNS系统的作用及类型 (2)缓存域名服务器 (3)DNS系统类型 (4)BIND的安装和配置文件 (1)BIND软件安装 (2)DNS的分布式互联网解析库 (5 ...

  9. 网络服务之----DNS域名解析服务篇

    前言:上一章和拐友们讲了DHCP,这章我们来了解一下DNS,DNS可以使用户更加方便的访问互联网,而不用再去记住能够被机器直接读取的IP数串,简单来说就是将域名转换为IP地址(或者将IP地址转换为相应 ...

  10. 运维之DNS域名解析服务基础概念与Bind9安装

    ​0x00 前言简述 基础概念 基础术语 记录类型 0x01 DNS服务介绍 原理流程 实验目标 0x02 DNS服务之Bind9 Ubuntu 安装 CentOS 安装 Docker 容器 1) 源 ...

最新文章

  1. 《Programming WPF》翻译 第8章 6.我们进行到哪里了?
  2. thinkphp5 两个控制器传参数_thinkphp5控制器向+vue的data里传值
  3. wxWidgets:网格控件 wxWidgets 示例
  4. OpenGL之控制渲染图形的移动
  5. 日常使用Git,这些问题你遇到过吗?
  6. 一张图看懂华为计算全联接2020
  7. 阿联酋esma认证怎么做_行业视野 | 关于阿联酋eCall 的要求更新
  8. c#扩展方法的理解(二:接口)
  9. 绝了!一个 rm -rf 把公司整个数据库删没了
  10. 微信小程序Wepy框架的三个事件交互($broadcast,$emit,$invoke)
  11. 数据分析师mysql基础_数据分析师之mysql入门——数据检索
  12. 利用socket实现java程序自动关闭
  13. Tomcat报错 严重: A child container failed during start
  14. hao123站长李兴平的成功史
  15. Apple三里屯景泰蓝壁纸(mac版)
  16. 运动世界校园显示服务器开小差,你的跑步成绩无效,是否申请成绩异常?
  17. 安装vs2013出现此预许可证已过期--解决办法
  18. 优维科技EasyOps6.0升级发布会,全程高能回顾
  19. PaddleOCR .NET 识别图片中文字
  20. go work 工作区

热门文章

  1. react + antd table +hooks 如何实现表格序号自增 翻页后序号不从1开始算起
  2. 2018最新版省市区三级联动数据
  3. 解决浏览器打开就是被篡改的桔梗网界面
  4. Android 图片加载框架Glide主流程源码分析
  5. BMVC 2021 | 近距离观察少镜头视频分类
  6. CRC校验(模型、手算、程序编写)
  7. 血氧仪方案指夹式TFT指尖心率监测脉搏
  8. 脊柱外科患者资料管理系统
  9. 解决allegro 中OUT OF DATE SHAPES问题
  10. 软件开发的里程碑简单概念