我们已经准备好了,你呢?

2024我们与您携手共赢,为您的企业形象保驾护航!

前言

该公司的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
本文链接:https://by928.com/6843.html     转载请注明出处和本文链接!请遵守 《网站协议》
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。

项目经理在线

我们已经准备好了,你呢?

2020我们与您携手共赢,为您的企业形象保驾护航!

在线客服
联系方式

热线电话

13761152229

上班时间

周一到周五

公司电话

二维码
微信
线