DNS域名解析大全

Posted 贪吃小松鼠

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DNS域名解析大全相关的知识,希望对你有一定的参考价值。

一、BIND域名服务基础

1.1 DNS的定义

在这里插入图片描述

1.2 DNS系统的作用

在这里插入图片描述

在这里插入图片描述

1.3 域名结构

在这里插入图片描述

1.3.1 域名结构分析

在这里插入图片描述

  • 根域:处于域名结构的最顶端,一般用一个“ . ” 表示;
  • 顶级域:一般代表一种类型的组织机构或者国家地区,如:
    • .net(网络供应商)
    • .com(工商企业)
    • .org(团体组织)
    • .edu(教育机构)
    • .gov(政府部门)
    • .cn(中国国家域名)
  • 二级域:用来标明顶级域内的一个特定的组织,国家顶级域下面的二级域名由国家网络部门统一管理,顶级域名下面设置的是二级域名,如:
    • .com.cn
    • .net.cn
    • .edu.cn
  • 子域:二级域下所创建的各级域统称为子域,各个组织或用户可以自由申请注册自己的域名;
  • 主机:主机位于域名结构的最下层,就是一台具体的计算机,如:www、mail都是具体的计算机名字,可以用www.baidu.com.cn.来表示,这种方式称为FQDN(完全合格域名),也是这台主机在域名中的全名。

1.4 DNS服务器的类型

1.4.1 主域名服务器

在这里插入图片描述

1.4.1 从域名服务器

在这里插入图片描述

1.4.1 缓存域名服务器

在这里插入图片描述

1.4.1 转发域名服务器

在这里插入图片描述

1.5 DNS解析过程

在这里插入图片描述

二、使用BIND构建域名服务器

2.1 构建域名服务器准备工作

1.BIND (Berkeley Internet Name Daemon)

  • BIND是应用最广泛的DNS服务器程序
  • 官方网站:http://www.isc.org/

2.相关软件包

bind-9.9.4-37.el7.x86_64.rpm
bind-utils-9.9.4-37.el7.x86_64.rpm
bind-libs-9.9.4- -37.el7.x86_64.rpm
bind-chroot-9.9.4-37.el7.x86_64.rpm

3.BIND服务器端程序

  • 主要执行程序:/usr/sbin/named
  • 默认监听端口:53
  • 主配置文件:/etc/named.conf
  • 保存DNS解析记录的数据文件位于:/var/named

4.BIND服务控制

systemctl [status | start | stop | restart] named.service    #查看状态、启动、停止和重启

2.1 构建域名服务器大概步骤

1.安装bind软件包

yum install -y bind					#安装bind程序
> 

2.修改相关配置文件

1)先查看需要修改的配置文件所在路径
	[root@cheng0307 ~]# rpm -qc bind		#查询bind软件配置文件所在的路径
	/etc/named.conf							#主配置文件
	/etc/named.rfc1912.zones				#区域配置文件
	/var/named/named.localhost				#区域数据配置文件

2)修改主配置文件
vim /etc/named.conf
options {
listen-on port 53 { 192,168.80.30; }; #监听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 { any; }; #允许使用本DNS解析服务的网段,也可以any代表所有
----------下面代码省略-----------
zone “.” IN { #正向解析“.”跟区域
type hint; #类型为根区域
file “named.ca”; #区域数据文件为named.ca,记录了13
};
include “/etc/named.rfc1912.zones”; #包含区域配置文件里的所有配置

3)修改区域配置文件,添加正向区域配置
vim /etc/named.rfc1912.zones #配置文件内有模板,可复制粘贴进行修改
zone “baidu.com” IN { #正向解析“baidu.com”区域
type master; #类型为主区域
file “baidu.com.zone”; #指定区域数据文件为baidu.com.zone
allow-update { none; };
};

4)配置正向区域数据文件
cd /var/named/
cp -p named.localhost baidu.com.zone #保留源文件的权限和属主的属性复制
vim baidu.com.zone

