前言
该公司的AP系统增加了IPv6功能。为了测试基于IPv6的域名发布规则,需要搭建支持IPv6的DNS服务器。
使用bind9配置DNS服务器并添加IPv6内容。本文使用bind9作为DNS服务器
参考:
(构建bind9)
(绑定官方文档)
注意:
1. 如果目标网站支持V4和v6地址,如果用户(访问目标网站的人)使用v4地址,则DNS返回V4地址。如果用户(访问目标网站的人)使用 v6 地址,DNS 将返回 V6 地址。
2、如果目标网站只支持v4地址,这种情况比较常见。
如果用户(访问目标网站的人)使用 v4 地址,DNS 将返回 V4 地址。如果用户(访问目标网站的人)使用的是 v6 地址,DNS 将返回可以执行 V6 到 V4 地址转换的网关地址。
1.BIND简介
BIND()是(DNS)协议的实现,提供了DNS主要功能的开放实现,包括
*域名服务器(已命名)
*DNS解析库函数
*用于调试DNS服务器运行的工具
它是由加州大学开发和维护的开源DNS服务器软件。根据ISC调查报告,BIND是全球最常用的域名服务系统。无论您的邮件服务器、WEB 服务器或其他服务器多么安全可靠,DNS 故障都会导致您的用户根本无法访问这些服务。
BIND也就是我们常说的命名。由于大多数网络应用程序都使用它的功能,许多BIND的弱点都被及时发现。主要分为三个版本:
v4:
1998 年,大多数 UNIX 都捆绑了 BIND4,目前已被大多数制造商放弃,只是仍在使用。核心觉得BIND8太复杂而且不安全,所以继续使用BIND4。因此,BIND8/9 的很多优点都没有包含在 v4 中。
v8:
它是当今使用最广泛的版本。详情请参考BIND8+域名服务器安全增强。
v9:
最新版本的BIND已经完全重写,是免费的(但由商业公司资助),并添加了许多新功能(但也可能有更多的安全问题)。 BIND9于2000年10月推出,当前稳定版本为9.3.2。
2.安装
目前有两种方法:源码安装和apt-get或rpm安装。
2.1 源码安装
源码获取地址:
解压
tar--9.2.6.tar.gz
包括以下子目录:bin(所有BIND二进制源代码,包括named)、(一些工具)、doc(BIND文档,包括资源手册)、lib(BIND使用的库的源代码)、make(文件)。
#./
编译BIND,输入:
#
安装绑定
#
2.2apt-get
易于-
三、配置文件说明 1、配置文件目录
通常位于/etc/bind/
2. 区域文件和资源记录
在介绍配置文件之前,需要先明确配置中的两个概念:zone和RR。
BIND 配置文件描述了域名服务器的所有属性以及 BIND 的行为和功能。
区域文件描述了域名服务器中包含的主机、提供的服务类型等信息。 BIND将区域文件中的信息加载到内存数据结构中并进行有效组织,然后为外部DNS请求提供验证和查询请求。需要注意的是,区域文件的格式不是由BIND指定的,而是由DNS标准文档指定的(参见)。通常,区域文件描述 DNS 服务器所服务的授权服务器域。例如,如果我有一个DNS服务器可以解析的域名,那么我可以在我的DNS服务器的配置文件中设置两个区域标记,一个描述域名信息,另一个描述域名信息。
资源记录记录了一个域的属性和特征()
3.配置文件介绍
name.conf:绑定主配置文件
name.conf.:全局选项
db.root:根服务器指向的文件,由.创建并维护。不需要修改,但需要定期更新。
db.local:转发区域文件,用于将名称转换为本地环回IP地址(127.0.0.1)
db.127:反向区域文件,用于将本地环回IP地址(127.0.0.1)转换为名称
命名.conf。一些配置选项
name.conf.-zones默认本地规则,包括跟随文件、正向区域文件、反向区域文件等。
named.conf.local:一般放置的区域
主配置文件/etc/named.conf的配置语句:
acl定义了IP地址的访问控制列表
定义ndc使用的控制通道
将其他文件包含到配置文件中
key 定义授权的安全密钥
定义要在日志中写入的内容以及写入位置
定义全局配置选项和默认值
定义远程服务器的特征
-keys 定义服务器的加密密钥
zone 定义一个区域
4.named.conf文件配置
name.conf是BIND唯一的主要配置文件。当然,你也可以自己编写主配置文件,但是在BIND主进程named启动时需要使用-c选项指定主配置文件的路径。 name.conf 由一个子句组成。每个子句都有一个标题,后跟一对大括号。大括号内是子句中的因子和值(具体参见下面的示例)。
以下代码是named.conf 的最小配置。假设named.conf只负责解析授权域名。
密钥由rndc-生成。
密钥“rndc-密钥”{
hmac-md5;
“新==”;
};
{
inet 127.0.0.1 端口 953
允许{127.0.0.1; }
键 {"rndc-key"; };
};
{
//域名文件存放的绝对路径
“/usr/local/named/var”;
//如果启动bind,会在/usr/local/named/var目录下自动生成named.pid文件。当文件打开时,它将是指定进程的 ID。
pid-文件“named.pid”;
};
区域"."IN {
//根域名服务器
类型提示;
//存放在//usr/local/named/var目录下,文件名为named.root
文件“named.root”;
};
//域的区域文件
区域""IN {
type ;//该域名服务器为主域名服务器。该选项主要用于主用和备用部署。
file".zone";//解析域名的zone文件内容,其路径在中指定
允许-{无; }; // 定义一个匹配列表,允许将动态更新发送到主区域文件
};
//逆向分析
区域“1.168.192.in-addr.arpa”在{
类型 ;
//存储反向解析后的文件
文件“.rev”;
允许-{无; };
};
在上面的代码中,
该子句定义了有关服务器控制通道的一些信息。控制通道是named提供的用于外部管理named服务器的接口。通常named监听本机953端口的控制信息;
允许表示允许本地机器上的rndc控制程序控制命名服务器。 除了指定IP地址外,还可以在acl中指定用户地址;
keys表示rndc控制named时需要携带的key。该密钥由 rndc-gen 生成并包含在named.conf 中。
接下来的选项包含一些全局状态描述。这些描述在所有区域文件和视图中都是可见的,但是如果在区域文件或视图中重新定义这些描述,其中的信息将被覆盖。上例中的 和 pid-file 的含义请参见代码注释。
4. 区域文件配置
.zone文件是用户自定义的,其示例内容如下:
$TTL 86400
$。
@ IN SOA ns1 根(
;
12小时;
7200;重试
;
86400;
NS。
NS。
MX 10。
ns1 在 A 192.168.10.1
www在192.168.10.10
在192.168.10.11中
邮件A 192.168.10.20
ljx IN A 192.168.10.30
FTP IN CNAME ljx
上述配置的意思是:
1)该区域有两台域名服务器,一台的IP地址为192.168.10.1,另一台(不在本域内);
2)该区域有一台邮件服务器,域名和IP地址为192.168.10.20;
3)该区域有两台外部万维网服务器,域名为192.168.10.10和192.168.10.11,IP地址为192.168.10.11;
4) 该区域有一个ftp服务器用于对外服务。域名为192.168.10.30,IP地址为192.168.10.30;
5)该区域内有一台主机,域名为192.168.10.30,IP地址也为192.168.10.30;
其中TTL等标签在BIND中称为指令。区域文件中的所有指令均以 $ 开头。这些指令主要用来表示区域文件中的一些控制信息。
$TTL指令表示其他DNS服务器中记录的某个资源的缓存时间(这个DNS服务器就是请求这个BIND的服务器,通常是本地dns)。在这段缓存时间内,本地dns(暂且这么认为,这里举个例子)将不再请求BIND,而是直接返回域名对应的IP地址。
$指令表示用于描述区域文件的域名()。
SOA(start of)资源记录:它定义了域的全局特征,必须是区域文件中出现的第一个资源记录,并且一个区域文件中只能有一个SOA资源记录。其中SOA后的ns1和root分别是域名服务器和管理员邮箱(),其全称是.和 分别。因为$指定了域名,所以这个地方可以省略。
NS(name) 资源记录:它定义了服务于该域 () 的名称服务器(在本例中)。请注意,外部名称服务器(示例中为 ns2)必须包含该区域的区域文件。
MX(邮件)资源记录:定义了本域中的邮件服务器。该资源记录是可选的,因为域不一定有邮件服务器。
A()资源记录:这是一个非常关键的记录。它定义了区域文件中提到的主机或服务的IPv4地址(IPv6地址称为AAAA记录),并且这些IPv4地址必须是外部可见的。例如,万维网服务器的 IPv4 地址是 192.168.10.10。
CNAME 记录:是定义了 IPv4 地址的主机的别名记录。通常用于将一项或多项服务分配给现有主机。示例中的主机既充当主机又充当 ftp 服务。从上面的分析可以看出,我们也可以使用CNAME,而无需为不同的服务指定相同的IP地址。但实际上,CNAME记录必须在两种情况下使用: 1)真实主机或别名主机位于不同的域中。我们不知道外域的IP地址,所以必须使用CNAME。例如,它是一个别名,但在域中无法得知的IP地址只能使用CNAME记录; 2)当用户想要访问某个站点时,我们需要有以下CNAME定义:
;定义已解析的 IP 地址
在A
;创建别名
www 在 A 中。
当然,上面的介绍只是一个最低限度的配置,但它已经包含了我们大多数情况下需要配置的选项。有关更多配置选项,请参阅:
4. 示例(可供实际测试)
测试域名:
测试ip:192.168.206.138主域名服务器
1.添加区域
在named.conf.local中添加
区””{
;
文件“/etc/bind/”;
允许查询{任意;};
允许-{任何;};
};
区域“206.168.192.in-addr.arpa”{
;
文件“/etc/bind/”;
};
2.创建数据库文件
文件名应与区域中的文件名相同
域名到ip
六
添加一些内容:
****************************************************** * **********************
;
$
$。
@.(
;
;
86400;重试
;
);
@
@.168.206.138
.168.206.138
.168.206.138
@IN NS ns2
@在AAAA 3ffe:321f:0000:07c2:0000:0000:0000:0001
ns2 在 AAAA 3ffe:321f:0000:07c2:0000:0000:0000:0001
www 在 AAAA 3ffe:321f:0000:07c2:0000:0000:0000:0001
****************************************************** * ******************
以上四行代码是支持ipv6功能的dns
使用命令 -=AAAA 0:0:0:0:0:0:0:1
可以测试一下是否有效。
IP转域名:
vi /etc/绑定/
添加一些内容
****************************************************** *****
$
@.(
;
;
86400;重试
;
);
@。
。
****************************************************** *****************
5. 开始
重新启动bind9
/etc/init.d/
查看启动日志文件
尾部/var/日志/
:43:[61378]:-键区:
:43:[61378]:zone0.in-addr.arpa/IN:
:43:[61378]:.in-addr.arpa/IN:
:43:[61378]:.in-addr.arpa/IN:
:43:[61378]:/输入:
:43:[61378]:/IN:01
:43:[61378]:
:43:[61378]:
:43:[61378]:/输入:()
从该日志中可以查看启动异常信息。
检查bind进程是否启动
ps-aux|
.00.8?Ssl22:430:00/usr/sbin/named-ubind
.00./11S+22:470:--颜色=
遇到的问题
1.rndc::127.0.0.1#953:
解决
2. 无法生成文件。
chown -Rbind 一个文件夹如chown-/etc/bind/
修改/etc/.conf文件。该文件用于设置 dns 服务器。修改为.0.0.1,表示使用本地dns服务。
6.设置日志启动日志
默认情况下,BIND 将日志消息写入 /var/log/
这些日志信息很少,主要是启动和关闭日志记录以及一些严重的错误信息。
详细日志
在named.conf中设置,可以将服务器的运行状态以及配置服务器的行为记录到日志文件中。
1.配置日志生成位置:
在named.conf中;表示日志配置信息统一放在named.conf中;日志的生成位置取决于named.conf中“/var/cache/bind”的设置。如果无法生成日志,请使用前面提到的 chown-Rbind。
2.配置日志生成信息
使用配置文件named.conf中的语句来自定义您需要的日志记录。语句的语法是:
{
; {
文件 ;;
;;
无效的;
;
;;
打印时间 ;;
打印- ;;
打印- ;;
};
; { ;; ... };
};
日志中有两个主要概念:()和()。通道指定日志数据应发送到哪里:是发送到、写入文件、发送到指定的标准错误输出,还是发送到位桶(bit)。类别指定需要记录哪些数据。下面我们主要介绍文件通道和类别。
在定义通道的语句中,指定了记录消息的级别。 Bind主要有以下几个级别(按照严重程度从高到低的顺序):
错误
信息
调试[级别]
定义级别后,系统会记录该级别以下的所有消息(包括该级别以及比该级别更严重的级别)。例如,如果级别定义为错误,则将记录信息和错误两个级别。一般情况下,我们可以记录到info级别。 print-time是设置是否需要在日志中写入时间,print-是设置是否需要在日志中写入消息级别,print-是设置是否需要在日志中写入日志类别日志。
该语句指定哪个类别的数据使用哪个或多个定义的通道。 bind9 中的类别有:
类别匹配未明确指定通道的所有类别,但不匹配不属于任何类别的消息。这些消息不属于任何类别,但属于下面列出的类别。
包括所有未明确分类的 BIND 消息。
处理客户请求。
配置文件分析和处理。
与BIND内部数据库相关的消息,用于存储区域数据和缓存记录。
处理签名的回复。
瘸-
发现授权不正确。
网络运营
异步区域更改通知。
查询日志
名称解析,包括处理来自解析器的递归查询。
认证/非认证请求。
动态更新事件。
移入
从远程名称服务器到本地名称服务器的区域传输。
传出
从本地名称服务器到远程名称服务器的区域传输。
例如,要记录消息,您可以按如下方式配置(只需将以下语句添加到named.conf中):
{
{
文件“query.log”3大小20m;
信息;
打印时间是;
打印-是;
};
{
;
};
};
这样,服务器就会在工作目录(语句指定的目录)下创建query.log文件,并将运行进程产生的消息写入到query.log文件中。另外解释一下“文件”query.log”3 size 20m 中“”和“size”的含义;”语句是指定允许文件同时存在多少个版本。例如,如果指定 3 个版本 (3),bind9 将保存 query.log、query.log0、query.log1 和 query.log2。
Size 是指定文件大小的上限。如果只设置了size而没有设置,则当文件达到指定的文件大小上限时,服务器将停止写入文件。如果设置,服务器将执行一个循环,例如将query.log更改为query.log1,将query.log1更改为query.log2等,然后创建新的query.log进行写入。
扫一扫在手机端查看
-
Tags : $ttl
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。