Linux学习笔记之DNS服务

DNS(Domain Name System,域名系统):万维网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过域名,最终得到该域名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。
DNS功能:每个IP地址都可以有一个主机名,主机名由一个或多个字符串组成,字符串之间用小数点隔开。有了主机名,就不要死记硬背每台IP设备的IP地址,只要记住相对直观有意义的主机名就行了。这就是DNS协议的功能。
####高速缓存DNS####
##DNS资源记录##
DNS区域采用资源记录的形式存储信息。每条资源记录均具有一个类型,表明其保留的数据类型。
-A:名称至IPv4地址
-AAAA:名称至IPv6
-CNAME:名称至“规范名称”(包含A/AAAA记录的另一个名称)
-PTR:ipv4/ipv6地址至名称
-MX:用于名称的邮件交换器(向何处发送其电子邮件)
-NS:域名的名称服务器
-SOA:“授权起始”,DNS区域的信息(管理信息)

##DNS排错##
-NOERROR ##查询成功
-NXDOMAIN:DNS ##服务器提示不存在这样的名称
-SERVFAIL:DNS ##服务器停机或DNSSEC响应验证失败
-REFUSED:DNS #服务器拒绝回答

1.安装dns
yum install bind.x86_64 -y ##安装dns配置文件
2.开启dns
ystemctl start named
第一次开启时会出现停顿,需要敲击加键盘,生成加密字符,并将文件存入/etc/rndc.key
cat /dev/random ##查看加密字符(加密字符存放在/etc/rndc.key)
netstat -antulpe |grep named ##查看dns端口号开启状况(未配置服务时的端口情况下,只有本地的53端口开着)
回环接口(127.0.0.1):本机服务之间的通信##
Linux学习笔记之DNS服务
vim /etc/named.conf
将第十一行设置为所有:
listen-on port 53 {any;};
systemctl restart named
netstat -antulpe |grep named ##重新查看dns端口号开启状况
Linux学习笔记之DNS服务

vim /etc/named.conf
17 allow-query {any; }; ##改为所有用户都可以询问
18 forwarders{114.114.114.114; }; ##本机无法回答的问题,会自动询问114.114.114.114
32 dnssec-validation no; 服务不自检
当第一次问时,访问会有延迟,但是当第二次询问时,时间短,主机会高速缓存

正向解析:把域名变成ip
vim /etc/named.conf
11 listen=onport 53 {any};
17 allow-query{any;};
32 dnssec-validationno;