<span class="token variable">$TTL</span> <span class="token number">1</span><span class="token variable">D</span>											<span class="token punctuation">#</span><span class="token variable">有效解析记录的生存周期</span>
<span class="token punctuation">@</span>       <span class="token variable">IN</span> <span class="token variable">SOA</span>  <span class="token variable">baidu</span><span class="token punctuation">.</span><span class="token variable">com</span> <span class="token variable">admin</span><span class="token punctuation">.</span><span class="token variable">kgc</span><span class="token punctuation">.</span><span class="token variable">com</span><span class="token punctuation">.</span> <span class="token punctuation">(</span>		<span class="token punctuation">#</span><span class="token variable">“</span><span class="token punctuation">@</span><span class="token variable">”符号表示当前的DNS区域名</span>
         	     <span class="token number">20210427</span>        <span class="token punctuation">;</span> <span class="token variable">serial</span>		<span class="token punctuation">#</span><span class="token variable">更新序列号,可以是</span><span class="token number">10</span><span class="token variable">位数以内的整数</span>
                         <span class="token number">1</span><span class="token variable">D</span>      <span class="token punctuation">;</span> <span class="token variable">refresh</span>		<span class="token punctuation">#</span><span class="token variable">刷新时间,重新下载地址数据的间隔</span>
                         <span class="token number">1</span><span class="token variable">H</span>      <span class="token punctuation">;</span> <span class="token variable">retry</span>		<span class="token punctuation">#</span><span class="token variable">重试延时,下载失败后的重试问题</span>
                         <span class="token number">1</span><span class="token variable">W</span>      <span class="token punctuation">;</span> <span class="token variable">expire</span>		<span class="token punctuation">#</span><span class="token variable">失效时间,超过该时间仍然无法下载则放弃</span>
                         <span class="token number">3</span><span class="token variable">H</span> <span class="token punctuation">)</span>    <span class="token punctuation">;</span> <span class="token variable">minimum</span>		<span class="token punctuation">#</span><span class="token variable">无效解析记录的生存周期</span>
        <span class="token variable">NS</span>      <span class="token variable">baidu</span><span class="token punctuation">.</span><span class="token variable">com</span><span class="token punctuation">.</span>						<span class="token punctuation">#</span><span class="token variable">记录当前区域的DNS服务器名称</span>
        <span class="token variable">A</span>       <span class="token number">192.168</span><span class="token number">.80</span><span class="token number">.30</span>					<span class="token block keyword">#记录主机的IP地址</span>
<span class="token variable">www</span> <span class="token variable">IN</span>  <span class="token variable">A</span>       <span class="token number">192.168</span><span class="token number">.80</span><span class="token number">.40</span>					<span class="token block keyword">#记录正向解析www.baidu.com对应的ip</span>
<span class="token variable">mail</span> <span class="token variable">IN</span> <span class="token variable">A</span>       <span class="token number">192.168</span><span class="token number">.80</span><span class="token number">.50</span>					<span class="token block keyword">#记录正向解析mail.baidu.com对应的ip</span>				
<span class="token variable">ftp</span> <span class="token variable">IN</span>  <span class="token variable">CNAME</span>   <span class="token variable">www</span>								<span class="token punctuation">#</span><span class="token variable">CNAME使用别名,ftp是www的别名</span>
<span class="token punctuation">*</span> <span class="token variable">IN</span>    <span class="token variable">A</span>       <span class="token number">192.168</span><span class="token number">.80</span><span class="token number">.30</span>					<span class="token block keyword">#泛域名解析,“*”代表所有主机名</span>

3.启动服务,关闭防火墙

	systemctl start named					#启动服务
	ystemctl stop firewalld					#关闭防火墙
	etenforce 0								#关闭新安全子系统
- 如果启动失败,可以通过查看日志文件来排除错误
	tail -f /var/log/messages
- 如果服务器卡住,可以执行下面命令进行解决
	rndc-confgen -r /dev/urandom -a 	

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

