Linux网络服务—DNS

发布时间:2022-07-03 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了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名词介绍

@H_376_126@ 域名管理系统DNS(Domain Name System)是域名解析服务器的意思,应用层协议,是互联网的一项服务。它在互联网的作用是F1a;把域名转换成网络可以识别的ip地址,在通过IP地址访问主机。 种由文字组成的名称,显而易见要更容易记忆。 实际上,每一台 DNS 服务器都只负责管理一个有限范围(一个或几个域)内的主机域 名和 IP 地址的对应关系,这些特定的 DNS 域或 IP 地址段称为 zone(区域)。根据地址解析的方向不同,DNS 区域相应地分为正向区域(包含域名到 IP 地址的解析记录)和反向区 域(包含 IP 地址到域名的解析记录)。

1.2 DNS系统的作用

正向解析:根据域名查找对应的IP地址

反向解析:根据IP地址查找对应的域名

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

Linux网络服务—DNS

ipv4的根名称服务器:全球共13个负责解析根域的DNS服务器,美国10个英国1,瑞典1,日本1

IPv6的根名称服务器:全球共25个,中国1主3从,美国1主2从

1.3 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.3DNS系统类型

**缓存域名服务器:**只提供域名解析结果的缓存功能,目的在于提高查询速度和效率,

但是没有自己控制的区域地址数据。构建缓存域名服务器时,必须设置根域或指定

其他 DNS 服务器作为解析来源。

**主域名服务器:**管理和维护所负责解析的域内解析库的服务器

从域名服务器:

从主服务器或从服务器"复制"(区域传输)解析库副本

序列号:解析库版本号,主服务器解析库变化时,其序列递增

刷新时间间隔:从服务器从主服务器请求同步解析的时间间隔

重试时间间隔:从服务器请求同步失败时,再次尝试时间间隔

过期时长:从服务器联系不到主服务器时,多久后停止服务

通知机制:主服务器解析库发生变化时,会主动通知从服务器

1.4本地名称解析配置文件

	Linux: /etc/hosts

	windows : c/windows/system32/drivers/etc/hosts

Linux网络服务—DNS

	[root@localhost ~]#vim /etc/nsswITch.conf
	#修改dns的优先级
	hosts:      files dns myhostname
	#修改 files和 dns的先后  优先级就不同。如果files在前面,那么file优先级就比较高

Linux网络服务—DNS

Linux网络服务—DNS

Linux网络服务—DNS

Linux网络服务—DNS

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

SOA:Start Of Authority,起始授权记录;一个区域解析库有且仅能有一个SOA记录,必须位于解

析库的第一条记录SOA,是起始授权机构记录,说明了在众多 NS 记录里哪一台才是主要的服务器。在任何DNS记录文件中,都是以SOA ( Startof Authority )记录开始。SOA资源记录表明此DNS名称服务器是该DNS域中数据信息的最佳来源。

Ainternet Address):作用,域名解析成IP地址

AAAA(FQDN): --> Ipv6

PTR(PoinTeR):反向解析,ip地址解析成域名

NS(Name Server):专用于标明当前区域的DNS服务器,服务器类型为域名服务器

CNAMEcanonical Name,别名记录

**MX(;mail eXchanger)**邮件交换器

TXT:对域名进行标识和说明的一种方式,一般做验证记录时会使用此项,如:SPF(反垃圾

件)记录,https验证等

SOA记录与NS记录的区别:NS记录表示域名服务器记录,用来指定该域名由哪个DNS服务器来进行解析;SOA记录设置一些数据版本和更新以及过期时间等信息。

1.1.1 SOA记录

name: 当前区域的名字,例如"kgc.com."

value: 有多部分组成

注意:

