文章目录
- 全局网关:写在 /etc/resolv.conf文件中 所有ip都可以使用的网关
- 私有网关:写在网卡配置文件中 只是所对应的网卡ip能使用的网关
- 智能dns 114.114.114.114
- DNS高速缓存:应用53端口 缓存在本地上 速度快 减少服务器压力
1.DNS解析命令
- dig 命令:查看高速缓存 可查看查找缓存时间
命令 | 作用 |
---|---|
dig ip | 域名正向解析 |
dig -x 域名 | 域名反向解析 |
dig -t mx | 邮件解析 |
2.部署DNS高速缓存
(1)在服务器主机上:
1)yum install bind
在搭建好yum源的情况下 安装DNS服务named所需软件bind
2)systemctl start named
开启named服务 开启53传输端口
启动服务时 会生成加密字符 需要在新shell中敲字符补足加密字符位数 未敲键盘位数不够
systemctl stop firewalld
停止火墙
或者 开启火墙为火墙添加DNS服务
firewall-cmd --permanent --add-service=dns
firewall-cmd --reload
3)vim /etc/named.conf
在named配置文件中配置dns本地缓存信息
13 listen-on port 53 { any ; }; 对外开启53端口
19 allow-query { any ; }; 允许外部ip询问
20 forwarders {114.114.114.114 ;};
本地缓存没有的域名 会导致查询慢 主机默认会去顶级DNS查询了 可以设置如果本地没有缓存 让主机去智能DNS查找
35 dnssec-validation no;
4)netstat -antulpe | grep named
查看53端口开放点
(2)在测试主机上:
1)
vim /etc/resolv.conf
nameserver 172.25.254.201
将DNS改为服务主机ip 让测试机去服务主机缓存中查找
2)dig www.baidu.com
可以看到查询时间 第一次时间可能会稍长 但后面时间基本为0msec或1msec 可见高速缓存的快捷
2.DNS正向解析
(1)概念:域名的正向解析是指通过域名解析对应的ip 域名–>ip
(2)配置:
查看 /etc/named配置文件可以看到系统在解析时也会阅读其他相应解析配置文件
1)
vim /etc/named.rfc1912.zones
zone "happy.com" IN { ##""中写要维护的域名
type master;
file "happy.com.zone"; ##""中写要维护域名需要访问的配置文件,此类文件统一存在/var/named目录下
allow-update { none; };
2)cd /etc/named
系统中不存在happy.com.zone需要自己建立
cp -p named.localhost happy.com.zone
此时建立的文家要与先前写入文件的文件名对应 cp是一定要将权限也复制到新文件中 否则之后测试会出现权限不允许的错误提示
2)
vim happy.com.zone
1 $TTL 1D #一天
2 @ IN SOA dns.happy.com. root.happy.com. ( #SOA 表示授权起始 由谁维护该域 域名后必须加. 否则系统将自动在域名后面加happy.com
3 0 ; serial
4 1D ; refresh
5 1H ; retry
6 1W ; expire #该域名维护保质期
7 3H ) ; minimum #最短有效期限
8 NS dns.happy.com. #正向解析内容
9 www A 1.1.1.1 #代表www.happy.com的ip为1.1.1.1 不用管此ip知否真的存在该文> 件只是解析功能 A 代表ipv4 AAAA 代表ipv6
10 dns A 1.1.1.2 #代表dns.happy.com的ip为1.1.1.2
wq 保存退出
3)
vim /etc/resolv.conf
nameserver 172.25.254.201
将dns改为本机ip 让其自己询问自己
4)systemctl restart named
重启服务
测试:
在测试机 dig www.happy.com
3.PTR反向解析
(1)概念:指通过ip解析出域名 域名–>ip
(2)配置:
1)
vim /etc/named.rfc1912.zones
zone "254.25.172.in-addr.arpa" IN { #反向解析ip要反着写
32 type master;
33 file "happy.com.ptr";
34 allow-update { none; };
35 };
2)cd /var/named
cp -p happy.come.zone happy.com.ptr
11 PTR www.happy.com
12 PTR dns.happy.com
3)systemctl restart named 重启服务
测试:
在测试机: dig -x 172.25.254.11
4.CNAME解析
(1)概念:CNAME=chage name 改变域名名称的解析
(2)配置:
1)
vim /etc/named/happy.com.zone
bbs CNAME Linux
将bbs.happy.com域名改变为Linux.happy.com
2)systemctl restart named
重启服务
测试:
在测试机: dig bbs.happy.com
5.MX解析
- SMTP协议: 简单邮件传输协议 应用端口:53端口
配置:
1)
vim /var/named/happy.com.zone
happ.com MX 1 172.25.254.1
2)systemctl restart named
重启服务
测试:
dig -t mx happy.com
查看happy.com的邮件解析
6.DNS双向解析
(1)概念:内网用户查到的是内网地址;外网用户查到的是外网地址
(2)配置:
1)vim /etc/named.conf
在主配置文件中,编写内外网查看不同文件代码,区分内外网用户
注释
/*
52 zone "." IN {
53 type hint;
54 file "named.ca";
55 };
56
57 include "/etc/named.rfc1912.zones";
58 include "/etc/named.root.key";
59 */
添加代码
view localnet{
63 match-clients{ 172.25.254.201; };
64 zone "." IN {
65 type hint;
66 file "named.ca";
67 };
68 include "/etc/named.rfc1912.localnet"
69 };
70
71 view internet{
72 match-clients{ any; };
73 zone "." IN {
74 type hint;
75 file "named.ca";
76 };
77 include "/etc/named.rfc1912.zones"
78 };
2)cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.localnet
3)
vim /etc/named.rfc1912.localnet
zone "happy.com" IN {
20 type master;
21 file "happy.com.localnet";
22 allow-update { none; };
23 };
4)
cd /etc/named
cp -p happy.com.zone happy.com.localnet
5)
vim happy.com.localnet
%s/1.1.1/172.25.254/g 将网段1.1.1全部替换为172.25.254
6) systemctl restart named
重启服务
测试:
-
在服务机:
1)vim /etc/resolv.conf
nameserver 172.25.254.201
改为本机ip自己询问自己
2) dig www.happy.com
- 在其他测试机:
1)dig www.happy.com
7.DNS集群
- 集群:多个dns服务器共同一个主dns服务器,缓解一台dns服务器的压力(主备模式)
配置:
-
主服务器:
1)将 /etc/named.conf 配置文件双向解析代码恢复为原来默认访问代码
2)systemctl restart named
重启服务 -
副服务器:
1)配置named服务及其配置文件(配置得与主服务器相同)
2)将配置文件 /etc/named.rfc1912.zones 中添加
zone "happy.com " IN{
type slave;
msters { 172.25.254.201;}; #ip为主服务器的ip
file"slaves/happy.com.zone"; #文件happy.com.zone为主服务器中的文件
allow-update{ none ;};
3)为防火墙添加dns服务(防火墙是用来防外部ip的)
firewalld-cmd --permanent --add-service=dns
firewalld-cmd --reload
firewalld-cmd --list-all
4)systemctl restart named
重启服务
5)
vim /etc/resolv.conf
nameserver 172.25.254.101
将DNS设置为本机ip 自己询问自己
测试:
在第三台主机上测试
1)
vim /etc/reslov.conf
nameserver 172.25.254.101
将dns改为副服务器ip
2)dig www.happy.com
可以看到 ip为主服务器上的域名起始文件中对应
8.集群域名更新同步
配置:
在主服务器:
1)vim /var/named/happy.com.zone
想要更新同步哪个文件中的域名解析内容就编辑哪个文件
改变serial 的值 任意改变 不超过10位数
www A 1.1.1.111
改变www.happy.com的域名解析
2)vim /etc/named.rfc1912.zones
为happy.com函数添加代码:also-notify { 172.25.254.101;};
允许更新通知副服务器
3)systemctl restart named
重启服务
测试:
在副服务器:
1)systemctl restart named
重启服务
2)dig www.happy.com
发现解析已更新
9.用户添加dns更新
- 开源方式更好的分享资源
配置:
在主服务器方:
1)vim /etc/named.rfc1912.zones
在happy.com解析函数中更改代码
allow-update { 172.25.254.1; };
ip为可以添加更新的用户主机ip
2)setenforce 0
将selinux设置为Permissive或者Disabled模式
3)chmod 770 /var/named
要更新该目录下的文件 就应该给该目录所有组用户写的权限
4)systemctl restart named
重启服务
注意:可以将要被更新的文件(目录/var/named下的)备份,因为解析在被更新之后文件格式会发生变化 。
测试:
在允许更新的主机:
nsupdate
srver 172.24.254.201 #ip为主服务器ip
update add hello.happy.com 86400 A 172.25.254.1 #86400代表86400s 此条解析保质期为86400s一天
send #发送更新
在服务器方:
dig hello.happy.com
删除测试:
10.密钥更新DNS服务
- 说明:上文的DNS更新服务是指定主机ip更新DNS,只有指定ip的主机才能更新,这种更新方式具有一定不确定性和不安全性,如果主机ip发生变化,也会带来不便利;而密钥更新DNS,不用考虑ip变化带来的弊端,只有有钥匙的主机才能更新,只要有钥匙的主机就能更新。
配置:
- 配置准备:恢复之前未更新之前的服务,保证实验环境的纯净
systemctl restart named
重启服务
cp -p /mnt/westos.com.zone /var/named/
将先前备份的解析文件恢复
systemctl restart named
再次重启服务
(1)在主DNS服务器生成密钥
cd /mnt
方便起见可以到一个空目录下创建密钥
dnssec-keygen -a HMAC-MD5 -b 111 -n HOST westos
加密方式应该与服务本身加密方式相同 cat /etc/rndc.key
查看named服务加密方式为: HMAC-MD5
参数 | 含义 |
---|---|
-a | 加密方式 |
-b | 密码 |
-n | 识别方式 HOST主机名 |
ls /mnt
查看生成的密钥匙
(2)配置密钥文件
cp -p /etc/rndc.key /etc/happy.key
仿照已有的密码文件样式建立需要的密码文件 一定要-p复制权限
vim /etc/happy.key
修改密码文件
修改密码文件名为happy
修改密码为生成密钥文件中的密码 cat /mnt/Khappy.xxx
查看密码
(3)配置DNS配置文件
1)vim /etc/named.conf
让服务去读取密码文件:在option语句块外添加代码:
include ”/etc/westos.key“
2)vim /etc/named.rfc1912.zones
更改更新方式为密码更新
allow-update{ key westos; };
westos 为密码文件名称
3)chmod 770 /var/named
给该目录所有组用户写权限,所有组用户才能更新相应解析文件
4)systemctl restart named
重启服务
(4)发送钥匙给要更新DNS的主机
scp /mnt/Kwestos* root@172.25.254.x:/mnt
将密钥发送给可以更新的主机
测试:
在可以更新解析主机方:
nsupdate -k Kwestos.xxx.key
指定更新dns更新使用密码
server 172.25.254.101
update add happy.westos.com 86400 A 1.1.1.1
send
发送更新成功,在DNS 服务器上dig:
更新后/var/named目录下会产生新的更新文件: