linux之DNS高级设置
- 高速缓存dns
当多个主机通过一个端口访问网站时,会占用带宽;
这时需要一个主机设置高速缓存dns
其他主机再访问网站时,通过设置高速缓存dns的主机访问网站
能够加快访问速度,减少带宽的占用
高速缓存dns的安装:
yum search dns
yum install bind.x86_64 -y
产生加密:
ls -l /etc/rhdc.key
在另外一台主机随意键入会产生加密
systemctl start named
编辑主配置文件:
vim /etc/named.conf
11 listen-on port 53 { any; }; ##端口访问
17 allow-query { any; }; ##允许谁"问"
18 forwarders { 114.114.114.114; }; ##问"谁"
32 dnssec-varlidation no;
测试:
在设置过高速缓存dns的主机和同一个端口下另外一台主机分别:
dig www.baidu.com 比较二者的访问速度
主服务器:
同一端口设置过高速缓存的主机:
- dns域名正向解析
正向解析时从域名–>ip地址的解析,当dns服务器被访问时,可以将域名解析为ip地址
实验环境准备:
删除之前高速缓存dns的dns指向
vim /etc/named.conf
删除第18行
vim /etc/resolv.conf
namserver 172.25.254.84 ##指定dns为自己
systemctl restart named
设置步骤:
编写区域配置文件:
vim /etc/named.rfc1922.zones
编写如下:
25 zone "cc.com" IN {
26 type master;
27 file "cc.com.zone";
28 allow-update { none; };
29};
编写数据配置文件:
cd /var/named
ls
cp -p named.localhost cc.com.zone
vim westos.com.zone
编写如下:
$TTL 1D
@ IN SOA dns.cc.com. liu.cc.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.cc.com.
dns A 172.25.254.100
www A 172.25.254.100 ---www表示访问的域名
bbs A 172.25.254.200
systemctl restart named
测试:
dig www.cc.com
- 域名转换
现象:能够上网的真机在ping www.baidu.com时候,会先将域名转换为www.a.shifen.com,然后再转换为ip地址
设置步骤:
vim /var/named/cc.com.zone
编写如下:
$TTL 1D
@ IN SOA dns.cc.com. liu.cc.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.cc.com.
dns A 172.25.254.100
www CNAME node1.a.cc.com. ##www表示访问的域名,CNAME表示域名转换,node1.a表示转换后的域名(配置域名转换,此时dig查看www.cc.com时候,会转换为域名为node1.a)
node1.a A 172.25.254.101
node1.a A 172.25.254.102
bbs A 172.25.254.200
systemctl restart named
测试:
dig www.westos.com
- 邮件解析记录
设置步骤:
vim /var/named/cc.com.zone
编写如下:
$TTL 1D
@ IN SOA dns.cc.com. liu.cc.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.cc.com.
dns A 172.25.254.100
www CNAME
node1.a A 172.25.254.101
node1.a A 172.25.254.102
cc.com. MX 1 172.25.254.103 ##cc.com.表示邮箱地址([email protected])中的公司(cc.com),1是优先级,MX是表示邮件解析,172.25.254.103.表示[email protected]的ip地址
bbs A 172.25.254.200
systemctl restart named
测试:
mail [email protected] ##表示给域名为cc.com的lee用户发送邮件
subject 主题(随便输入)
正文(随便输入)
.(编辑结束,回车发送)
dig -t mx dai.com ##不用发送邮件,也能检测,查看到dai.com的ip地址表示邮件解析设置成功
- 反向解析
相较于正向解析只是写法不同
反向解析用于解析dns服务器中ip地址对应的域名
设置步骤:
编写区域配置文件:
vim /etc/named.rfc1912.zones
编写如下:
31 zone "254.25.172.in-addr.arpa" IN {
32 type master;
33 file "172.25.254.ptr";
34 allow-update { none; };
35};
编写数据配置文件:
cd/var/named/
cp -p named.loopback 172.25.254.ptr
vim /172.25.254.ptr
编写如下:
$TTL 1D
@ IN SOA dns.cc.com. liu.cc.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.cc.com.
dns A 172.25.254.100
100 PTR www.cc.com. ##172.25.254.100的域名为www.cc.com,PTR为反向解析
200 PTR bbs.cc.com.
201 PTR edu.cc.com.
systemcrl restart named
测试:
dig -x 172.25.254.200
- 多向解析
不同身份的用户,在查询dns服务器的时候,查看到的地址不同。
实验环境准备:
给虚desktop虚拟机的eth0网卡上添加ip1.1.1.84
设置虚拟机server的ip为1.1.1.184
同时设置dns指向为1.1.1.84
设置完毕
dig www.cc.com 查看ip是175.25.254网段的
设置步骤:
在虚拟机desktop(dns服务器)端:
编写数据配置文件:
cd /var/named
ls
cp -p cc.com.zone cc.com.inter
vim cc.com.inter
编写如下:
$TTL 1D
@ IN SOA dns.cc.com. liu.cc.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.cc.com.
dns A 1.1.1.100
www CNAME node1.cc.com.
node1.a A 1.1.1.101
node1.a A 1.1.1.102
cc.com. MX 1 1.1.1.103
bbs A 1.1.1.200
:%s/172.25.254/1.1.1/ ---将所有172.25.254替换为1.1.1
systemcrl restart named
编写区域配置文件:
cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.inter
vim /etc/named.rfc1912.inter
49行,将反向解析部分删除
24行,将cc.com.zone改为cc.com.inter
编写主配置文件:
vim /etc/named.conf
将49行到56行注释,从zone"."IN{一行开始,
只留下include"/etc/named.root.key"
在下方编写如下:
60 view localnet {
61 match-clients { 1.1.1.0/24; };
62 zone "." IN {
63 type hint;
64 file "named.ca";
65 };
66 include "/etc/named.rfc1912.inter";
67 };
68
69 view internet {
70 match-clients { any; };
71 zone "." IN {
72 type hint;
73 file "named.ca";
74 };
75 include "/etc/named.rfc1912.zones";
76 };
systemctl restart named
如果报错:
> /var/log/messages
systemctl restart named
cat /var/log/messages
根据日志报错信息中查看的报错行号进入配置文件/etc/named.conf修改
测试:
server的 ip 1.1.1.162(相当于内网)
dig www.cc.com
得到的ip地址是1.1.1的网段的
真机ip 172.25.254.9(相当于外网)
dig www.cc.com
得到的ip地址是172.25.254的网段的
- dns集群(辅助dns的配置)
一台主机的dns在有很多用户进行登陆解析时,系统可能会国在崩溃,此时可以给dns配置一个辅助的服务器,两台dns服务器进行简单轮循工作,当主dns服务器中的解析文件更改时,辅助dns服务器虽然可以删除自己的dns配置文件并且restart named服务来达到同步dns主服务器的目的,但是如果辅助dns服务器太多,这样显然很不合适,耗费时间和人力。
所以通过设置dns的集群,来达到当dns主服务器信息更改时,dns辅助服务器自动同步更改。
实验环境准备:
desktop虚拟机作为dns主服务器
删除之前的多项解析
hostnamectl set-hostname dns ##更改主机名,便于观察
把server虚拟机设置为dns辅助服务器
配置ip为175.25.254.184
配置yum源
关闭防火墙
vim /etc/reslov.conf
将dns指向自己的ip
vim /etc/resolv.conf
nameserver 175.25.254.184
dns辅助服务器设置完毕测试:
配置步骤:
server dns辅助服务器:
主配置文件:
vim /etc/named.conf
设置两个"any"以及"no"
区域配置文件:
vim /etc/named.rfc1912.zones
编写如下:
复制6行,编辑为:
zone "cc.com" IN {
type slave;
masters { 172.25.254.84; };
file "slaves/cc.com.zone";
allow-update { none; };
};
systemctl restart named
desktop dns主服务器:
区域配置文件:
vim /etc/named.rfc1912.zones
zone "cc.com" IN {
type master;
file "cc.com.zone";
allow-update { none; };
allow-transfer { 172.25.254.184; };
also-notify { 172.25.254.184; } ;
sysctemctl restart named
测试:
在dns主服务器端:
cd /var/named
vim cc.com.zone
更改desktop主服务器的dns的ip
systemctl restart named
在server辅助服务器上
dig www.cc.com
查看ip是否同步为dns主服务器更改后的ip
发现没有效果
更改desktop主服务器的数据配置文件的serial为1
systemctl restart named
在server辅助服务器上再次dig www.westos.com
查看ip是否同步为dns主服务器更改后的ip
在辅助dns服务器端可查询更改时间:
cd /var/named/
stat slave
- dns的远程更新
设置步骤:
dns主服务器:
cp -p /var/named/cc.com.zone /mnt/
chmod 770 /var/named
vim /etc/named.rfc1912.zones
编写如下:
zone "cc.com" IN {
type master;
file "cc.com.zone";
allow-update { 172.25.254.184; }; ##允许172.25.254.184主机对它进行远程更新
allow-transfer { 172.25.254.184; };
also-notify { 172.25.254.184; } ;
systemctl restart named
dns辅助服务器:
同步命令:
nsupdate
server 172.25.254.84 ##主服务器ip
update add test.cc.com 86400 A 172.25.254.84 ##更新的域名解析
send
quit
测试:
在dns主服务器 dig test.cc.com
查看更改后的域名解析ip
同时cd /var/named
ls 会看到一个cc.com.zone.jnl的文件,但是cc.com.zone文件中的ip没有改变
systemctl restart named
再次查看cc.com.zone 可以查看文件中被远程更新的ip
dns主服务器恢复:
cd /var/named
rm -fr westos.com.zone westos.com.zone.jnl
cp -p /mnt/cc.com.zone
- dns远程更新加密
作用:对主服务器用公钥进行加密,只允许私钥的用户可以进行远程更新
实验环境准备:
必须把前一个实验环境还原到没有远程更新的状态,否则哪个数据会产生冲突,影响检测。
此前所进行的远程更新配置,任何人修改自己为主服务器允许的ip地址,就可以对主服务器进行远程更新,这是很不安全的,所以需要提高安全性。
设置步骤:
在dns主服务器:
cat /etc/rndc.key
dnssec-keygen -a HMAC-MD5 -b 128 -n HOST cc
Kcc.+157+46315
cat Kcc.+157+46315.key
cat Kcc.+157+46315.private
cp -p /etc/rndc/key /etc/cc.key
vim /etc/cc.key
修改加密
修改主配置文件:
vim /etc/named.conf
编写如下:
session-keyfile "/run/named/session.key";
};
include "/etc/cc.key"; ---named服务读取的文件添加钥匙配置文件
logging {
channel default_debug {
修改区域配置文件:
vim /etc/named.rfc1912.zones
编写如下:
zone "cc.com" IN {
type master;
file "cc.com.zone";
allow-update { key cc; };
allow-transfer { 172.25.254.184; };
also-notify { 172.25.254.184; } ;
此时在辅助dns服务器端尝试同步更新主服务器dns
将主服务的加密密钥发送给辅助服务器端
scp Kcc.+157+46315.* [email protected]:/mnt/
拥有密钥再次尝试同步更新主服务器
同步更新成功
- 动态域名解析