Ubuntu DNS 服务器搭建

DNS服务配置

环境

  • 服务器: VMware Ubuntu-server 20.04
  • 客户机: kali-2022
  • 测试网段: 192.168.0.0/24
  • 服务版本: bind9

配置讲解

1
2
3
4
5
6
7
8
9
10
11
12
13
14
bind  # /etc/bind目录位置
├── bind.keys # 密钥
├── db.ccu.edu # local中的对应zone配置
├── db.0
├── db.127
├── db.255
├── db.empty
├── db.local
├── named.conf # 服务总体配置
├── named.conf.default-zones # 默认zone配置
├── named.conf.local # 用户自定义zone配置
├── named.conf.options # 服务参数
├── rndc.key
└── zones.rfc1918

文件详解

一层一层来

named.conf

1
2
3
4
5
6
7
8
9
10
# 除去注释就这三行

include "/etc/bind/named.conf.options";
# 导入参数文件

include "/etc/bind/named.conf.local";
# 导入用户自定zone区域

include "/etc/bind/named.conf.default-zones";
# 默认zone区域配置

named.conf.options

1
2
3
4
5
6
7
8
9
10
# 去除注释后

options {
directory "/var/cache/bind";

dnssec-validation auto;

listen-on-v6 { any; };
};

就这三行, 自己查吧, 不用改, 也不用管

named.conf.local

本地用户自定义解析区域

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

//
// Do any local configuration here
// 翻译: 在这里做配置

// Consider adding the 1918 zones here, if they are not used in your
// 如果1918区域还没有被使用的话, 可以将1918区域解析加在这里
// organization
//include "/etc/bind/zones.rfc1918";

zone "ccu.edu" { // ccu.edu的区域配置
type master; // 类型
file "/etc/bind/db.ccu.edu"; // 配置位置
};

区域对应的配置文件(以db.ccu.edu为例)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
$TTL    604800

@ IN SOA ccu.edu. root.ccu.edu. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns.
;
sca IN A 192.168.1.12
scb IN A 192.168.1.13
scc IN A 192.168.1.14
  • 指令类配置

    • $TTL指令

      表示一个资源记录在其他DNS服务器中(这个DNS服务器是请求本BIND的服务器,一般情况下是local dns)的缓存时间,在这个缓存时间内,local dns不会再请求BIND,而是直接返回域名对应的IP地址

    • $ORIGIN指令

      表示该zone文件用来描述的域(domain)名称

  • 记录类配置

    • SOA(start of authority)资源记录:

      它定义了一个域的全局特性,必须是出现在zone文件中的第一个资源记录,而且一个zone文件中必须只有一个SOA资源记录。其中SOA后面的ns1与root分别是域名服务器和管理员邮箱

    • NS(name server)资源记录:

      它定义了为本域(domain)(这个例子中是cobb.com)服务的域名服务器。需要注意的是外部域名服务器(例子中的ns2)必须为zone ccu.edu包含一个zone文件

    • MX(mail exchanger)资源记录:

      它定义了本域中的邮件服务器。这个资源记录是可选的,因为一个域中不一定有邮件服务器。

    • A(Address)资源记录:

      这是个很关键的记录。它定义了zone文件中提到的主机或服务的IPv4地址(IPv6地址叫AAAA记录),而且这些IPv4地址必须是外部可见的。例如万维网服务器sca.ccu.edu的IPv4地址是192.168.0.12。

    • CNAME记录:

      是一个已经定义了IPv4地址的主机的别名记录。通常用来为已经存在的主机分配一个或多个服务

  • 时间参数配置

    • serial: 该序号作为slave与master更新的依据

    • refresh: 命令slave主动更新间隔时间

    • retry: refresh失败后重试的间隔时间

    • expire: 在失去连接后的expire time内, 如果无法重建连接, 则取消连接

    • minimun: 默认TTL数

注意事项

  1. 每个记录中必须有一条NS记录, 即使是一个无法访问的NS

  2. bind目录下的文件必须要给bind用户(有的叫named)用户可读权限

  3. 本地的resolve地址可能会变为127.0.0.53(很奇葩),
    可以手动修改/etc/resolved.conf或者直接在nslookup后面加上dns server ip

  • Copyrights © 2024 Cdog Shen
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信