1. DNS之bind部署配置
1.1 安装bind
- 安装命令
dnf install -y bind bind-libs bind-utils bind-chroot
- 安装包解释
bind 服务器
bind-libs 相关库
bind-utils 客户端
bind-chroot 安全包
- 查看版本
rpm -qi bind
- 排查可通性
[root@centos7 ~]# tcpdump -i eth0 udp port 53 -nn
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
06:40:22.236559 IP 10.0.0.11.37167 > 10.0.0.10.53: 49531+ A? www.baidu.com. (31)
06:40:22.237062 IP 10.0.0.11.56806 > 10.0.0.10.53: 49531+ A? www.baidu.com. (31)
1.2 配置文件
- 编辑配置文件
- 如下两行可以直接删除达到效果,但是有缺点,所有网段服务器都是用这台DNS,会增加压力,可以配置网段限制(allow-query)
vi /etc/named.conf
11 listen-on port 53 { localhost; }; /*监听所有IP*/
19 allow-query { any; }; /*运行谁能访问我的dns服务器*/
- 语法检测
named-checkconf
- 平滑重启
rndc reload
2. 域名DNS
2.1 定义格式
2.1.1 SOA记录
- 邮箱的@有特殊含义,用 . 替换
- 主从服务区域传输相关定义以及否定的答案统一TTL
- name:当前区域的名字,例如:"xier.org"
- value:有多部分组成
$TLL 1D
xier.org. IN SOA ns.xier.org. nsadmin.xier.org. (
2022100501 ;序列号
2H ;刷新时间
10M ;重试时间
1W ;过期时间
1D ;否定答案的TTL值
)
2.1.2 NS记录
-
使用 “@” 符号可用于引用当前区域的名字,当前域名
-
name:当前区域的名字
-
value:当前区域DNS服务器名,如ns.xier.org
$TLL 1D
xier.org. IN SOA ns1.xier.org. nsadmin.xier.org. (
2022100501 ;序列号
2H ;刷新时间,从节点每2小时同步一次
10M ;重试时间,同步失败了10分钟尝试一次
1W ;过期时间,如果1周都没有同步成功,那么从服务器不提供查询
1D ;否定答案的TTL值,错误的查询结果缓存时间
)
@ IN NS ns1
@ IN NS ns2
ns1.xier.org IN A 10.0.0.10
ns2 IN A 10.0.0.11
2.1.3 A记录
- DNS记录格式
- name: www.xier.com. 这个 . 如果不补上,那么DNS服务会自动补全后缀xier.com,希望补加 . ,不希望加 .
- ttl: 缓存时间(一天:86400),以秒为单位
- IN: internet,固定格式
- rr_type: 记录类型,A(ipv4),AAAA(ipv6)
name [TTL] IN rr_type value
www 86400 IN A 1.1.1.1
2.2 配置DNS记录数据库
- 名称自定义,一般安装域名名称前缀
cd /var/named
- 拷贝模板文件
- -p:保持属性拷贝
- “*”:泛域名,如 dsfdgfger.xier.org
- “@”:本地域 ,如 xier.org
- CNAME:重命名,可达到负载均衡与高可用效果
cp -p named.localhost xier.org.zone
# 配置文件,一个SOA记录、NS记录、A记录构成
vim xier.org.zone
$TTL 1D
@ IN SOA ns1 admin.ws.org. (
20221005; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ NS ns1
ns1 A 10.0.0.10
www CNAME webserver
webserver A 10.0.0.11
webserver A 10.0.0.12
* A 10.0.0.11
@ A 10.0.0.12
@ MX 10 mailserver1 ; 10是权重
@ MX 20 mailserver2
mailserver1 A 10.0.0.11
mailserver2 A 10.0.0.12
- 配置文件识别域
- xier.org是域名
- www.xier.org是主机
vim /etc/named.rfc1912.zones
'''
zone "xier.org" IN {
type master;
file "xier.org.zone";
};
'''
- 检测配置文件
named-checkconf
- 检测数据库文件
named-checkzone xier.org /var/named/xier.org.zone
- 平滑重启服务
rndc reload
3. DNS反向解析区域
-
也就是将域名识别为IP
-
配置区域文件
vim /etc/named.rfc1912.zones
zone "0.0.10.in-addr.arpa" IN {
type master;
file "10.0.0.zone";
};
- 配置反向配置文件
vim /var/named/10.0.0.zone
$TTL 1D
@ IN SOA ns1.xier.org. admin.xier.org. ( 1 12H 10M 3D 1D )
NS ns1.xier.org.
11 PTR webserver.xier.com.
123 PTR mailserver.xier.com.
- 检测语法
named-checkzone 0.0.10.in-addr.arpa /var/named/10.0.0.zone
- 平滑重启服务
rndc reload
4. DNS从服务器加入
- 配置named.conf文件
vim /etc/named.conf
11 // listen-on port 53 { 127.0.0.1; };
19 // allow-query { localhost; };
- 配置定义域文件
vim /etc/named.rfc1912.zones
zone "xier.org" IN {
type slave;
masters {10.0.0.10;};
file "slaves/xier.org.zone.slave";
};
- 重新加载服务
rndc reload
- 查看文件是否同步过来
ll /var/named/slaves/
- 到客户端指定slave服务器验证
dig www.ws.org @10.0.0.14
4.1 更新数据库方法
- 到master节点更新数据
- 注意更新版本号,不然从DNS服务器无法同步
vim /var/named/ws.org.zone
$TTL 1D
@ IN SOA ns1 admin.ws.org. (
20221006; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ NS ns1
@ NS ns2
ns1 A 10.0.0.10
ns2 A 10.0.0.14 ;告诉从节点
www CNAME webserver
webserver A 10.0.0.11
webserver A 10.0.0.77
- 平滑重启
rndc reload
5. 安全加护配置
5.1 主DNS节点加护
- 只允许某个节点同步到我的主DNS服务器
- 达到的效果是除了 10.0.0.14 节点能抓取到数据,其它机器全部拒绝
vim /etc/named.conf
20 allow-transfer { 10.0.0.14; };
- 平滑重启生效
rndc reload
- 抓取测试
- 虽然其它机器不行,但是 10.0.0.14 节点还是白名单,可以抓取数据,如下解决
dig -t axfr ws.org @10.0.0.10
5.2 从节点加护
- 配置named.conf文件
- 所有的从节点都这么配置即可,主节点配置其中一台从即可
- 拒绝所有主机
vim /etc/named.conf
20 allow-transfer { none; };
- 平滑重启服务器
rndc reload
- 测试抓取
dig -t axfr www.ws.org @10.0.0.14
6. 子域
6.1 主DNS节点配置子域
vim /var/named/xier.org.zone
$TTL 1D
@ IN SOA ns1 admin.xier.org. (
20221006; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ NS ns1
@ NS ns2
sh NS ns3 ;子域配置
ns1 A 10.0.0.10
ns2 A 10.0.0.14
ns3 A 10.0.0.15
www CNAME webserver
webserver A 10.0.0.11
webserver A 10.0.0.77
- 平滑重启服务
rndc reload
6.2 子域服务器配置
- 安装服务
dnf install -y bind
- 启动服务
systemctl enable --now named
- 配置服务
vim /etc/named.conf
11 //listen-on port 53 { 127.0.0.1; };
19 //allow-query { localhost; };
20 allow-transfer { none; };
- 配置域文件
vim /etc/named.rfc1912.zones
zone "shanghai.xier.org" IN {
type master;
file "shanghai.xier.org.zone";
};
- 配置区域地位文件
vim /var/named/xier.org.zone
$TTL 1D
@ IN SOA ns1 admin.xier.org. (
20221006; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ NS ns1
ns1 A 10.0.0.15
www CNAME webserver
webserver A 10.0.0.66
- 更改属性
chgrp named /var/named/sh.xier.org.zone
- 重启服务
rndc reload
7. DNS转发(缓存)服务器
7.1 DNS转发
-
利用DNS转发,可以将用户的DNS请求,转发至指定的DNS服务器,而非默认的根DNS服务器,并将指定服务器查询的返回结果进行缓存,提高效率。
-
注意
- 被转发的服务器需要能够为请求者做递归,否则转发请求不予进行
- 在全局配置块中,关闭dnssec功能
dnssec-enable no; dnssec-validation no;
7.2 转发方式
7.2.1 全局转发
- 对非本机所负责解析区的请求,全转发给指定的服务器
- 全局模块中实现
- first:先转发到特点的DNS服务器,如果无法解析查询请求,则本服务器再去根服务器查询。大意是如果目标服务器没有,那么自己到互联网上找
- only:先转发至特定DNS服务器,如果无法解析查询请求,则本服务器不会再去根服务器查询。大意是如果目标服务器没有,那么就返回没有,不转了
vim /etc/named.conf
options {
forward first | only;
forwarders { ip };
};
7.2.2 局部转发
- 仅转发对特定的区域请求,比全局转发优先级高
vim /etc/named.rfc1912.zones
zone "ZONE_NAME" IN {
type forward;
forward first | only;
forwarders { ip };
};
8. ·智能DNS
8.1 bind中ACL技术
- acl:把一个或多个地址归并为一个集合,并通过一个统一的名称调用
- 注意:只能先定义后使用,因此一般定义在配置文件中,处于options的前面
- 格式:
acl acl_name {
ip;
net/prelen;
};
- 例子
acl acl_name {
192.168.100.0/21;
10.10.10.10;
};
8.2 bind四个内置的acl
- none:没有一个主机
- arry:任意主机
- localhost:本机
- localnet:本机的IP同掩码运算后得到的网络地址
8.3 访问控制的指令
- allow-query{}:允许查询的主机,白名单
- allow-transfer{}:允许区域传送的主机,白名单
- allow-recursion{}:允许递归的主机建议全局使用
- allow-update{}:允许更新区域数据库中的内容
8.4 view视图
- 将ACL和区域数据库实现对应关系,以实现智能DNS
- 一个bind服务器可以定义多个view,每个view中可定义一个或多个zone
- 每个view用来匹配一组客户端
- 多个view内可能需要对同一个区域进行解析,但使用不同的区域解析库文件
- 注意
- 一旦启用了view,所有的zone都只能定义在view中
- 仅在允许递归请求的客户端所在view中定义根区域
- 客户端请求到达时,是自上而下检查每个view所服务的客户端列表
9. 实战案例
准备三台服务器:10.0.0.6(beijingclient),10.0.0.7(shanghaiclient),10.0.0.8(dns)(
- 10.0.0.7节点再加一个地址
ip a add 172.16.0.7/16 dev eth0 label eth0:1
- 10.0.0.8节点再加一个地址
ip a a 172.16.0.8/16 dev eth0 label eth0:1
- 10.0.0.8节点安装DNS服务器
dnf install -y bind
9.1 修改DNS配置文件
vim /etc/named.conf
9 acl beijingnet {
10 10.0.0.0/24;
11 };
12
13 acl shanghainet {
14 172.16.0.0/16;
15 };
16
17 acl othernet {
18 any;
19 };
68 view beijingview {
69 match-clients { beijingnet; };
70 include "/etc/named.rfc1912.zones.bj";
71 };
72 view shanghaiview {
73 match-clients { shanghainet; };
74 include "/etc/named.rfc1912.zones.sh";
75 };
76 view otherview {
77 match-clients { othernet; };
78 include "/etc/named.rfc1912.zones.other";
79 };
63 /* zone "." IN {
64 type hint;
65 file "named.ca";
66 }; */
81 // include "/etc/named.rfc1912.zones";
9.2 添加view
vim /etc/named.rfc1912.zones
16 zone "." IN {
17 type hint;
18 file "named.ca";
19 };
9.3 添加区域数据库文件
- 拷贝修改北京区域文件
cp /etc/named.rfc1912.zones /etc/named.rfc1912.zones.bj
vim /etc/named.rfc1912.zones.bj
16 zone "xier.org" {
17 type master;
18 file "xier.org.zone.bj";
19 };
- 拷贝修改上海区域文件
cp /etc/named.rfc1912.zones.bj /etc/named.rfc1912.zones.sh
vim /etc/named.rfc1912.zones.sh
16 zone "xier.org" {
17 type master;
18 file "xier.org.zone.sh";
19 };
- 拷贝修改其它区域文件
cp /etc/named.rfc1912.zones.sh /etc/named.rfc1912.zones.other
vim /etc/named.rfc1912.zones.other
16 zone "xier.org" {
17 type master;
18 file "xier.org.zone.other";
19 };
9.4 建立数据库
- 建立bj数据库
cd /var/named/
vim xier.org.zone.bj
$TTL 1D
@ IN SOA ns1 admin.xier.org. ( 1 1d 1H 1w 1H )
NS ns1
ns1 A 10.0.0.8
WWW A 10.0.0.100
- 建立sh数据库
cp xier.org.zone.bj xier.org.zone.sh
vim xier.org.zone.sh
$TTL 1D
@ IN SOA ns1 admin.xier.org. ( 1 1d 1H 1w 1H )
NS ns1
ns1 A 10.0.0.8
WWW A 172.16.0.100
- 建立other数据库
cp xier.org.zone.sh xier.org.zone.other
vim xier.org.zone.other
$TTL 1D
@ IN SOA ns1 admin.xier.org. ( 1 1d 1H 1w 1H )
NS ns1
ns1 A 10.0.0.8
WWW A 127.0.0.1
- 更改组权限
chgrp named /etc/named.rfc1912.zones.bj
chgrp named /etc/named.rfc1912.zones.sh
chgrp named /etc/named.rfc1912.zones.other
- 重启
systemctl restart named
- 10.0.0.6测试
host www.xier.org 10.0.0.8
- 172.16.0.8测试
host www.xier.org 172.16.0.8
- 本机测试,也就是其它
host www.xier.org 127.0.0.1
10. 综合架构
- 总共八台机器
- 所有节点安装DNS服务
dnf install -y bind
10.1 web服务器部署
- 10.0.0.68
dnf install -y httpd; systemctl enable --now httpd; echo www.xieredu.com > /var/www/html/index.html
10.2 xieredu的DNS服务器
- 10.0.0.48 master
vim /var/named/xieredu.org.zone
11 //listen-on port 53 { 127.0.0.1; };
19 //allow-query { localhost; };
vim /etc/named.rfc1912.zones
'''
zone "xieredu.org" IN {
type master;
file "xieredu.org.zone";
};
'''
vim /var/named/xieredu.org.zone
$TTL 1D
@ IN SOA master admin.xieredu.org. ( 1 1D 1H 1W 2H )
NS master
NS slave
master A 10.0.0.48
slave A 10.0.0.58
www A 10.0.0.68
- 启动服务
systemctl start named
- 10.0.0.58 slave
vim /var/named/xieredu.org.zone
11 //listen-on port 53 { 127.0.0.1; };
19 //allow-query { localhost; };
vim /etc/named.rfc1912.zones
'''
zone "xieredu.org" {
type slave;
masters {10.0.0.48;};
file "slaves/xieredu.org.zone";
};
'''
- 启动服务
systemctl start named
- 查看同步文件是否已过来
ll /var/named/slaves/
10.3 根服务器子域
- 10.0.0.38
vim /var/named/xieredu.org.zone
11 //listen-on port 53 { 127.0.0.1; };
19 //allow-query { localhost; };
vim /etc/named.rfc1912.zones
'''
zone "org" IN {
type master;
file "org.zone";
};
'''
vim /var/named/org.zone
$TTL 1D
@ IN SOA master admin.xieredu.org. ( 1 1D 1H 1W 2H )
NS master
xieredu NS xieredudns1
xieredu NS xieredudns2
master A 10.0.0.38
xieredudns1 A 10.0.0.48
xieredudns2 A 10.0.0.58
- 启动服务器
systemctl restart named
- 测试是否能返回http服务的url
host www.xieredu.org @10.0.0.38
10.4 根服务器配置
- 10.0.0.28
vim /var/named/xieredu.org.zone
11 //listen-on port 53 { 127.0.0.1; };
19 //allow-query { localhost; };
52 zone "." IN {
53 type master;
54 file "root.zone";
55 };
vim /etc/root.zone
$TTL 1D
@ IN SOA master admin.xieredu.org ( 1 1D 2H 2H 1D )
NS master
NS orgdns
orgdns A 10.0.0.38
master A 10.0.0.28
vim /var/named/root.zone
$TTL 1D
@ IN SOA master admin.xieredu.org. ( 1 1D 2H 10M 2H )
NS master
org NS orgdns
master A 10.0.0.28
orgdns A 10.0.0.38
- DNS测试,从根服务器到org服务器再到xieredu.org服务器得到结果
host www.xieredu.org @10.0.0.38
10.5 转发DNS服务器
- 10.0.0.18
vim /var/named/xieredu.org.zone
11 //listen-on port 53 { 127.0.0.1; };
19 //allow-query { localhost; };
32 dnssec-enable no;
33 dnssec-validation no; 关闭安全验证
# 全部删除只留两行
vim /var/named/named.ca
. 518400 IN NS m.root-servers.net.
m.root-servers.net. 518400 IN A 10.0.0.28
- 重启服务
systemctl restart named
10.6 本地DNS服务器
- 10.0.0.8
- only:DNS有的域名返回,没有不返回
- first:DNS有的域名返回,没有的从互联网上找
vim /var/named/xieredu.org.zone
11 //listen-on port 53 { 127.0.0.1; };
19 //allow-query { localhost; };
20 forward only;
21 forwarders {10.0.0.18;};
35 dnssec-validation no;
- 启动服务
systemctl restart named
- DNS测试
host www.xieredu.org 10.0.0.8
root@client:~# curl www.xieredu.org
www.xieredu.com
标签:10.0,named,服务,zone,bind,vim,xier,DNS,org
From: https://www.cnblogs.com/wsxier/p/16760017.html