vim /etc/name.rfc1912.zones
19 zone "westoslinux.com" IN {
20 type master;
21 file "westoslinux.com.zone';
22 allow-update {none; };

Linux学习笔记之DNS服务

cd /var/named/
cp -p named.localhost westoslinux.com.zone
vim /var/named/westoslinux.com.zone

Linux学习笔记之DNS服务br/>文件中不以.结尾,就会默认补齐@,@为.westoslinux.com
测试:dig www.westoslinux.com

轮询机制
vim /var/named/westoslinux.com.zone
cat /var/named/westoslinux.com.zone

$TTL 1D
@ IN SOA dns.westoslinux.com. root.westoslinux.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.westoslinux.com.
dns A 127.25.254.120
www.a A 172.25.254.111
www.a A 172.25.254.222

测试:dig www.westoslinux.com
Linux学习笔记之DNS服务
测试结果为172.25.254.111和172.25.254.222交替出现

MX 用于名称的邮件交换器(向何处发送电子邮件)
vim /var/named/westoslinux.com.zone

$TTL 1D ##高速缓存一天
@ IN SOA dns.westoslinux.com. root.westoslinux.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.westoslinux.com.
dns A 127.25.254.120
www.a A 172.25.254.111
www.a A 172.25.254.222
www CHAME www.a.westoslinux.com
westoslinux.com MX 1 172.25.254.1

systemctl restart named
mail [email protected]
ctrl+d 结束输入
Linux学习笔记之DNS服务

反向解析
cd /var/named/
cp -p named.loopback westoslinux.com.ptr
vim /etc/name.rfc1912.zones
51 zone "254.25.172.in-addr.arpa" IN {
52 type master;
53 file "westoslinux.com.ptr";
54 allow-update { none; };
Linux学习笔记之DNS服务

vim /var/named/westoslinux.com.ptr
$TTL 1D
@ IN SOA dns.westoslinux.com. root.westoslinux.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.westoslinux.com.
dns A 172.25.254.120
222 PTR www.westoslinux.com.
测试:dig -x 172.25.254.120

dns集群,辅助dns

1.主dns配置
vim /etc/named.rfc1912.zones
添加
25 zone "westoslinux.com" IN {
26 type master;
27 file "westoslinux.com.zone";
28 allow-update { none; };
29 allow-transfer { 172.25.254.220; }; ##允许172.25.254.220同步本机A记录文件
};
2.辅助dns配置
vim /etc/named.conf ##此文件内容和正向解析配置一致
11 listen-on port 53 { any; };
17 allow-query { any; };
32 dnssec-validation no;

vim /etc/named.rfc1912.zones
25 zone "westoslinux.com" IN {
26 type slave;
27 masters { 172.25.254.120; }; ##设定本机为辅助dns
28 file "slaves/westoslinux.com.zone"; ##A记录文件同步主机ip
29 allow-update { none; }; ##存放A记录文件的位置
};

3.测试
vim /etc/resolv.conf
nameserver 172.25.254.200
在slave主机的/var/named/slaves出现westos.com.zone,这是因为在从属服务器的/etc/named.rfc1912.zone中file "slaves/westos.com.zone",书写所致。
##dns自动同步##
主dns下:vim /etc/rfc1912.zones
29 allow-transfer {172.25.254.220;};
30 also-notify { 172.25.254.220; };
Linux学习笔记之DNS服务

vim /var/named/westoslinux.com.zone
更改serial值,主dns重启后,辅dns会自动同步
注意:serial值最多为十位,通常为年月日+更改次数
从属服务器,会根据serial值是否变化来判断,是否要更新A记录文件。

辅dns更改主dns信息

主dns下:
vim /etc/named.rfc1912.zones
28 allow-update { 172.25.254.220; };
systemctl restart named
cp -p westoslinux.com.zone /mnt/
chmod 770 /var/log/messages
setsebool -P named_write_master_zones 1

辅dns下:
[root@dns-server2 slaves]# nsupdate

server 172.25.254.120
update add hello.westoslinux.com 86400 A 172.25.254.120
send> quit

Linux学习笔记之DNS服务

测试:
主dnsxia:
dig hello.westoslinux.com

通过密钥用辅dns更改主dns信息
dnssec-keygen -a HMAC-MD5 -b 128 -n HOST westos
##-b:密码长度
-a:密码类型
MD5:对称加密
cat Kwestos.+157+44565.key
cp -p /etc/rndc.key /etc/westos.key

Linux学习笔记之DNS服务

vim /etc/westos.key

Linux学习笔记之DNS服务

vim /etc/named.conf
43 include "/etc/westos.key";
Linux学习笔记之DNS服务

vim /etc/named.rfc1912.zones
allow-update {key westos;};

Linux学习笔记之DNS服务

把密码和钥匙发送给辅dns。
scp Kwestos.xxxxx.key Kwestos.+157+44565.* [email protected]:/mnt

Linux学习笔记之DNS服务

测试:
辅dns:
[root@dns-server2 slaves]# nsupdate -k Kwestos.+157+44565.private

server 172.25.254.120
update add hello.westoslinux.com 86400 A 172.25.254.120
send> quit

Linux学习笔记之DNS服务

主dns:
dig hello.westos.com

DNS的动态解析
服务端:
vim /etc/dhcpd/dhcp.conf
7 name "westos.com"
8 name-servers 172.25.254.120
14 ddns-update-style interim;
subnet 172.25.254.0 netmask 255.255.255.0{
range172.25.254.231 172.25.254.244;
optionrouters 172.25.254.120;
}

key westos{
algorithmhmac-md5;
secert XXXXX;
};

zone westos.com. { ##通知DNS要更新dhcp变的ip
primary127.0.0.1; ##DHCP所在的服务器,使用回环更快
key westos; }

Linux学习笔记之DNS服务

客户端:
网卡配置文件
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DNS1=172.25.254.120
BOOTPROTP=dhcp
vim /etc/resolv.conf
nameserver 172.25.254.130
测试:
服务器:
systemctl restart dhcpd
systemctl restart named
客户端:
systemctl restart network
ifconfig
dig client.westos.com
client为主机名

猜你喜欢

转载自blog.51cto.com/14050771/2320244