linux中DNS域名解析服务

  • Post author:
  • Post category:linux



目录


一、DNS


1、DNS简介


2、DNS系统的分布式数据结构


2.1 域名结构解析(简版)


2.2 域名结构解析(详细)


3、DNS系统的作用


4、DNS完整过程


5、查询方式


6、打开一个网页中间过程


7、DNS系统类型


7.1 缓存域名服务器


7.2 主域名服务器


7.3 从域名服务器


二、DNS软件bind


三、本地解析配置文件——hosts


四、正向解析


1、用命令去仓库里看有哪些bind没有装


2、安装bind相关软件包


可以查看bind的配置文件列表


3、关闭防火墙和临时关闭selinux防火墙,开启服务


4、查看53端口是否开启


5、去修改网卡的dns指向自己搭建的dns服务器 ip地址


6、重启服务


7、修改主配置文件


8、重新加载服务


9、 编辑域名区域


10、切换到区域数据文件所在目录,将模板文件复制保留权限,并命名为刚才在区域配置文件中设置的文件名


11、编辑数据库文件,解析记录对应关系


12、测试


五、反向解析


1、修改区域配置文件


2、切换到区域数据文件所在目录,将反向模板文件复制保留权限,并命名为刚才在区域配置文件中设置的文件名


3、编辑数据库文件,解析记录对应关系


4、重新加载服务


5、测试


六、主从复制


1、关闭防火墙和selinux防火墙


2、 安装bind相关软件包


3、修改主配置文件


4、编辑域名区域


5、开启bind服务


6、此时进入/var/named/slaves/目录下可以看到出现了刚才设置的文件(加密的文件)


7、在主服务器中设置网卡信息,将从服务器地址加入


8、重启服务,并查看是否生效


9、在从服务器中也要编写网卡信息,将主服务器的ip加入


10、测试,将主服务器中的服务关闭,依旧能解析



一、DNS


1、DNS简介

DNS(Domain Name Systern) 域名系统,应用层协议,是互联网的一项服务,是将域名转换成网络可以识别的IP地址,再通过IP地址访问主机。这种由文字组成的名称,显而易见更容易记忆

