DNS服务

1.构建高速缓存dns服务器
前提:虚拟机配置上网

dns-server:
systemctl stop firewalld
systemctl disable firewalld
yum install bind -y
vim /etc/named.conf
11 listen-on port 53 { any; }; #所有人都可以访问我的dns
17 allow-query { any; }; #允许所有人都能访问我
18 forwarders { 114.114.114.114; }; #如果查询不到去问谁
33 dnssec-validation no;

systemctl start named #启动会卡住需要在图形界面敲击键盘
“”"
ll /etc/rndc.key 这个文件在服务启动之前是不存在的
启动服务的时候会去 /dev/random 这个加密文件中拿数据
“”"
vim /etc/reslove.conf
nameserver 172.25.254.64 #访问自己的缓存

dns-client:
vim /etc/reslove.conf
nameserver 172.25.254.64 #访问dns高速缓存器的的缓存

2.dns的正向解析:根据域名查询IP地址,是dns最基本也是最常用的功能
vim /etc/named.conf
options {
listen-on port 53 { any; };
listen-on-v6 port 53 { ::1; };
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; };
#forwarders { 114.114.114.114; };

vim /etc/named.rfc1912.zones
25 zone “westos(自定义).com” IN {
26 type master;
27 file “westos.com.(自定义)zone”;
28 allow-update { none; };
29 };
cd /var/named
cp -p named.localhost westos.com.zone

$TTL 1D
@=westos.com IN SOA dns.westos.com.(维护的区域) root.westos.com.(维护的用户) (
0 ; serial
1D ; refresh #保存一天
1H ; retry #访问我的时候如果我没有地址,请1h后再访问
1W ; expire # 保存你的查询信息最长1周
3H ) ; minimum #保存你的查询信息最短3h
NS dns.westos.com.
dns A 172.25.254.64
www A 172.25.254.12
hello A 172.25.254.13
happy A 172.25.254.99

systemctl restart named

测试:dig www.westos.com
在这里插入图片描述

3.DNS轮询

$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.64
www A 172.25.254.12
hello A 172.25.254.13
happy A 172.25.254.99
bbs CNAME linux #bbs.westos.com —>linux.westos.com
linux A 172.25.254.16
linux A 172.25.254.17
在这里插入图片描述
4.MX记录(邮件交换器)
#MX记录用来定义用于域的邮件交换,这有助于电子邮件正确到达您的邮件服务器
[root@dns-server named]# mail root@westos.com
Subject: casc
cascscsa
csacsa
csacas
EOT
[root@dns-server named]# mailq
-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------
7EE9F17E853 464 Wed Aug 7 02:47:47 root@dns-server.example.com
(connect to 172.25.254.14[172.25.254.14]:25: Connection refused)
root@westos.com
#为什么没发出去:因为是172.25.254.14这台主机没有开启邮件服务器 和我们的dns没有关系
– 0 Kbytes in 1 Request.
[root@dns-server named]# cat westos.com.zone
$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.64
www A 172.25.254.12
hello A 172.25.254.13
happy A 172.25.254.99
bbs CNAME linux
linux A 172.25.254.16
linux A 172.25.254.17
westos.com. MX 1 172.25.254.14

5.dns反向解析
#根据IP地址查询域名 不怎么常用

vim /etc/named.rfc1912.zones
43 zone “0.25.172.in-addr.arpa” IN {
44 type master;
45 file “westos.com.ptr”;
46 allow-update { none; };
47 };

cd /var/named
cp -p named.loopback westos.com.ptr
vim westos.com.ptr
[root@dns-server named]# cat 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.64
111 PTR bbs.westos.com. #172.25.0.111
110 PTR www.westos.com.
在这里插入图片描述

6.双向解析
#通过内网和外网访问同一个域名的时候,获取到不同的ip地址
#实现方式:让不同的客户看不同的文件即可

cd /var/named
cp -p westos.com.zone westos.com.localnet #ip
cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.localnet #file

vim /etc/named.conf
view localnet {
match-clients { 172.25.254.64; }; #your ip
zone “.” IN {
type hint;
file “named.ca”;
};
include “/etc/named.rfc1912.localnet”;
};

view internet {
match-clients { any; };
zone “.” IN {
type hint;
file “named.ca”;
};
include “/etc/named.rfc1912.zones”;
};
在这里插入图片描述
7.辅助dns
#DNS服务器一般在用的时候,为了缓解服务器的压力,多使用一个主dns服务器 多个副dns服务器 这些dns服务就组成了一个dns集群

1.另起一台虚拟机,配置好

2.安装bind
改listen-on port 53 { any; };
allow-query { any; };

#新虚拟机上设置
3.vim /etc/named.rfc1912.zones
zone “westos.com” IN {
type slave;
masters { 172.25.254.64; };
file “slaves/westos.com.zone”;
allow-update { none; };
};

cd /var/named/slaves
rm -fr westos.com.zone
systemctl restart named

##在主的上面
vim /etc/named.rfc1912.zones
zone “westos.com” IN {
type master;
file “westos.com.zone”;
allow-update { none; };
also-notify { 172.25.254.114; }; #允许谁同步我的dns信息

然后更改westos.com.zone文件里www对应的ip
再更改serial值进行同步,值不能大于10位
#注意:每次更改ip后要连同“1 ; serial”这个值得一起改变 然后需要重启服务

8.dns的更新 cp -p westos.com.zone /mnt
普通更新
zone “westos.com” IN {
type master;
file “westos.com.zone”;
allow-update { 172.25.254.64; }; ##允许谁更新westos.com.zone的内容
also-notify { 172.25.254.114; };

systemctl restart named

/var/log/messages
肯定更新不成功

[root@foundation2 ~]# nsupdate

server 172.25.254.64
update add hello.westos.com 86400 A 172.25.254.111
send
update failed: SERVFAIL

在172.25.254.64上看日志:/var/log/messages
看到permission denied
更新的内容会更新到/var/named目录中,相当于上传一个文件,上传是权限被拒
/var/named 目录只对超级用户可写

chmod 770 /var/named

再次更新,成功
/var/named目录中多了一个westos.com.zone.jnl文件
westos.com.zone.jnl的内容就是更新的内容

westos.com.zone.jnl文件中的内容会在服务重启时同步到westos.com.zone文件中

key更新:更新之前还原 更新之前的文件
cd /mnt
dnssec-keygen -a HMAC-MD5 -b 128 -n HOST westos
cp -p /etc/rndc.key /etc/westos.key
vim /etc/westos.key

key “westos” {
algorithm hmac-md5;
secret “o3S5MjYk4BALlk9K2WpVDA==”;
};

#[root@dns-server mnt]# cat Kwestos.+157+00465.key
westos. IN KEY 512 3 157 o3S5MjYk4BALlk9K2WpVDA==

#让dns识别这个key
vim /etc/named.conf
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.114; };
}

scp /mnt/Kwestos.+157+00465.* root@172.25.0.3:/mnt/
systemctl restart named
测试:
[root@server3 mnt]# nsupdate

server 172.25.254.64
update add lucky.westos.com 86400 A 172.25.254.114
send
update failed: REFUSED
quit
[root@server3 mnt]# nsupdate -k Kwestos.+157+00465.private
server 172.25.254.64
update add lucky.westos.com 86400 A 172.25.254.114
send
quit
[root@server3 mnt]#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值