Linux系统DNS bind的配置

1.BInd和DNS

BInd:

Bind是Berkeley Internet Name Domain Service的简写,它是一款实现DNS服务器的开放源码软件。Bind原本是美国DARPA资助伯克利大学(Berkeley)开设的一个研究生课题,后来经过多年的变化发展,已经成为世界上使用最为广泛的DNS服务器软件,目前Internet上半数以上的DNS服务器有都是用Bind来架设的。(53端口)

DNS:

DNS(Domain Name System)是一个层次化、分布式域名系统,为接入互联网的设备提供服务。它关联域名到ip上,提供将域名转化为ip的服务。

2.bind 的安装(虚拟机上进行实验操作,需要先把真实主机做成路由器)

			yum insatll bind -y 	用配好yum源的主机,直接安装bind及其依赖性

Linux系统DNS bind的配置_第1张图片

开启named服务(第一次开启服务会有卡顿,卡顿是在生成加密字符,需要另开shell敲击字符或移动鼠标)

		systemctl start named
		systemctl status named

Linux系统DNS bind的配置_第2张图片
主配置文件的修改

	vim /etc/named.conf

	18 options {
	19         listen-on port 53 { any; };
	20         listen-on-v6 port 53 { ::1; };
	21         directory       "/var/named";
	22         dump-file       "/var/named/data/cache_dump.db";
	23         statistics-file "/var/named/data/named_stats.txt";
	24         memstatistics-file "/var/named/data/named_mem_stats.txt";
	25         allow-query     { any; };
	26         forwarders      { 114.114.114.114; };
	27 
	28         /* 
	29          - If you are building an AUTHORITATIVE DNS server, do NOT enable re    cursion.

Linux系统DNS bind的配置_第3张图片

	41	dnssec-validation no;				将yes改为no

###########################################
DNS 的正向解析

	 vim /etc/named.rfc1912.zones		编辑配置文件

     zone " westos.com" IN {				westos.com 为任意域名
				type master;				类型为主域名服务器
				file ' westos.com.zone';	本地正向解析的区文件
				allow-update { none; };		不允许动态更新本区的数据
	};

Linux系统DNS bind的配置_第4张图片

配置文件格式不能错

	cd /var/named
	cp -p named.localhost westos.com.zone		
	与之前配置文件中编辑的file后面名称一致		
	-p 不能丢  需要连权限一起复制

Linux系统DNS bind的配置_第5张图片

	vim westos.com.zone

	$TTL 1D
	@			IN SOA dns.westos.com. root.westos.com.	(
												0		;	serial
												1D		;	refresh
												1H		;	retry
												1W		;	expir
												3H )		;	minimum
				NS	dns.westos.com.
	dns		A		172.25.254.103
	www		A		172.25.254.103

Linux系统DNS bind的配置_第6张图片
数据配置文件参数含义:

$TTL 当有外部DNS服务器对你的DNS的这个领域进行查询时。这个记录会放置在对方DNS服务器内几秒钟。
SOA : Start of Authorit (授权开始)
五组数字:Serial,refresh,retry,expirt,minimum
Serial:该序号作为slave与master更新的依据,一般利用日期来设定。
Refresh:命令slave多久进行一次主动更新。
Retry:如果到了refresh的时间,但是slave却无法连接master时,那么多久之后,slave会再次的主动尝试与主机连线。
Expire:如果slave一直无法与master连接上,那么经过多久的时间后,则命令slave不要再连接master。
Minimum:没有指定生存期的数据,可以保存在数据库中的时间。

NS:Nmae server的缩写 后面接的一定是主机名称,代表这个zone的查询请向后面的这台主机要求。
后面的主机名称必须要有对应的ip。
A标记表示ip4
AAAA表示IP6

配置文件修改完毕后

		systemctl restart named		重启named服务程序使更改生效

然后在测试主机中

		vim /etc/resolv.conf

		nameserver	172.25.254.103				编写域名解析
		
		dig	www,westos.com

Linux系统DNS bind的配置_第7张图片
######################################
DNS的反向解析

		vim /etc/named.rfc1912.zones

			zones "254.25.172. in-addr.arpa" IN {
					type master;
					file "westos.com.ptr";
					allow-update { none; };
			};

Linux系统DNS bind的配置_第8张图片

反向解析,配置文件的ip需要反着写

		cd /var/named
		cp -p named,loopback westos.com.ptr		-p不能丢

Linux系统DNS bind的配置_第9张图片

		vim westos.com.ptr

		$TTL	1d
		@			IN SOA	dns.westos.com.	root.westos.com. (
													0		; serial
													1D		; refresh
													1H		; retry
													1W		; expire
													3H )	; minimum
					NS	dns.westos.com.
		dns			A	172.25.254.103
		111			PTR	bbs.westos.com.
		112			PTR	www,westos.com.

Linux系统DNS bind的配置_第10张图片

		systemctl restart named			重启服务

在测试主机中

		vim /etc/resolv.conf
		nameserver 172.25.254.103

		dig -x 172.25.254.111

Linux系统DNS bind的配置_第11张图片

		dig-x 172.25.254.112

Linux系统DNS bind的配置_第12张图片

################################
关于dig的输出
QUESTION:提出实际的 DNS 查询
ANSWER: 响应(如果有)
AUTHORITY:负责域的名称服务器
ADDITIONAL:提供的其他信息,通常是关于名称服务器底部的注释指出发送查询的递归名称服务器以及获得响应所花费的时间。

###############################
双向解析

首先dns要有俩个ip,一个内网(即局域网,自己范围用)ip: 172.25.254.103 , 一个外网ip : 192.168.0.103
Linux系统DNS bind的配置_第13张图片

		vim /etc/named.conf				更改DNS服务器的主配置文件

	先如图所示,注释掉部分内容

Linux系统DNS bind的配置_第14张图片

在添加以下内容
Linux系统DNS bind的配置_第15张图片

	cp -p westos.com.zone westos.com.localnet

	vim westos.com.localnet 

	全文替换 172.25.254 为 192.168.0

Linux系统DNS bind的配置_第16张图片

	cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.inter

	vim /etc/named.rfc1912.inter

	zone "westos.com" IN {
			type master;
			file "westos.com.localnet";
			allow-update { none; };
	};

Linux系统DNS bind的配置_第17张图片

	systemctl restart named

测试:
本机设定:

		vim /etc/resolv.conf
		nameserver 172.25.254.103
	
		dig www.westos.com   
		得到结果为192.168.0.103

其他主机设定:

		vim /etc/resolv.conf
		nameserver 172.25.254.103

		dig www.westos.com  
		得到结果为172.25.254.103

#####################################
辅助dns
辅助dns主要针对外网
集群:主要通知辅助的 ,目的是数据同步,让多台主机为一台主机工作。
#1)注释双向 dns 的配置 ,恢复之前的配置

#2)打开第二台虚拟机

#3)

		yum install bind -y		安装bind
		
		vim /etc/named.conf			修改配置文件
		listen-on port 53 { any; };
		allow-query		{ any; };

Linux系统DNS bind的配置_第18张图片
#4)

     vim /etc/named.rfc1912.zones

	zone "westos.com" IN {
				type slave;
				masters { 172.25.254.103; };
				file "slaves/westos.com.zone";
				allow-update { none; };
	};

Linux系统DNS bind的配置_第19张图片

		systemctl restart named			配置完成后重启named服务

#5)

			firewall-cmd --permanent --add-service=dns
			fire-cmd --reload
			把dns服务添加到火墙内,并重启火墙服务

测试:

		vim /etc/resolv.conf
		nameserver 172.25.254.203

俩台主机分别

		dig www.westos.com

得到相同的结果

###################################
dns更新

在主dns上:

	zone "westos.com" IN {
					type master;
					file "westos.com.zone";
					allow-update { 172.25.254.203; };		允许谁更新
					also-notify { 172.25.254.203; };

};
Linux系统DNS bind的配置_第20张图片

	systemctl restart named

在172.25.254.103上

			nsupdate
			> server 172.25.254.103
			> update add hello.westos.com 86400 A 172.25.254.77
			> send

Linux系统DNS bind的配置_第21张图片

在172.25.254.203上

			dig hello.westos.com		得到 172.25.254.77

###########################
named服务重启报错

	systemctl restart named
	出现报错
	
			> /var/log/messages						清空日志
			systemctl restart named					重启服务
			cat /var/log/messages						查看重启的报错

	日志中会准确记录报错原因,例如配置文件的第几行什么内容有误。

#######dns的key更新######

		systemctl restart named			  有jnl文件,并且westos.com.zone也更新了
		rm -fr westos.com.zone*			  删除更新过的文件
		cp -p /mnt/westos.com.zone  /var/named/

		systemctl restart named

		dnssec-keygen -a HMAC-MD5  -b 128 -n HOST westos	以HMAC-MD5生成密钥

		cp -p /etc/rndc.key /etc/westos.key

		vim /etc/westos.key
			
			key "westos" {
						algorithm hmac-md5;
						secret "自己生成的key"
			};

		vim /etc/named.conf
		#option语句块外
		include"/etc/westos.key"

		vim /etc/named.rfc1912.zones

		zone"westos.com" IN {
						type master;
						file"westos.com.zone"
						allow-update {key westos;};
						also-notify{172.25.254.200; };
		};

		systemctl restart named

		scp Kwestos.* [email protected]:/opt 把钥匙锁发送给谁谁就可以更新

		测试:
		cd /opt    ##/mnt根目录也可以
		ls
		nsupdate -k westos.+xxx.key
		>server 172.25.254.100
		>update add hello.westos.com 86400 A 172.25.254.123
		>send

在主dns测试

		dig hello.westos.com ##查看IP是否更新位172.25.254.123
		cd /var/named 生成jnl文件

##ddns动态解析######
主机名固定,IP不固定
解析www,域名对应的IP是死的,不适用于动态网络,
如何让解析随IP变:
因为dhcp每次分配的IP都不同
IP dhcp服务知道是哪个IP
分配IP的时候告诉dns,把解析指向他

	dhcp -->dhcp netword -->dns
	ddns:
	server的IP变,做客户端,通过dhcp获取IP
	在主dns搭建dhcp网络,分配IP

把真机dhcp关了
在desktop开启dhcp,地址池,火墙添加dhcp
server火墙也要添加dhcp
把selinux都要关掉
在server分配到一个IP之后,dig test.westos.com还是没有IP
dhcp告诉dns,打开ddns-updates-style interim
添加key 配置dhcp文件 重启服务
在server重启服务 dig查看IP是否更改

主dns安装dhcp

	yum install -y dhcp
	
	firewall-cmd --permanent --add-service=dhcp
  	firewall-cmd --reload
	
	cp /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf
	
	vim /etc/dhcp/dhcpd.conf
	
	14 ddns-update-style interim;

以下部分可以在man 5 dhcpd.conf中搜索ddns找到

		key westos{
					algorithm hmac-md5;
					secret'自己生成的'
		}

		zone westos.com.{
					primary 172.25.254.100;
					key westos;
		}

##测试:
在测试客户端删:
修改网络位dhcp

		systemctl restart network

		dig test.westos.com  ##看到对应的IP

在修改dhcp的地址池,让客户端的IP可以改变

		systemctl restart network
		dig test.westos.com  ##可以看到IP变为重新分配的。

你可能感兴趣的:(Linux运维初学)