@H_496_406@
  • 当前区域的主DNS服务器的正向解析,也可以使用当前区域的名字

  • 当前区域管理员的邮箱地址;但地址中不能使用@符号,一般用.替换

  • 例如:admin.kgc.com

    1. 主从服务区域传输相关定义以及否定的答案的统一TTL

    范例:

    $TTL 1D
    @       IN SOA  master.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.

    注意:

    1. 相邻的两个资源记录的name相同时,后续的可省略

    2. 对NS记录而言,任何一个ns记录后面的服务器名字,都应该在后续有一个A记录

    3. 一个区域可以有多个NS记录

    范例

    master IN NS ttt.com.
    
    master IN NS ttt.com.
    

    1.1.3 MX记录

    name: 当前区域的名字

    value: 当前区域的某邮件服务器(smtp服务器)的主机名

    注意:

    1. 一个区域内,MX记录可有多个;但每个记录的value之前应该有一个数字(0-99),表示此服务器的

    优先级;数字越小优先级越高

    1. 对MX记录而言,任何一个MX记录后面的服务器名字,都应该在后续有一个A记录

    范例:

    mail  IN MX 10 mx1.ttt.org.
          IN MX 20 mx2.ttt.org.
    mx1 A   192.168.91.10
    mx2 A   192.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. IN   A 3.3.3.3
    www.ttt.com. IN   A 4.4.4.4
    * IN A 5.5.5.5
    #代表泛域名
    @   IN   A 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: 真正名字的FQDN
    
    ftp.ttt.com.  IN CNAME www.ttt.com
    
    #固定格式
    name    [TTL]       IN              rr_tyPE         value
            缓存时间     internet记录     区域解析库        值
    
    
    $TTL 1D
    @       IN SOA  master.ttt.com. admin.ttt.com. (
                                            0       ; serial
                                            1D      ; refresh
                                            1H      ; retry
                                            1W      ; expire
                                            3H )    ; minimum
            NS      master.ttt.com.
    master  A       192.168.187.150
    www     A       192.168.187.151
    db      A       192.168.187.152
    IN      MX 10   mail.ttt.com.
    mail    A       192.168.187.10
    ftp     CNAME   www
    
    
    
    $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               #泛域名解析,“*"代表任意主机名
    

    注意:

    1. TTL可从全局继承

    2. 使用 “@” 符号可用于引用当前区域的域名

    3. 同一个名字可以通过多条记录定义多个不同的值;此时DNS服务器会以轮询方式响应

    4. 同一个值也可能有多个不同的定义名字;通过多个不同的名字指向同一个值进行定义;此仅表示通

    过多个不同的名字可以找到同一个主机

    1.2 正向解析安装配置方法

    	[root@localhost ~]#yum  install bind bind-utils -y
    	#主软件 和 配置包管理软件
    

    Linux网络服务—DNS

    	[root@localhost ~]#systemctl stop firewalld.service
    	[root@localhost ~]#setenforce 0
    	[root@localhost ~]#systemctl start named
    	#开启服务
    

    Linux网络服务—DNS

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

    Linux网络服务—DNS

    	[root@localhost ~]#vim /etc/sysconfig/network-scripts/ifcfg-ens33 
    
    	DNS1=127.0.0.1
    

    Linux网络服务—DNS

    	[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
    

    Linux网络服务—DNS

    	[root@localhost ~]#vim /etc/named.conf 
    	#可以修改配置,注释,或者删除这两行
    	listen-on port 53 { any; };
    	allow-query     { any; };
    

    Linux网络服务—DNS

    	[root@localhost ~]#rndc reload
    	#重新加载DNS服务
    	server reload successful
    

    Linux网络服务—DNS

    	[root@localhost named]#vim /etc/named.rfc1912.zones 
    	#编写域名
    	zone "ttt.com" {
    	   type master;
    	  file "ttt.com.zone";
    	};
    

    Linux网络服务—DNS

    	[root@localhost named]#cd /var/named/
    	#切换目录
    	[root@localhost named]#ls
    	data  dynamic  named.ca  named.empty  named.localhost  named.loopback  slaves
    	[root@localhost named]#cp named.localhost ./ttt.com.zone -p
    	#保留权限复制
    	[root@localhost named]#ls
    	data  dynamic  kgc.com.zone  named.ca  named.empty  named.localhost  named.loopback  slaves
    	[root@localhost named]#vim ttt.com.zone
    	#编辑数据库文件,解析记录对应关系
    	$TTL 1D
    	@       IN SOA  master. admin.ttt.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      master
    	master  A       192.168.187.150
    	www     A       192.168.91.151
    

    Linux网络服务—DNS

    Linux网络服务—DNS

    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
    

    Linux网络服务—DNS

    Linux网络服务—DNS

    Linux网络服务—DNS

    2.反向解析

    	[root@localhost named]#vim /etc/named.rfc1912.zones 
    	#先修改区域配置文件
    	zone "91.168.192.in-addr.arpa" IN {
        type master;
        file "ky15.com.zone";
    	};
    

    Linux网络服务—DNS

    	[root@localhost named]#cp -p named.localhost ttt.com.zone
    	#复制正向解析文件
    	[root@localhost named]#vim ky15.com.zone  
    	#编辑文件
    	TTL 1D
    	@       IN SOA  master admin.ttt.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS              master
    	master   A      192.168.187.150
    	100 IN  PTR      www.ttt.com.
    	88   IN  PTR      ftp.ttt.com.
    

    Linux网络服务—DNS

    3.主从复制

    实验环境:

    主服务器地址:192.168.91.100

    从服务器地址:192.168.91.103

    3.1 主服务器的配置

    3.1.1 关闭主服务器的防火墙和selinux

    	systemctl stop firewalld.service
    	setenforce 0
    

    Linux网络服务—DNS

    3.1.2 安装bind bind-utils.x86_64

    	yum -y install bind bind-utils.x86_64
    

    Linux网络服务—DNS

    3.1.3 修改配置文件

    	vim /etc/named.conf
    

    Linux网络服务—DNS

    Linux网络服务—DNS

    	vim /etc/named.rfc1912.zones
    

    Linux网络服务—DNS

    Linux网络服务—DNS

    	[root@localhost ~]# cd /var/named/
    	[root@localhost named]# ls
    	data     named.ca     named.localhost  slaves  dynamic  named.empty  named.loopback
    	[root@localhost named]# cp -p named.localhost ttt.com.zone
    	[root@localhost named]# vim ttt.com.zone
    

    Linux网络服务—DNS

    Linux网络服务—DNS

    3.1.4 启动服务

    	systemctl start named    启动服务
    	
    	注
    	如果发生错误就
    	systemctl status named  #查看一下错在哪,修改配置文件
    

    Linux网络服务—DNS

    这个时候主就搭好了,下面来搭从服务器

    3.2 从服务器的配置

    3.2.1 关闭主服务器的防火墙和selinux

    	systemctl stop firewalld.service
    	setenforce 0
    

    Linux网络服务—DNS

    3.2.2 安装bind bind-utils.x86_64

    	yum -y install bind bind-utils.x86_64
    

    Linux网络服务—DNS

    3.2.3 修改配置文件

    	vim /ect/named.conf
    

    Linux网络服务—DNS

    	 vim /etc/named.rfc1912.zones 
    

    Linux网络服务—DNS

    3.2.4 启动服务

    	systemctl start named
    
    	注
    	如果发生错误就
    	systemctl status named  #查看一下错在哪,修改配置文件
    

    Linux网络服务—DNS

    3.2.5 验证操作

    	ls /var/named/slaves
    	ttt.com.zone
    

    Linux网络服务—DNS

    	dig www.ttt.com @192.168.187.160
    	解析命令      域名       @你的dns服务器地址
    

    Linux网络服务—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
    

    Linux网络服务—DNS

    4.2 安装bind bind-utils.x86_64

    	yum -y install bind bind-utils.x86_64 
    

    Linux网络服务—DNS

    4.3 网卡设置

    给linux服务器添加一块网卡,两块网卡都设置为仅主机

    Linux网络服务—DNS

    	cd /etc/sysconfig/network-scripts
    	vim ifCFg-ens33   #先修改ens33的网卡
    

    Linux网络服务—DNS

    	先ifconfig查看一下自己第二块网卡的名字我的是ens37
    

    Linux网络服务—DNS

    	cp ifcfg-ens33 ifcfg-ens37
    	vim ifcfg-ens37
    

    Linux网络服务—DNS

    Linux网络服务—DNS

    	systemctl restart network  #重启网卡
    

    Linux网络服务—DNS

    4.4 两台windows设置

    一台win7 和 一台win10 都设置为仅主机模式

    win7作为外网 ipv4手动改为:12.0.0.12 255.0.0.0

    Linux网络服务—DNS

    win10作为内网:192.168.100.100

    Linux网络服务—DNS

    4.5 更改配置文件

    	vim /etc/named.conf
    

    Linux网络服务—DNS

    	vim /etc/named.rfc1912.zone
    

    Linux网络服务—DNS

    	cd /var/named
    	cp -p named.localhost ttt.com.lan
    	 vim ttt.com.lan
    

    Linux网络服务—DNS

    	cp -p ttt.com.lan ttt.com.wan
    

    Linux网络服务—DNS

    vim ttt.com.wan
    

    Linux网络服务—DNS

    	systemctl start named
    
    	注
    	如果发生错误就
    	systemctl status named  #查看一下错在哪,修改配置文件
    

    Linux网络服务—DNS

    4.6 验证操作

    nslookup www.ttt.com

    Linux网络服务—DNS

    脚本宝典总结

    以上是脚本宝典为你收集整理的Linux网络服务—DNS全部内容,希望文章能够帮你解决Linux网络服务—DNS所遇到的问题。

    如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

    本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
    如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。