首页 > 其他分享 >DNS之bind服务

DNS之bind服务

时间:2022-10-07 16:44:06浏览次数:51  
标签:10.0 named 服务 zone bind vim xier DNS org

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

相关文章