debian配置BIND DNS服务器

ops/2024/10/20 11:52:04/
github-gist">

前言

局域网内有很多台主机,IP难以记忆。

而修改hosts文件又难以做到配置共享和统一,需要一台内网的DNS服务器

效果展示

这里添加了一个域名hello.dog,将其指向为192.168.1.100。

同时,外网的域名不会受到影响,优先使用内网域名。

注意:添加太多DNS服务器不好。即使靠前的DNS中找到了解析,仍然可能向靠后的DNS服务器发送解析请求,引起不必要的开销。

在这里插入图片描述

一、安装

apt install bind9

二、配置文件说明

配置文件位于/etc/bind

有两类文件,一种是:

  • name.conf
  • name.conf.default-zones
  • name.conf.options
  • name.conf.local

另一类是:

  • db.127
  • db.255

1. named.conf

这个配置文件是最主要的,可以看到它里面其实是引入了其他文件,把实现都转到其他地方了,感兴趣自己挨个看下。
在这里插入图片描述

named.conf是最基本的,引入的内容都可以直接写在这个文件里面。

举个例子,一个简单形式的的named.conf如下:

options {directory "/var/cache/bind";forwarders {8.8.8.8;114.114.114.114;};dnssec-validation auto;listen-on-v6 { any; };allow-query { any; };
};zone "dog" {type master;file "/etc/bind/db.dog";
};
zone "com" {type master;file "/etc/bind/db.com";
};
zone "net" {type master;file "/etc/bind/db.net";
};

其中options是配置项,然后是一些自定义的域。

forwarders很重要,它是你的下一级DNS域名,当你的本地中找不到记录时,会委托给它去查找,也就是递归查找。

2. db.XXX

里面定义了实际的域名和IP映射关系。

三、实例

举个例子,这里以为局域网配置一个顶级域名dog,以及一些子域名。

1. 添加dog顶级域名

vim /etc/bind/named.conf

在里面加上dog域名,并指定它的映射文件为/etc/bind/db.dog(可以用相对路径)。

zone "dog" {type master;file "/etc/bind/db.dog";
};

就像下面这样:
在这里插入图片描述

2. 配置映射文件db.dog

vim /etc/bind/db.dog

创建db.dog并写入映射条目:

$TTL	1h@	IN	SOA	dog. sixqaq.outlook.com. (2		;Serial3h		; Refresh after 3 hours1h		; Retry after 1hour100000	; Expire after 1 week1h		; Negative caching TTL of 1 hour)
@	IN	NS	localhost.
@	IN	A	192.168.1.104hello.dog.	IN	A	 192.168.1.100
world.dog.	IN	A	 192.168.1.104

(注意,域名结尾还有一个点,漏掉解析失败的,日志也会提醒)

这里的h后缀表示小时,也可以不要h后缀,单位是秒。

最需要关注的是TTL,可以改成0。

  • 刷新时间(Refresh):这个字段表示其他 DNS 服务器应该多久来重新获取该区域的 SOA 记录。单位是秒。
  • 重试时间(Retry):这个字段表示其他 DNS 服务器在刷新失败后应该等待多久来重试。单位是秒。
  • 过期时间(Expire):这个字段表示在这个时间之后,其他 DNS 服务器应该停止回答关于该区域的查询。单位是秒。
  • 最小 TTL(Minimum TTL):这个字段表示其他 DNS 服务器在缓存该区域的记录时应该使用的最小 TTL 值。单位是秒。

3. 关闭验证

vim /etc/bind/named.conf.options

dnssec-validation设为no,否则会用不了(因为要验证签名,感觉很麻烦,局域网自己用一下得了不会有问题的)。

内容如下:

options {directory "/var/cache/bind";forwarders {8.8.8.8;114.114.114.114;};c no;listen-on-v6 { any; };allow-query { any; };
};

4. 修改DNS

先启动我们的DNS服务器:

service named start
service named status

启动了最好看一下状态,如果有红色报错或黄色警告,说明有问题,用不了。