它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网,基于C/S架构服务器端:53/udp, 53/tcp。实际上,每一台DNS服务器都只负责管理一个有限范围(一个或几个域)内的主机域名和IP地址的对应关系,这些特定的DNS域或IP地址段称为zone(区域〉。根据地址解析的方向不同,DNS区域相应地分为正向区域(包含域名到IP地址的解析记录)和反向区域(包含IP地址到域名的解析记录)。

简单来说DNS服务是ip地址与域名一一对应的解析服务。


2、DNS系统的分布式数据结构


2.1 域名结构解析(简版)

  • 根域:一般用”.”表示,可省略不写
  • 一级(顶级)DNS服务器:专门负责一级域名的解析(一般代表一种类型的组织机构或国家地区)
  • 二级DNS服务器:专门负责二级域名的解析
  • 子域名(三级域名)DNS服务器:专门负责子域名的解析

例如:http://www   .baidu.com.  cn.    /


http://主机名.子域.二级域.顶级域

根域/


2.2 域名结构解析(详细)


大型、分布式的互联网DNS解析库

(1)


根.根域名


DNS服务器:专门负责根域名;处于域名结构的最顶端,一般用一个“ . ” 表示;

(2)


顶级域(一级)


DNS服务器:专门负责一级域名的解析(一般代表一种类型的组织机构或国家地区)

  • .com(工商企业)
  • .net(网络供应商)
  • .org(团体组织)
  • .edu(教育机构)
  • .gov(政府部门)
  • .cn(中国国家域名)
  • . jp  (日本)
  • . hk (香港)
  • .uk (英国)

(3)


二级域


:用来标明顶级域内的一个特定的组织,国家顶级域下面的二级域名由国家网络部门统一管理,顶级域名下面设置的是二级域名,如:

  • .com.cn
  • .net.cn
  • .edu.cn

(4)


子域


:二级域下所创建的各级域统称为子域,各个组织或用户可以自由申请注册自己的域名;

(5)


主机


:主机位于域名结构的最下层,就是一台具体的计算机,如:www、mail都是具体的计算机名字,可以用www.baidu.com.cn.来表示,这种方式称为FQDN(完全合格域名),也是这台主机在域名中的全名


3、DNS系统的作用

  • 正向解析:根据域名查找对应的IP地址
  • 反向解析:根据IP地址查找对应的域名
  • DNS系统的分布式数据结构


4、DNS完整过程


当用户输入www.baidu.com 去访问网页



第一步


:先看你本机的hosts文件,如果有直接访问,没有会先去找缓存服务器(电信运营商)



第二步


:缓存服务器,先看缓存,缓存有,直接反馈结果给用户,缓存没有,直接去找根



第三步


:根只知道自己下一级的服务位置,不会反馈给你直接结果,会透露有一个信息有可能顶级域知道,让你去找顶级域(一级域)试试看。



第四步


:缓存服务器会再去找顶级域(一级域)服务器



第五步


:顶级也不知道,不会反馈给你直接结果,会透露有一个信息,有可能二级域知道,让你去找二级域试试看。



第六步


:缓存服务器收到这个消息,会再去找二级域,二级域知道会反馈结果给缓存服务器



第七步


:缓存服务器收到结果会直接交给用户


5、查询方式

  • 迭代:不给你结果,只给你相关信息 (需要自己动手)
  • 递归:直接反馈给你结果  (不需要自己动手)


6、打开一个网页中间过程

输入www.baidu.com  打开网页中间经历了那些过程?

  • 三次握手
  • 四次挥手
  • dns解析过程
  • http
  1. 域名解析(看一下浏览器要和哪个服务器的哪个接口建立连接)
  2. 浏览器与域名地址建立TCP连接,三次握手
  3. http访问
  4. 断开TCP连接,四次挥手


7、DNS系统类型



7.1 缓存域名服务器


  • 也称为DNS高速缓存服务器
  • 通过向其他域名服务器查询获得域名–>IP地址记录
  • 将域名查询结果缓存到本地,提高重复查询时的速度


7.2 主域名服务器

  • 特定DNS区域的权威服务器,具有唯一性
  • 负责维护该区域内所有域名–>IP地址的映射记录
  • 需要自行建立所负责区域的地址数据文件


7.3 从域名服务器

  • 也称为辅助域名服务器,是对主域名服务器的热备份
  • 其维护的域名–>IP地址记录来源于主域名服务器
  • 需要从主域名服务器自动同步区域地址数据库


二、DNS软件bind

DNS服务器软件:bind,powerdns,dnsmasq,unbound,coredns

  • bind:服务器
  • bind-libs:相关库
  • bind-utils: 客户端
  • bind-chroot: 安全包,将dns相关文件放至 /var/named/chroot/


三、本地解析配置文件——hosts


文件位置

  • Linux hosts文件位置:/etc/hosts
  • windows hosts文件位置 : c/windows/system32/drivers/etc/hosts



编辑host文件


四、正向解析


1、用命令去仓库里看有哪些bind没有装

[root@localhost ~]# yum list bind*


2、安装bind相关软件包


可以查看bind的配置文件列表



扩:

  • 主配置文件 :  /etc/named.conf
  • 域名区域 :  /etc/named.rfc1912.zones (想解析的域名卸载这个文件中)
  • 数据库文件  text  记录 ip地址和域名对应关系     /var/named/某某文件(你自定义的)
  • 为什么大家都知道根,写进了配置文件   /var/named/named.ca  这个文件存了地址
  • bind它的服务名是named


3、关闭防火墙和

临时关闭

selinux防火墙,开启服务


4、查看53端口是否开启


5、去修改网卡的dns指向自己搭建的dns服务器 ip地址


6、重启服务


7、修改主配置文件


8、重新加载服务


9、 编辑域名区域


10、切换到区域数据文件所在目录,将模板文件复制保留权限,并命名为刚才在区域配置文件中设置的文件名



11、编辑数据库文件,解析记录对应关系


12、测试


五、反向解析


1、修改区域配置文件


2、切换到区域数据文件所在目录,将反向模板文件复制保留权限,并命名为刚才在区域配置文件中设置的文件名


3、编辑数据库文件,解析记录对应关系


4、重新加载服务


5、测试


六、主从复制

实验环境:

主服务器地址:192.168.157.50

从服务器地址:192.168.157.10


1、关闭防火墙和selinux防火墙


2、 安装bind相关软件包



3、修改主配置文件


4、编辑域名区域


5、开启bind服务



6、此时进入/var/named/slaves/目录下可以看到出现了刚才设置的文件(加密的文件)


7、在主服务器中设置网卡信息,将从服务器地址加入


8、重启服务,并查看是否生效


9、在从服务器中也要编写网卡信息,将主服务器的ip加入


10、测试,将主服务器中的服务关闭,依旧能解析



版权声明:本文为abjava1原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。