2.3 实
此篇内容的实验为接着这一篇博客的实验(正反向解析)后面继续操作的

一、配置主从DNS服务器

1.1 配置的大概步骤:

1.修改主域名服务器的区域配置文件,修改正、反向区域配置

	vim /etc/named.rfc1912.zones			#修改区域配置文件
1.正向区域的配置	
	zone "clj.com" IN {
	        type master;					#类型为主区域
	        file "clj.com.zone";
	        allow-update { none; };			#允许从服务器下载正向区域数据,这里添从服务器的IP地址
	};

2.反向区域的配置
zone “80.168.192.in-addr.arpa” IN {
type master; #类型为主区域
file “clj.com.zone.local”;
allow-update { none; }; #允许从服务器下载正向区域数据,这里添从服务器的IP地址
};

2.修改从服务器的主配置文件

options {
        listen-on port 53 { 192.168.80.80; };	#监听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";
        recursing-file  "/var/named/data/named.recursing";
        secroots-file   "/var/named/data/named.secroots";
        allow-query     { any; };				#允许使用本DNS解析服务的网段,也可以用any
...}

3.修改从服务器的区域配置文件,添加正反区域配置

zone "clj.com" IN {			
        type slave;								#指定类型为从区域
        masters { 192.168.80.78  };				#指定主服务器的ip地址
        file "slaves/clj.com.zone";				#下载的区域数据文件保存到slaves目录下
};

zone “80.168.192.in-addr.arpa” IN {
type slave;
masters { 192.168.80.78 };
file “slaves/clj.com.zone.local”;
};

4.主从服务器都需要关闭防火墙,安全防护并且重启服务,并查看区域数据文件是否已下载成功,最后配置临时DNS地址。

systemctl stop firewall			#关闭防火墙
setenforce 0					#关闭安全防护功能
systemctl restart named			#重启服务

主域名服务器:
vim /etc/resolv.conf #修改临时域名ip
nameserver 192.168.80.78 #主域名服务器的ip
nameserver 192.168.80.80 #从域名服务器的ip

从域名服务器:
vim /etc/resolv.conf #修改临时域名ip
nameserver 192.168.80.80 #从域名服务器的ip
nameserver 192.168.80.78 #主域名服务器的ip

5.测试并模拟故障

nslookup www.clj.com			#测试解析域名		
nslookup 192.168.80.100			#测试解析ip
systemctl stop named			#停止named服务
nslookup www.clj.com
nslookup 192.168.80.100

1.2 实验的步骤:

第一步:修改主服务器的区域配置文件,修改正、反向区域配置在这里插入图片描述

2.修改从服务器的主配置文件
在这里插入图片描述
第三步:修改从服务器的区域配置文件
在这里插入图片描述

第四步:从服务器关闭防火墙和安全防护功能,修改临时DNS域名地址,并重启named服务
在这里插入图片描述

第五步:
从服务中查看是否自动生成了区域资源配置文件,并将主服务器的域名ip添加进去
主服务中也添加从服务器的域名ip
在这里插入图片描述

在这里插入图片描述
第六步:进行域名解析测试
在这里插入图片描述

在这里插入图片描述

二、DNS分离解析

1.1 配置的大概步骤:

  • 分离解析的域名服务器实际也是主域名服务器,这里主要是指根据不同的客户端提供不同的域名解析记录。比如来自内网和外网的不同网段地址区域的客户机请求解析同一域名时,为其提供不同的解析结果,得到不同的IP地址。
  • 配置网关服务器搭建DNS分离解析
    在网关服务器搭建DNS分离解析,使局域网主机解析www.benet.com为192.168.80.200,外网主机解析www.benet.com为12.0.0.100。
    1.为网关服务器配置双网卡,并且修改网卡配置
在关机状态下再添加一块网卡,重启系统
ifconfig ens36 12.0.0.1/24
i fconfig
复制并修改网卡配置
cp ifcfg-ens33 ifcfg-ens36
vim /etc/sysconfig/network-script/ifcfg-ens33		#修改
>