可以以本机为例验证,或者在用其他主机测试:

vim /etc/resolv.conf

修改DNS服务器

nameserver XXX.XXX.XXX.XXX

这里XXX是你的DNS所在的主机的IP,本机测试填127.0.0.1就可以。

最后,记得防火墙开放53号端口(TCP和UDP都要)。

NetworkManager会覆盖我们写在resolv.conf中的DNS配置,自己再改回去很麻烦,
解决方案见另一篇博客:解决NetworkManager覆盖/etc/resolv.conf的问题

四、DDNS

  • 待办

参考资料

  • [美]Cricket Liu.DNS与BIND第五版[M].人民邮电出版社
  • [美]W.Richard Stevens.TCP/IP详解 卷1:协议[M].机械工业出版社
  • 鸟哥的LInux私房菜-服务器假设篇[M].机械工业出版社
  • BIND 9 Administrator Reference Manual

  • linux的bind(DNS域名解析服务)搭建
  • ISC BIND9 - 最详细、最认真的从零开始的 BIND 9 - DNS服务搭建及其原理讲解 (Debian / Windows)

http://www.ppmy.cn/ops/22171.html

相关文章

计算机网络之传输层TCP\UDP协议

UDP协议 用户数据报协议UDP概述 UDP只在IP数据报服务之上增加了很少功能,即复用分用和差错检测功能 UDP的主要特点: UDP是无连接的,减少开销和发送数据之前的时延 UDP使用最大努力交付,即不保证可靠交付,可靠性由U…

大型网站系统架构演化实例_9.分布式服务

1. 第十阶段:分布式服务 随着业务拆分越来越小,存储系统越来越庞大,应用系统的整体复杂度呈指数级增加,部署维护越来越困难。由于所有应用要和所有数据库系统连接,在数万台服务器规模的网站中,这些连接的数…

Rapidly exploring Random Trees(RRT)类算法

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录前言Rapidly exploring Random Trees(RRT)类算法(1)基于采样的普通路径规划算法--RRT(Rapidly Exploring Random Tree)1.RRT图例2.RRT原理3.RRT伪代…

ai对我们生活的影响

AI(人工智能)已经逐渐渗透到我们生活的方方面面,产生了广泛而深远的影响。以下是AI对我们生活的一些主要影响: 工作效率提升:AI技术可以自动执行重复、繁琐或危险的任务,从而解放人力资源,提高…

Baumer工业相机堡盟工业相机如何通过NEOAPISDK查询和轮询相机设备事件函数(C#)

Baumer工业相机堡盟工业相机如何通过NEOAPISDK查询和轮询相机设备事件函数(C#) Baumer工业相机Baumer工业相机NEOAPI SDK和相机设备事件的技术背景Baumer工业相机通过NEOAPISDK在相机中查询和轮询相机设备事件函数功能1.引用合适的类文件2.通过NEOAPISDK…

如何解决pycharm创建项目报错 Error occurred when installing package ‘requests‘. Details.

🐯 如何解决PyCharm创建项目时的包安装错误:‘requests’ 🛠️ 文章目录 🐯 如何解决PyCharm创建项目时的包安装错误:requests 🛠️摘要引言正文📘 **问题分析**🚀 **更换Python版本…

Working with Design Patterns in Go (Golang)

introduction: 1、go及GoLand的下载安装: 安装包下载地址为:https://golang.org/dl/ 推荐使用国内地址:Go下载 - Go语言中文网 - Golang中文社区 2、Docker Docker允许开发中将应用、依赖、函数库、配置一起打包,形成可移植镜…

k8s Dashboard 运维维护记录

k8s Dashboard 运维维护记录 k8s Dashboard 运维维护记录 Q1:需要使用firefox浏览器访问 提示了证书错误NET::ERR_CERT_INVALID,原因是由于物理机的浏览器证书不可用 需要注意的是,若提示“连接不安全”的警告时,点击“高级”…