Ubuntu Linux DNS服务器 BIND9配置文件命令介绍
BIND9配置方法
配置语法
named.conf
acl | 定义访问控制列表 |
controls | 定义rndc命令使用的控制通道,若省略,则只允许经过rndc.key认证的127.0.0.1的rndc控制 |
include | 包含其他文件到配置文件 |
key | 定义用于TSIG的授权密钥 |
logging | 日志记录 |
lwres | 将named同时配置成一个轻量级的解析器 |
options | 定义全局选项 |
trusted-keys | 为服务器定义 DNSSEC 加密密钥 |
server | 设置每个服务器的特有选项 |
view | 定义域名空间的一个视图 |
zone | 定义一个区声明 |
注释
可以使用三种注释风格:
// C++ 风格
# shell 风格
include
建议使用绝对路径,如果使用相对路径,则是指相对 directory 选项指定的路径。 下面是我的debian系统named.conf文件中的一个include使用示例:
root@jianlee:~/lab/koji/koji# tail -1 /etc/bind/named.conf
include "/etc/bind/named.conf.local";
options
fedora10上bind的文件一个示例:
[root@dev3-57 demoCA]# sed -n -e '10,19p' /etc/named.conf
options {
listen-on port 53 { 127.0.0.1; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { localhost; };
recursion yes;
};
options 中一般选项的含义:
directory "路径"
定义服务器区数据库文件的工作目录,配置文件中使用的所 有相对路径都是一个这个目录为基目录。
notify yes/no
如 named 是主服务器,当区数据库变化时将自动通知相应区的 从服务器,默认为yes。
recursion yes/no
是否使用递归式 DNS 服务器,默认为yes。
transfer-format one-answer/many-anser
设置从主服务器向从服务器复制数 据的方式,使用在主域名服务器上,是否允许在一条消息中放入多条应答信息, 默认值为 many-answer
forwarders {IPaddrs}
设置全局转发器,列出要用作转发器的服务器 IP 地址
forward only/first
若值为 only,则服务器缓存数据并查询转发器,但从不 查询其他的任何服务器,若转发器不能响应查询则查询失败;若值为 first,则 在转发查询失败或没有查到结果时,会在本地发起正常查询。默认为 first
zone
root@jianlee:~/lab/koji/koji# sed -n -e '20,23p' /etc/bind/named.conf
zone "localhost" {
type master;
file "/etc/bind/db.local";
};
type master/slave/hint/forward
说明一个区的类型。master指示此区为主域 名服务器;slave指示此区为辅助域名服务器;hint指示此区为根服务器的线 索;forward指示此区为转发区。
file "文件名"
指出此区的域信息数据库文件名
DNS 数据库
一个域的 DNS 数据库是由这个域的主域名服务器的管理员所维护的文本文件的集 合。这些文件经常被称为区文件,区文件定义了一个区的域名信息。每个区文件都 是由若干个资源记录(RR,resource records)和分析器指令所组成。
资源记录
标志资源记录格式 :
[name] [ttl] [class] type data
各个字段之间由空格或制表符分割,字段可以包含下面特殊字符:
; | 注释 |
@ | 表示当前域 |
() | 允许数据夸行,通常用于 SOA 记录 |
* | 仅用于 name 字符的通配符 |
name
name 字段说明资源记录引用的对象名,可以是一台单独的主机也可以是个域名。
- 对象名可以是相对域名或全域名,全域名应该以“.”结束
- 若几条连续的 RR 记录涉及同一个对象名,则第一条 RR 记录后的 RR 记录可以 省略对象名
- 若出现字段名字段,则必须出现在第一个字段
关于相对域名和全域名:
举例来说,在 ubuntu.org.cn 域中,相对域名 osmond 与全域名 osmond.ubuntu.org.cn. 等效;而 osmond.ubuntu.org.cn 由于没有以“.”结 尾,被认为是一个相对域名,与其等效的全域名为 osmond.ubuntu.org.cn.ubuntu.org.cn.。因此在书写对象名时要特别小心。
ttl (time to live)
它以秒为单位定义该资源记录中的信息存放在高速缓存中的时间长度。通常省略该 字段,而使用位于文件开始处的 $TTL 语句所指定值。
class
class 字段用于指定网络类型,可选的值有:IN、CH 和 HS,其中 IN (Internet)是广泛使用的一种。虽然 IN 是该字段的默认值,但通常我们会显示 地指出。
type
type 字段用于说明 RR 的类型。常用的 RR 类型如下:
1 区记录
SOA (Start Of Authority) | SOA 记录标示一个授权区定义的开始。SOA 记录后的所有信息是控制这个区的 |
NS (Name Server) | 标识区的域名服务器以及授权子域 |
2 基本记录
A (Address) | 用于将主机名转换为 IP 地址,任何一个主机都只能有一个 A记录 |
PTR (PoinTeR) | 将地址转换为主机名 |
MX (Mail eXchanger) | 邮件交换记录。控制邮件的路由 |
3 安全记录
KEY (Public Key) | 储存一个关于DNS 名称的公钥 |
NXT (Next) | 与 DNSSEC 一起使用,用于指出一个特定名称不在域中 |
SIG (Signatrue) | 指出带签名和身份认证的区信息,细节见 RFC 2535 |
4 可选记录
CNAME (Canonical NAME) | 给定主机的别名,主机的规范名在A记录中给出 |
SRV (Services) | 指出知名网络服务的信息 |
TXT (Text) | 注释或非关键的信息 |
RR的顺序:
- SOA RR 应该放在最前面
- 通常 NS RR 紧跟在 SOA RR 之后
- 其他记录的顺序无关紧要
data
取决于RR的类型
常用的资源记录
SOA 开始一个区
基本格式:
zone IN SOA Hostname Contact (
SerialNumber
Refresh
Retry
Expire
Minimum )
Hostname
存放本 Zone 的域名服务器的主机名
Contact
管理域的管理员的邮件地址
SerialNumber
本区配置数据的序列号,用于从服务器判断何时获取最新的区数据
Refresh
辅助域名服务器多长时间更新数据库
Retry
若辅助域名服务器更新数据失败,多长时间再试
Expire
若辅助域名服务器无法从主服务器上更新数据,原有的数据何时失效
Minimum
设置被缓存的否定回答的存活时间
jamond.net. IN SOA ubuntu.jamond.net. root.ubuntu.jamond.net. (
2006063000 ;序列号
3H ;3小时后刷新
15M ;15分钟后重试
1W ;1星期后过期
1D ) ;否定缓存TTL为1天
- 对 Contact 来说,因为“@”在文件中有特殊含义,所以邮件地址 root@ubuntu.jamond.net 写为 root.ubuntu.jamond.net.
- 对 SerialNumber 来说,它可以是 32 位的任何整数,每当更新区文件时都应该 增加此序列号的值,否则 named 将不会把区的更新数据传送到从服务器
- 缓存时间字段 Refresh、Retry、Expire、Minimum 可以使用时间单位字符 m、 h、d、w 分别表示分钟、小时、天、星期。
- 各个缓存时间字段的经验值为
- Refresh — 1 到 6 小时
- Retry — 20 到 60 分钟
- Expire — 1 周 到 1 月
- Minimum — 1 到 3 小时
- Minimum 设置被缓存的否定回答的存活时间,而肯定回答(即真实记录)的默认 值是在区文件开始处用 $TTL 语句设置的。
NS 标识一个区的权威服务器
包括主服务器和从服务器,并将子域授权赋予其他服务器,格式:
zone [ttl] IN NS hostname
示例:
jamond.net. IN NS ubuntu.jamond.net. ;指定 jamond.net. 的主服务器
jamond.net. IN NS dapper.jamond.net. ;指定 jamond.net. 的从服务器
osmond.jamond.net. IN NS ubuntu.osmond.jamond.net. ;指定委派域 osmond.jamond.net. 的主服务器
osmond.jamond.net. IN NS dapper.osmond.jamond.net. ;指定委派域 osmond.jamond.net. 的从服务器
若上面的记录紧跟在 SOA 记录后,也可以写成如下的形式:
IN NS ubuntu.jamond.net. ;指定 jamond.net. 的主服务器
IN NS dapper.jamond.net. ;指定 jamond.net. 的从服务器
osmond IN NS ubuntu.osmond.jamond.net. ;指定委派域 osmond.jamond.net. 的主服务器
osmond IN NS dapper.osmond.jamond.net. ;指定委派域 osmond.jamond.net. 的从服务器
A — DNS数据库的核心
提供主机名到IP地址的映射,格式为:
hostname [ttl] IN A IPAddress
举例:
ubuntu IN A 192.168.0.251
dapper IN A 192.168.0.252
ubuntu.osmond IN A 192.168.1.251
dapper.osmond IN A 192.168.1.252
PTR
PTR RR 提供了 IP 地址到主机名的映射。其格式为:
IPAddress [ttl] IN PTR hostname
例如: 在 168.192.in-addr.arpa 区中,前面的 ubuntu.jamond.net. 和 dapper.jamond.net. 所对应的 PTR 记录为
251.0 IN PTR ubuntu.jamond.net.
252.0 IN PTR dapper.jamond.net.
而在 0.168.192.in-addr.arpa 区中,前面的 ubuntu.jamond.net. 和 dapper.jamond.net. 所对应的 PTR 记录为
251 IN PTR ubuntu.jamond.net.
252 IN PTR dapper.jamond.net.
在 1.168.192.in-addr.arpa 区中,前面的 ubuntu.osmond.jamond.net. 和 dapper.osmond.jamond.net. 所对应的 PTR 记录为
251 IN PTR ubuntu.osmond.jamond.net.
252 IN PTR dapper.osmond.jamond.net.
在 PTR RR 中 hostname 应该使用全域名。例如 osmond.jamond.net 域的主机 ubuntu 应该写为 ubuntu.osmond.jamond.net. 。而 ubuntu.osmond.jamond.net 将被解析为 ubuntu.osmond.jamond.net.1.168.192.in-addr.arpa. 。
PTR RR 所提供的反向解析能够为任何对进入网络的请求进行认证的程序所使用,这 些程序包括:sshd、tcpd、sendmail、syslogd 等。
MX
MX RR 用于邮件系统实现邮件路由。有关电子邮件的更多介绍请参见 FIXME 。 其 格式为:
zone [ttl] IN MX preference host
其中 preference 是优先级字段,数值越小优先级越高。
例如:
jamond.net. IN MX 5 ubuntu.jamond.net.
jamond.net. IN MX 10 ubuntu.jamond.net.
CNAME
CNAME RR 用于设置主机的别名。 其格式为:
nikename [ttl] IN CNAME hostname
例如:
ubuntu IN A 192.168.0.251
www IN CNAME ubuntu
ftp IN CNAME ubuntu
文件内必须有规范名字的 A RR。
分析器指令
在区文件中还可以使用分析器指令,分析器指令可以为 RR 的输入提供方便。
- $ORIGIN — 设置默认域(或初始域)
- $TTL — 为没有定义精确的生存期的 RR 定义缺省的 TTL 值
实例
为其他机器提供DNS服务
默认bind9安装后都只监听127.0.0.1网络,即只为本机提供DNS服务,如果需要为局 域网其他机器提供DNS服务,可以修改 listen-on 语句:
options {
listen-on port 53 { 127.0.0.1;172.16.70.30; };
...
};
可以把 listen-on 注释掉,或者加上本机的外网 IP 。bind9在各个linux发行版安 装的路径不一样。
debian5.0 /etc/bind/named.conf /etc/bind/named.conf.options
fedora10 /etc/named.conf
其中fedora默认安装后,bind9只对本机提供DNS服务。debian5默认安装后可以为其 他机器提供DNS服务。debian5的bind9全局选项单独放在 /etc/bind/named.conf.options 文件中。
Ubuntu Linux DNS服务器 BIND9配置文件命令介绍的更多相关文章
- linux 查看服务器性能常用命令
一.top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器 下面详细介绍它的使用方法.top是一个动态显示过程,即可以通过用户按键来 ...
- 11.linux dns服务器建立和安装apache
dns服务器建立 1.安装bind建立dns服务器 yum install bind -y 2.安装好修改配置文件:vim /etc/named.conf 修改: listen-on ...
- linux日常服务器部署一些命令使用
今天公司的开发环境的linux服务器,我要了一个账号来玩玩 拿到账号和密码,我就用xshell登陆上去 1.查看已挂载的分区列表 df -h 显示已经挂载的分区列表 2.查看目录中的文件 ls 查看目 ...
- Linux 系统日志和系统信息常用命令介绍
日志文件 日 志 文 件 说 明 /var/log/message 系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一 /var/log/secure 与安全相关的日志信息 / ...
- Ubuntu/linux 有关权限修改的命令
chmod更改文件权限命令 最常用的基础命令chmod chmod 777 目录名(路径名) 777 三位数字分别代表 user.group.others 的权限,可读(r).可写(w).可执行(x ...
- Linux学习之01_基础命令介绍
初学Linux,还在摸索中,在这个过程中希望能记录下学习到的东西,参考的的书籍为<鸟哥的Linux私房菜> 在这里学到的主要命令有这几个: data cal bc man shutdown ...
- linux DNS 服务器 配置
1:named.conf 2:正向区域配置文件 3:反向域名解析文件
- Windows下使用命令行设置ip地址的DNS服务器
使用命令行或者编写bat批处理设置网络连接的IP地址以及DNS服务器地址有时候会比手动更加方便,IP地址和DNS的设置一般是配合的,常用到的几个状态是: 1.IP地址动态获取,DNS也动态 2.IP地 ...
- linux服务器管理常用命令
1.ps命令 (Processes Status) ps这个命令是查看系统进程,ps 是显示瞬间行程的状态,并不动态连续. ==============ps 的参数说明================ ...
随机推荐
- 一. MySQL基础语法
1. 案例库表 2. DQL语言(数据查询) 2.1 基础查询 -- 进入指定的库 USE myemployees; DESC employees; -- 使用SELECT查询字段 # 1.查询表中的 ...
- PTE 准备之 Read aloud
Read aloud A text appears on screen.Read the text aloud rext up tp 60 words varies by task, dependin ...
- FZU_1608 Huge Mission 【线段树区间更新】
一.题目 Huge Mission 二.分析 区间更新,用线段树的懒标记即可.需要注意的时,由于是在最后才查询的,没有必要每次更新都对$sum$进行求和.还有一点就是初始化的问题,一定记得线段树上每个 ...
- 如何让python脚本支持命令行参数--getopt和click模块
一.如何让python脚本支持命令行参数 1.使用click模块 如何使用这个模块,在我前面的博客已经写过了,可参考:https://www.cnblogs.com/Zzbj/p/11309130.h ...
- python-for表达式
for表达式用于其他区间,元组,列表等可迭代对象创建新的列表 [表达式 for 循环计数器 in 可迭代对象] for表达式与普通for循环的区别有两点 在for关键字之前定义一个表达式,该表达式通常 ...
- C++11多线程编程(常见面试题)
[题目1] 子线程循环 10 次,接着主线程循环 100 次,接着又回到子线程循环 10 次,接着再回到主线程又循环 100 次,如此循环50次,试写出代码 [题解] 首先我们来分析一下这道题...( ...
- 5、Spring教程之依赖注入
概念 依赖注入(Dependency Injection,DI). 依赖 : 指Bean对象的创建依赖于容器 . Bean对象的依赖资源 . 注入 : 指Bean对象所依赖的资源 , 由容器来设置和装 ...
- CentOS7使用NTP搭建时间同步服务器
前言 为什么要搭建时间同步服务器呢?场景是这样的. 我们有两台CentOS服务器,其中一台是可以连接外网的,下文中我们称它为A服务器,另一台不能连接外网,但是与A服务器在同一局域网中,下文中我们称它为 ...
- 第25 章 : Kubernetes 网络模型进阶
Kubernetes 网络模型进阶 本文将主要分享以下五个方面的内容: Kubernetes 网络模型来龙去脉 Pod 究竟如何上网? Service 究竟怎么工作? 啥?负载均衡还分内部外部? 思考 ...
- 远程拷贝文件--scp
scp [user@host1:]file1 [user@host2:]file2 将主机1下的某一路径下的文件拷贝到另一个主机下的某一路径 scp -r [user@host1:]d ...