2.安装bind软件包

yum install -y bind .

3.修改主配置文件

options {
        listen-on port 53 { any; };	#监听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     { any; };		#允许使用本DNS解析服务的网段,也可以用any

4.修改区域配置文件

注意:一旦启用view,所有的zone必须都在view下,所以要把系统默认的自检用的zone也放在view下或者删除
vim /etc/ named. rfc1912. zones
view "lan" {									#定义内网view,view代表容器分割
	match-clients { 192.168.80.0/24; } ;		#匹配内网网段
	zone "benet. com" IN.{						#设置要解析的区域
		type master;
		file "benet. com. zone. lan";			#数据配置文件
	};
	zone "."IN {								#可将根域配置从主配置文件剪切过来,dd+p
		type hint ;								#hint是根区域类型
		file "named.ca"; .
	};
};
view "wan" {									#定义外网view
	match-clients { any; } ;					#匹配除了内网网段以外的任意地址
	zone "benet. com" IN {
		type master;
		file "benet . com. zone. wan";
	};
};	

5.修改区域数据配置文件

cd /var/ named
cp -p named. localhost benet. com. zone. lan
cp -P named. localhost benet. com. zone. wan 
vim benet. com. zone.lan
$TTL 1D
@	IN SOA benet. com. admin. benet. com. (
								0	; serial
								1D	; refresh
								1H	; retry
								1W	; expire
								3H ); minimum
		NS		benet. com.
		A		192.168.80.10 
www IN	A		192.168.80.10	#内网主机通过解析www.benet.com的地址得到192.168.80.10(想要访问
								域名服务的Apache网页,需要开启httpd服务,解析的ip要和域名服务器一致)

cp -P named. localhost benet. com. zone. wan .
vim benet. com. zone.lan
$TTL 1D
@ IN SOA benet. com. admin. benet. com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ); minimum
NS benet. com.
A 12.0.0.1
www IN A 12.0.0.100 #内网主机通过解析www.benet.com的地址得到192.168.80.100

6.关闭防火墙、安全防护功能,然后启动named服务

systemctl stop firewall			#关闭防火墙
setenforce 0					#关闭安全防护功能
systemctl restart named			#重启服务

7.在内外网客户端的域名解析配置文件中添加DNS服务器地址

echo "nameserver 192.168.80.10" >> /etc/resolv.conf 		#内网客户端
echo "nameserver 192.168.80.10" >> /etc/resolv.conf 		#外网客户端

8.在内外网客户端上测试

nulookip www.clj.com			#解析域名测试
nulookip 192.168.80.10			#解析ip测试

1.2 实验的步骤:

1.为网关服务器配置双网卡
虚拟机中添加另一块网络适配器(网卡)
在这里插入图片描述
2.在自己电脑上(宿主机)中的VMnet1和VMnet2的配置如下:
在这里插入图片描述

3.使用ifconfig进行查看网卡是否配置成功。
在这里插入图片描述
4.修改第一块网卡:
在这里插入图片描述
5.修改第二块网卡:
在这里插入图片描述

6.安装bind软件包
在这里插入图片描述

7.修改主配置文件
在这里插入图片描述

8.修改区域配置文件(一旦启用view,所有的zone必须在view下,可注释或删除多余的!!
在这里插入图片描述

9.修改区域数据配置文件
在这里插入图片描述在这里插入图片描述
10.启动服务、关闭防火墙等,然后进行解析测试。
在这里插入图片描述

11.开启一台win10虚拟机作为外网测试
第一个修改网络连接为nat2
在这里插入图片描述
12.配置好IP和DNS
docker 部署 coredns(内部域名解析)

docker 部署 coredns(内部域名解析)

shell脚本实现批量解析域名IP地址(支持多DNS)

域名如何设置DNS解析

https网络编程——DNS域名解析获取IP地址

https网络编程——DNS域名解析获取IP地址