如何在Ubuntu 14.04当中将Bind配置为仅权威DNS服务器

linux基本服务系列之智能DNS(三) 前言 上一期讲了利用bind+mysql的结合,打造一个数据库管理的一个DNS系统,从而能减少运维的维护量;这期再讲讲增加dns远程管理的功能和外部解析能力,可以进一步舒服的维护DNS系统。 rndc远程控制服务 1、在被管理的服务器上生成密钥 # cd /var/named/chroot/etc # rndc-confgen -a -b 128 -k mrndc-key -c mrndc.... 阅读详情

提供:ZStack云计算

系列教程

本教程为DNS管理介绍系列七篇中的第五篇。

内容介绍

DNS,或者称为域名系统,往往成为学习网站与服务器配置中的一大难点。尽管很多人都会使用由托管厂商或者域名注册商提供的DNS服务器,但建立自己的DNS服务器亦能带来诸多不容忽视的助益。

在本篇教程中,我们将探讨如何在Ubuntu 14.04当中安装Bind9 DNS服务器并将其配置为仅权威DNS服务器。作为示例,我们将立足于一套主-从配置为域名进行Bind服务器设置。

先决条件与目标

要完成今天的教程,大家首先应当熟知与DNS相关的各类术语。请参阅本篇教程以掌握下面将要使用的各项概念。

我们还需要拥有至少两台服务器。其一将作为“主”DNS服务器,这里将驻留有域名的区域文件; 其二为“从”服务器,其负责通过传输接收区域数据并能够在其它服务器发生故障时接替而上。这就使得我们的DNS服务器避免发生单点故障。

与缓存或正向DNS服务器或者多用途DNS服务器不同,仅权威服务器只对指向其自身作为权威的区域的查询做出响应。这意味着如果该服务器并不知晓响应答案,那么其将告知客户端(通常为某种解析DNS服务器)其不具备答案,并为对方提供可能知晓答案的服务器参考。

仅权威DNS服务器通常适用于高性能配置场景,这是因为它们不会因为对客户端的递归查询做出回应而造成资源负担。具体来讲,它们只针对其负责的区域。

在本示例中我们将实际使用三台服务器,除了之前提到的两台命名服务器,另外还有一台作为区域主机进行配置的Web服务器。

我们仍将使用example.com作为示例。大家可以将其替换为自己实际使用的域名。下面来看我们所须配置的各设备细节:

PurposeDNS FQDNIP Address

 Master name server ns1.example.com. 192.0.2.1

 Slave name server ns2.example.com. 192.0.2.2

 Web Server www.example.com. 192.0.2.3

在完成本教程之后,大家应该拥有两台面向域名区域配置完成的仅权威命名服务器。上表中的名称可用于访问各位的主机。在这套配置中,将有一台递归DNS服务器负责将域名相关数据返回至客户端。

在命名服务器上设定主机名称

在对命名服务器进行配置之前,我们必须要确保自己的主机名称在主、从两台DNS服务器上皆得到妥善配置。

首先对/etc/hosts文件进行编辑。以sudo权限将其在文本编辑器中打开:

sudo nano /etc/hosts

经过配置,此文件将正确包含每台服务器的主机名称与FQDN。对于主命名服务器,此文件的初始内容应如下所示:

127.0.0.1       localhost
127.0.1.1       ns1 ns1
. . .

我们应当修改其中第二行以引用自己的实际主机与域名,并将其指向我们的公共静态IP地址。在此之后,我们可以在结尾处添加不合格名称作为别名。在本示例的主服务器当中,大家可以将其第二行修改为:

127.0.0.1       localhost
192.0.2.1       ns1.example.com ns1
. . .

完成后保存并退出。

我们亦需要对/etc/hostname文件进行修改以包含不合格主机名称:

sudo nano /etc/hostname

ns1

利用以下命令使得当前所运行系统读取该值:

sudo hostname -F /etc/hostname

我们需要在自己的从服务器上完成同样的流程。

首先打开/etc/hosts文件:

sudo nano /etc/hosts

127.0.0.1       localhost
192.0.2.2       ns2.example.com ns2

完成后保存并退出。

接下来,修改/etc/hostname文件。请记住,只在该文件中使用实际主机名称(在本示例中为ns2):

sudo nano /etc/hostname

ns2

再次读取该文件以修改当前系统:

sudo hostname -F /etc/hostname

现在我们的服务器应该已经拥有正确的主机定义了。

在两台命名服务器上安装Bind

下面在两台命名服务器上安装之后要使用的Bind。

Ubuntu默认软件库中即提供Bind软件,因此我们只需要对本地软件包索引进行更新并利用apt命令加以安装即可。我们还需要安装说明文档及其它一些常用工具:

sudo apt-get update
sudo apt-get install bind9 bind9utils bind9-doc

在主、从DNS服务器上运行以上安装命令以获取对应文件。

配置主Bind服务器

现在我们已经完成了软件安装,接下来可以在主服务器上配置DNS服务器了。

配置options文件

第一步从配置named.conf.options文件开始。

Bind DNS服务器亦被称为named。此主配置文件位于/etc/bind/named.conf处。该文件负责调用我们下面将要具体配置的其它文件。

打开此options文件:

sudo nano /etc/bind/named.conf.options

以下所示已经去掉了大部分注释内容,但安装后的文件主体仍然得到完整保留:

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

    dnssec-validation auto;

    auth-nxdomain no;    # conform to RFC1035
    listen-on-v6 { any; };
};

对此文件进行配置的主要目的就是实现递归。由于我们需要设置一套仅权威服务器,因此我们当然不希望在此服务器上启用递归机制。我们可以在options block当中将其关闭。

我们也可以利用默认方式禁用传输。我们之后会利用特定区域指定对其进行覆盖:

options {
    directory "/var/cache/bind";
    recursion no;allow-transfer { none; };

    dnssec-validation auto;

    auth-nxdomain no;    # conform to RFC1035
    listen-on-v6 { any; };
};

完成后保存并退出。

配置local文件

接下来,我们需要指定用于控制此服务器的区域。所谓区域,是指域中的特定部分,其被委托管理某套尚未被子委托至其它服务器的命名服务器。

现在我们要配置的是example.com域,而且我们不需要将该域中的任何部分委托给其它服务器,因此此区域将涵盖我们的整个域。

要对我们的区域进行配置,需要以sudo权限打开/etc/bind/named.conf.local文件:

sudo nano /etc/bind/named.conf.local

此文件除了注释之外没有任何实际内容。出于常规管理的目的,我们的服务器还知晓其它一些区域,但这里要谈的是在named.conf.default-zones文件内进行指定的区域。

我们首先需要配置example.com域的正向区域。正向区域即传统的名称到IP地址解析机制,也就是大多数人所说的DNS。我们创建一个配置block,负责定义我们需要配置的域名区域:

zone "example.com" {
};

在此block当中,我们添加与此区域相关的管理信息。我们需要为此DNS服务器与区域指定关系。在本示例中为“master”,这是因为我们正在配置的这台设备为此区域中的主命名服务器。我们还需要将Bind指向至此文件,因为后者中包含有用于定义此区域的实际资源记录。

接下来我们将父区域文件保存在Bind配置目录中的zones子目录当中。我们将此文件命名为db.example.com,以便于Bind目录内的其它区域文件调用。我们的block将如下所示:

zone "example.com" {
type master;
file "/etc/bind/zones/db.example.com";
};

我们希望允许此区域被传输至从服务器,因此需要在其中添加这样一行:

zone "example.com" {
type master;
file "/etc/bind/zones/db.example.com";
allow-transfer { 192.0.2.2; };
};

下面,我们开始为自己的域名定义反向区域。

反向区域概述

如果为我们提供IP地址的服务商并没有提供网络范围,并将范围指定工作交由我们自己负责,那么我们的反向区域文件将无法被引用,而是由服务商自行处理。

如果大家选择了托管供应商,那么反向映射通常由对应公司负责。举例来说,在DigitalOcean中,客户服务器的反向映射将会在用户将设备FQDN设定为控制面板内服务器名称的同时自动生成。本示例中的反向映射则可通过以下方式命名服务器来创建:

在本示例中,由于我们还没有为管理员分配地址块,因此需要首先完成对应的策略设置。以下所示策略已经补充完整,如果大家经过委托能够控制范围较大的连续地址,则可直接使用该策略。

反向区域用于将一条IP地址回连至一项域名。不过,域名系统本身的初始设计目的在于正向映射,因此我们需要想办法适应这种反向映射。

要理解反向映射,大家首先需要牢记以下几点:

  • 在域名当中,最具体的地址位于左侧位置。而对于IP地址,最具体的部分位于右侧位置。
  • 域名当中最具体的部分要么是子域名、要么是主机名称,其被定义于该域名的区域文件当中。
  • 反过来,每个子域名亦能够定义更多子域名或者主机。

全部反向区域映射都被定义于特定域名in-addr.arpa之下,其则由互联网编号分配机构(简称IANA)负责控制。在此域名下存在一套树状结构,其利用子域名映射单一IP地址中的每个八位字节。为了确保该IP地址准确映射正常域名,IP地址中的各八位字节实际上都是反向的。

因此在IP地址为192.0.2.1时,我们的主DNS服务器将被翻转读为1.2.0.192。而在我们将此主机指定添加至in-addr.arpa域下的现有结构中时,此特定主机即被引用为1.2.0.192.in-addr.arpa。

由于我们在使用DNS时会在区域文件之内进行个别主机定义(例如之前提到的‘1’主机),因此我们需要配置的区域即为2.0.192.in-addr.arpa。如果大家的网络供应商为各位提供一条/24地址块,例如102.0.2.0/24,则意味着其将此in-addr.arpa部分委托给了我们。

现在大家已经了解如何指定反向区域名称了,其具体定义与正向区域完全一致。在example.com区域定义当中,请大家为自己的网络创建一个反向区域。再次强调,如果大家被委托控制一套地址块,那么上述操作将是非常必要的:

zone "2.0.192.in-addr.arpa" {
type master;
file "/etc/bind/zones/db.192.0.2";
};

我们已经将文件名称设定为db.192.0.2,其直接指向加以配置的区域且较反向方式更具可读性。

完成后保存并退出。

创建正向区域文件

我们已经告知Bind我们的正向与反向区域了,但还没有创建负责定义这些区域的文件。

大家应该还记得,我们之前曾将文件位置指定在名为zones的子目录当中。下面创建该目录:

sudo mkdir /etc/bind/zones

现在我们可以使用Bind目录中的部分模板区域文件作为创建基础了。对于正向区域而言,db.local文件比较符合我们的需求。将该文件复制至zones子目录当中,文件名则改为named.conf.local。

sudo cp /etc/bind/db.local /etc/bind/zones/db.example.com

与此同时,我们可以为反向区域复制另一个模板文件。这里使用db.127文件:

sudo cp /etc/bind/db.127 /etc/bind/zones/db.192.0.2

现在,利用sudo权限在编辑器中打开该正向区域文件:

sudo nano /etc/bind/zones/db.example.com

文件内容如下:

$TTL    604800
@       IN      SOA     localhost. root.localhost. (
                          2         ; Serial
                     604800         ; Refresh
                      86400         ; Retry
                    2419200         ; Expire
                     604800 )       ; Negative Cache TTL
;
@       IN      NS      localhost.
@       IN      A       127.0.0.1
@       IN      AAAA    ::1

我们首先需要修改其SOA(即起始授权)记录,即以“@”开头一直到右括号部分的内容。

我们需要将其中的localhost.替换为本设备的FQDN名称。这部分记录用于定义任何将以权威方式作出响应的命名服务器,也就是我们目前正在配置的设备,ns1.example.com。(请注意,结尾处的‘.’。这一点对于顺利完成注册非常重要。)

我们还希望变更下一部分,即利用“.”替换“@”以构成特殊的邮件地址格式。我们希望将邮件发送至此域中的管理员处,因此这里选择较为传统的命名方式——admin@example.com。经过翻译,其新格式将为admin.exapmle.com.:

@       IN      SOA     ns1.example.com. admin.example.com. (

下面是编辑其序列号。序列号的值用于告知Bind是否需要向从服务器发送更新后的信息。

注意:用户常常由于忘记对该序列号进行增量而导致区域更新出现错误。每次进行编辑之后,大家都必须增加该序列号。

一种较为常见的作法是利用约定对该序列号进行增量。例如利用YYYYMMDD(日期格式)作为序列号,从而保证后添加的修改永远具备大于此前版本的序列号。初次修订发生在2014年6月5号,则其序列号为2014060501,而当天晚些时候的修订则被编号为2014060502,这一数字最长可达十位。

需要使用约定能够实现良好的易用性,但为了保证本示例易于理解,我们直接将序列号设定为5:

@       IN      SOA     ns1.example.com. admin.example.com. (
                          5         ; Serial

接下来,我们可以直接删除文件中的最后三行(即最下方以‘@’开头的部分),添加自己需要的内容。

首先在SOA记录之后添加用于此区域的命名服务器。我们指定该域名,而后是两台作为区域权威的命名服务器。由于这些命名服务器将在域内作为主机存在,因此会有点自我引用的意思。

在本示例中,修改后的内容如下所示。再次强调,在结尾处添加“.”:

; Name servers
example.com.    IN      NS      ns1.example.com.
example.com.    IN      NS      ns2.example.com.

由于区域文件的作用主要是将主机名称与服务映射至特定地址,因此到这里我们的工作还没有完成。任何读取此区域文件的软件都需要了解ns1与ns2服务器的具体位置,从而访问这两个权威区域。

所以,我们需要创建一条A记录,旨在将这些命名服务器名称与命名服务器的实际IP地址关联起来:

; A records for name servers
ns1             IN      A       192.0.2.1
ns2             IN      A       192.0.2.2

现在我们已经拥有一条A记录,其能够将我们的命名服务器解析至正确的IP地址。当然,我们也可以添加其它一些记录。请记住,我们的主机中还有一台Web服务器,专门用于支撑实际站点。因此我们需要将访问通用域名(在此次示例中为example.com)的请求外加指向www主机的请求指向该主机。具体如下:

; Other A records
@               IN      A       192.0.2.3
www             IN      A       192.0.2.3

大家也可以创建更多A记录以添加其它必要的主机定义。请参阅DNS基础指南一文以了解如何创建其它记录。

完成后,文件内容如下所示:

$TTL    604800
@       IN      SOA     ns1.example.com. admin.example.com. (
                          5         ; Serial
                     604800         ; Refresh
                      86400         ; Retry
                    2419200         ; Expire
                     604800 )       ; Negative Cache TTL
;

; Name servers
example.com.    IN      NS      ns1.example.com.
example.com.    IN      NS      ns2.example.com.

; A records for name servers
ns1             IN      A       192.0.2.1
ns2             IN      A       192.0.2.2

; Other A records
@               IN      A       192.0.2.3
www             IN      A       192.0.2.3

完成后保存并退出。

创建反向区域文件

现在,我们已经配置了正向区域,但还需要设置反向区域文件。在上一章开头,我们已经创建了该文件。

以sudo权限打开该文件:

sudo nano db.192.0.2

文件内容如下所示:

$TTL    604800
@       IN      SOA     localhost. root.localhost. (
                          1         ; Serial
                     604800         ; Refresh
                      86400         ; Retry
                    2419200         ; Expire
                     604800 )       ; Negative Cache TTL
;
@       IN      NS      localhost.
1.0.0   IN      PTR     localhost.

我们将通过与正向区域基本相同的方式进行设置。首先调整域名、管理员邮箱以及序列号,保证其与上一文件中的内容相匹配(序列号可以有所区别,但必须进行增量):

@       IN      SOA     example.com. admin.example.com. (
                          5         ; Serial

同样,删除右括号之前的SOA记录。我们将取每条IP地址的最后八位字节并利用PTR记录将其映射回主机的FQDN。每条IP地址都只应包含一条PTR记录,从而避免给某些软件造成运行问题——因此,大家必须选定反向映射所指向的目标主机名称。

举例来说,如果大家设置一台邮件服务器,则可能希望通过设置将其反向映射至邮件名称,因为大多数系统都会使用反向映射来验证发件地址。

首先,我们需要再次设定命名服务器:

; Name servers
    IN      NS      ns1.example.com.
    IN      NS      ns2.example.com.

接下来,大家将引用IP地址的最后八个字节并将春指向希望返回的合格域名。在本示例中,我们将使用:

; PTR Records
1       IN      PTR      ns1.example.com.
2       IN      PTR      ns2.example.com.
3       IN      PTR      www.example.com.

完成后,文件内容应如下所示:

$TTL    604800
@       IN      SOA     example.com. admin.example.com. (
                          5         ; Serial
                     604800         ; Refresh
                      86400         ; Retry
                    2419200         ; Expire
                     604800 )       ; Negative Cache TTL
;

; Name servers
    IN      NS      ns1.example.com.
    IN      NS      ns2.example.com.

; PTR records
1       IN      PTR      ns1.example.com.
2       IN      PTR      ns2.example.com.
3       IN      PTR      www.example.com.

完成后保存并退出。

测试文件并重启服务

主服务器的配置工作现在已经完成,但我们还需要进行其它一些变更。

在重启服务之前,我们应当测试全部配置文件以确保其配置正确。另外,还有多款工具能够帮助我们对其文件中的语法加以检查。

首先,我们使用named-checkconf命令对named.conf.local与named.conf.options文件进行检查。由于这两个文件皆源自named.conf模板文件,因此我们的检查重点应为修改内容的语法。

sudo named-checkconf

如果没有返回任何信息,则意味着named.conf.local与named.conf.options文件不存在语法错误。

接下来使用named-checkzone命令检查区域处理与区域文件位置。在本示例中,具体命令如下:

sudo named-checkzone example.com /etc/bind/zones/db.example.com

如果文件中不存在问题,则输出结果应显示正确的序列号及“OK”信息:

zone example.com/IN: loaded serial 5
OK

如果显示的是其它信息,则意味着大家的区域文件出了问题。一般来讲,这部分信息通常会描述那些无效部分。

大家可以传递in-addr.arpa地址与文件名称以检查反向区域是否正常。在本示例中,具体命令如下:

sudo named-checkzone 2.0.192.in-addr.arpa /etc/bind/zones/db.192.0.2

同样,输出结果应返回正确的序列号:

zone 2.0.192.in-addr.arpa/IN: loaded serial 5
OK

全部文件检查完毕后,接下来重启Bind服务:

sudo service bind9 restart

通过以下命令检查日志:

sudo tail -f /var/log/syslog

认真阅读日志以确保一切运作正常。

配置从Bind服务器

现在主服务器已经配置完成,接下来是设置从服务器。具体操作难度要远低于主服务器。

配置options文件

首先还是从named.conf.options文件开始。以sudo权限将其打开:

sudo nano /etc/bind/named.conf.options

文件内容修改与主服务器完全一致。

options {
    directory "/var/cache/bind";
    recursion no;allow-transfer { none; };

    dnssec-validation auto;

    auth-nxdomain no;    # conform to RFC1035
    listen-on-v6 { any; };
};

完成后保存并退出。

配置local配置文件

下面在从服务器上配置named.conf.local文件。以sudo权限将其打开:

sudo nano /etc/bind/named.conf.local

在这里,我们将创建与主服务器一样的各区域指定。不过,具体取值与某些参数则有所区别。

首先处理正向区域。与主服务器文件一样:

zone "example.com" {
};

这一次我们将type设置为“slave”,因为此服务器为区域中的从服务器。这意味着其通过传输获取区域文件,而非直接从本地系统获取。另外,我们只需要指定相对文件名,而非指向区域文件的绝对路径。

之所以这样做,是因为对于从区域而言,Bind会将文件存储至/var/cache/bind。Bind已经完成了查看此目录位置的配置,因此我们不再需要指定该路径。

从服务器上的正向区域细节内容如下:

zone "example.com" {
type slave;
file "db.example.com";
};

最后,我们不再使用allow-transfer指令,而是为此从服务器指定获取传输结果的来源主服务器IP地址。我们可以使用master命令实现:

zone "example.com" {
type slave;
file "db.example.com";
masters { 192.0.2.1; };
};

到这里,正向区域指定就配置完成了。我们可以使用同样的格式处理反向区域指定:

zone "2.0.192.in-addr.arpa" {
type slave;
file "db.192.0.2";
masters { 192.0.2.1; };
};

完成后保存并退出。

测试文件并重启服务

我们在从服务器上并不需要真正创建任何区域文件,因为正如之前所言,该服务器将从主服务器处接收区域文件。因此下面直接进行测试。

同样对配置文件语法进行检查。由于我们不需要检查区域文件,因此只使用named-checkconf工具即可:

sudo named-checkconf

如果返回结果没有错误,则意味着对文件内容的修改中不存在语法错误。

在这种情况下,大家可以重启Bind服务:

sudo service bind9 restart

使用以下命令检查主、从服务器日志:

sudo tail -f /var/log/syslog

显示条目应该表明各区域文件都能够正常传输。

为命名服务器委派权威

我们的仅权威命名服务器现在已经配置完成。不过,大家仍然需要为域名进行命名服务器权威委派。

要完成这项工作,大家需要前往购买域名的网站。界面与终端的具体形式可能取决于实际域名注册商。

在域名设置中,找到对应选项以指定想要使用的命名服务器。由于我们的命名服务器存在于我们的域当中,因此这可以算是一种特例。

注册商并不会直接使用NS记录对区域进行权威委派,相反其会创建一条glue记录。所谓glue记录其实是一种特殊的A记录,专门用于将IP地址指定至被委派权威的命名服务器。

一般来讲,委派只会列出命名服务器需要处理的域名权威。但当命名服务器处于域当中时,位于父区域中的命名服务器还需要一条A记录。如若不然,DNS解析会陷入循环——因为其永远无法根据委派路径找到域名命名服务器的IP地址。

因此大家需要找到域名注册商控制面板中的对应部分,并在这里指定命名服务器以及它们的IP地址。

作为示范,注册商 Namecheap提供两种不同的命名服务器实现方式。

其一被称为“命名服务器注册”,允许大家对域内的命名服务器指定IP地址:

在这里,大家可以输入该命名服务器的IP地址:

系统会创建一条A记录,并作为父区域文件内所需要的glue记录。

完成之后,大家应该可以将实际命名服务器变更为自己的域服务器。在NameCheap当中,其提供“域名服务器设置”菜单选项:

在这里,大家可以填写自己要求站点作为权威服务器使用的命名服务器:

变更可能需要一段时间方可生效,一般来说大多数注册商会在未来24到48小时中完成更新。

总结

现在大家已经拥有两台配置完成的仅权威DNS服务器了。它们亦可存储大家购买的更多其它域名的区域信息。

自行配置并管理DNS服务器能够保证大家对DNS记录的处理方式拥有绝对掌控权。大家可以做出变更,同时确保全部相关DNS数据片段都与来源保持同步更新。虽然其它DNS解决方案也许能够进一步简化上述工作,但本教程的核心在于帮助大家了解整套体系的运作方式——这一点显然是那些打包方案所无法实现的。

本文来源自DigitalOcean Community。英文原文:How To Configure Bind as an Authoritative-Only DNS Server on Ubuntu 14.04 By Justin Ellingwood

翻译:diradw

BIND权威DNS服务器配置与工业场景安全加固 权威DNS服务器是网络基础设施中实现确定性域名解析的核心组件,其原理在于仅响应所管理区域内的查询请求,不执行递归、不缓存外部响应、不开放区域传输,从而大幅收敛攻击面。该模式在工业控制系统、医疗内网、金融隔离网段等对可控性与可审计性要求极高的场景中具有不可替代的技术价值。结合BIND这一成熟开源实现,通过禁用递归(recursion no)、限制查询源(allow-query)、隐藏版本信息、严格校验区域文件等手段,可构建轻量、稳定、符合最小权限原则的本地解析服务。本文聚焦于老旧系统(如Ubuntu 14.0 阅读详情

相关推荐

Ubuntu 14.04下PowerDNS+MariaDB权威DNS部署指南

权威DNS服务器是互联网基础设施的核心组件,其核心特征是直接响应已知域名的解析请求,不进行递归查询。PowerDNS通过后端解耦架构,将协议处理与数据存储分离,支持MySQL/MariaDB等关系型数据库作为数据源;MariaDB凭借高兼容性、低延迟OLTP性能及完善审计能力,成为老旧LTS系统中DNS数据中枢的理想选型。该技术组合具备可自动化管理、可审计日志、主从复制容灾等关键工程价值,广泛应用于金融、政务、教育等对稳定性与合规性要求严苛的生产环境,尤其适配无法升级操作系统的稳态IT架构。

weixin_33868027的博客 417

BIND配置文件详解(二)

本文档摘录自《BIND9管理员手册》,如果有不对或者不清楚的地方,请大家告诉我,谢谢! BIND配置文件详解(二) 6.options语句 options语句的定义和使用: options语句用来设置可以被整个BIND使用的全局选项。这个语句在每个配置文件中只有一处。如果出现多个options语句,则第一个options的配置有效,并且会产生一个警告信息。 如果没有o...

weixin_34310369的博客 783

私有网络DNS服务器搭建:BIND权威解析与安全配置实战

DNS(域名系统)是网络基础设施的核心组件,其本质是将人类可读的主机名映射为机器可识别的IP地址。基于RFC 1034/1035标准的权威DNS服务器,不仅提供正向与反向解析能力,更支撑着服务发现、安全策略实施和CMDB联动等关键运维场景。BIND作为最成熟、协议完备的开源DNS实现,凭借视图(views)、TSIG密钥认证、ACL访问控制及完整日志体系,在零外部依赖、高可审计性要求的私有网络中具备不可替代的技术价值。本文聚焦Ubuntu环境下BIND 9.9+私有DNS部署,涵盖配置三级结构、文件权限与A

weixin_33896726的博客 426

bind

acl:定义IP地址表的名字,用于访问控制等 语法: acl acl-name { address_match_list; } controls:宣告一个用于rndc工具控制通道 语法: controls { [ inet ( ip_addr | * ) [ ...

chonglianguang7366的博客 394

NSD权威DNS服务器:轻量、确定性与生产级稳定性解析

DNS权威服务器是互联网基础设施的核心组件,其核心职责是准确、低延迟、高可靠地响应来自递归解析器的查询请求。NSD作为专注‘authoritative-only’设计的轻量级DNS服务,摒弃递归、缓存和动态更新等复杂功能,通过极简代码路径、静态内存模型与单线程事件循环,实现毫秒级确定性响应和近乎零抖动的SLA保障。其架构天然具备低攻击面、高可审计性与强状态一致性,特别适用于金融核心域名、政务平台及IoT边缘等‘零容忍抖动’场景。本文基于Ubuntu 14.04这一去抽象化环境,深入剖析NSD的部署实践、zo

weixin_33743880的博客 488

Ubuntu 14.04下PowerDNS+MariaDB高可用DNS部署实战

DNS权威服务器是网络基础设施的核心组件,其稳定性依赖于后端存储的可靠性与查询性能。PowerDNS作为模块化设计的开源DNS服务器,通过SQL backend(如gmysql)实现动态数据管理;MariaDB则凭借事务支持、复制能力和InnoDB引擎,成为生产环境中首选的关系型后端。在长期支持系统如Ubuntu 14.04上,版本锁定带来兼容性挑战,但也保障了审计合规与升级可控性。本文聚焦PowerDNS 3.4.7与MariaDB 10.0的深度协同——涵盖APT源适配、gmysql连接池调优、sche

culi4814的博客 559

Exception in thread “main“ java.lang.IllegalArgumentException: can‘t find start.properties

Exception in thread “main” java.lang.IllegalArgumentException: can’t find start.properties 没找到相应的配置文件 把工作路径配一下

shiwei77的博客 1037

Ubuntu 14.04 下 NSD 部署 DNSSEC 的完整信任链实践

DNSSEC(域名系统安全扩展)是一种通过数字签名保障 DNS 数据真实性和完整性的核心安全机制,其原理基于公钥密码学构建自根域向下传递的信任链。技术价值在于抵御缓存投毒、记录篡改等中间人攻击,显著提升域名解析可信度。典型应用场景包括金融API调用、邮件服务器MX验证、高安全要求的Web服务解析等。在老旧但仍在工业场景广泛使用的 Ubuntu 14.04 环境中,结合轻量级权威DNS服务器 NSD 与 ldns 工具集,可实现高效、可控、离线签名的 DNSSEC 实施方案,兼顾安全性与运维可持续性。

weixin_30872157的博客 593

Ubuntu 14.04下部署BIND权威DNS服务器实战指南

DNS(域名系统)是局域网服务发现与命名管理的核心基础设施,其本质是将易记的主机名映射为IP地址的分布式数据库。BIND作为最成熟、可定制性最强的开源DNS实现,特别适合构建私有网络中的权威DNS服务器——它不对外递归查询,专注响应内网域名解析请求,从而保障命名一致性、服务自动发现和故障隔离能力。在工业物联网、嵌入式集成等对稳定性要求极高的场景中,基于Ubuntu 14.04+BIND 9.9.5的组合虽版本较旧,却因内核兼容性好、ABI稳定、长期验证充分而具备不可替代的工程价值。本文聚焦bind配置dns

weixin_34218579的博客 380

Creo报错代码-9?手把手教你重新生成许可证文件(基于Creo 10.0)

本文详细解析Creo报错代码-9的成因及解决方案,重点介绍如何重新生成许可证文件以应对网络环境变化导致的验证失败。通过分步指南和高级技巧,帮助用户有效管理多网络环境下的Creo许可证问题,提升工作效率。

weixin_30839881的博客 565

Linux下Catapro酶动力学预测工具保姆级安装指南(PyTorch+CUDA11.8适配版)

本文提供了Linux系统下Catapro酶动力学预测工具的详细安装指南,特别适配PyTorch+CUDA11.8环境。从环境准备、源码获取到虚拟环境创建、依赖包安装和模型配置,逐步指导用户完成安装流程,并包含常见问题排查和性能优化建议,帮助研究者快速部署这一高效酶动力学参数预测工具。

weixin_29278805的博客 213

Ubuntu 14.04下手动配置BIND实现DNS缓存与转发

DNS服务器是网络基础设施的核心组件,其核心能力包括递归解析、缓存加速与查询转发。理解BIND的工作原理,关键在于掌握recursion(递归控制)、forwarding(转发策略)、caching(本地缓存)及ACL(访问控制)四大机制。在Ubuntu 14.04这一稳定且教学友好的平台上配置BIND 9.9,可避开现代系统中systemd-resolved等服务的干扰,清晰呈现DNS数据包从接收、决策(视图匹配)、上游交互到响应返回的完整链路。该实践不仅适用于企业内网DNS架构设计,也是排查SERVFA

weixin_34242331的博客 503

Cadence Sigrity PowerSI实战:从.brd到S参数提取的完整避坑指南

本文详细介绍了使用Cadence Sigrity PowerSI进行信号完整性分析的完整流程,从.brd文件预处理到S参数提取的关键技巧。通过实战案例和避坑指南,帮助工程师高效解决高速PCB设计中的信号质量问题,提升仿真精度和设计效率。

carrot的博客 696

Ubuntu 18.04部署BIND权威DNS服务器实战指南

DNS(域名系统)是网络服务通信的基础设施,其核心功能是将人类可读的域名(如gitlab.internal)解析为机器可识别的IP地址。BIND作为最成熟、最符合RFC标准的权威DNS实现,提供完整的SOA管理、区域传输、DNSSEC支持和高并发查询能力,广泛应用于企业私有网络。在Ubuntu 18.04这类进入ESM维护阶段但仍在生产环境大量服役的LTS系统中,直接使用apt源默认BIND版本存在安全漏洞与功能限制,必须通过手动编译、路径隔离与systemd精细化管控来构建稳定可靠的内网DNS-серве

weixin_34087307的博客 314

Python 爬虫实战:分析 AJAX 请求抓取搜狐新闻数据

在Web 2.0时代,大量网站采用AJAX技术实现动态内容加载。传统基于静态HTML解析的爬虫技术(如BeautifulSoup)已无法应对这类场景。本文将以搜狐新闻为实战目标,详解如何通过分析AJAX请求接口实现动态新闻数据的精准抓取。

yansideyucsdn的博客 1751

地平线旭日X3 安装xfce桌面+VNC查看USB摄像头

VNC是Virtual Network Computing的缩写,它是一种使用RFB(Remote Frame Buffer)协议的用于控制远程电脑的图形桌面分享系统。xfce桌面相比于GNOME桌面更加轻量,占用的资源更少,在没有GPU的设备上也可以运行(旭日的Desktop版本从外观上好像就是xfce桌面,具体没有尝试)。可以使用专用的VNC客户端连接到开发板,例如vnc viewer。板子默认带有openssh-server,因此,WiFi热点连接成功后,就可以使用ssh登录开发板了。

bingdund的博客 510

BIND 9 权威DNS服务器配置:Ubuntu 22.04 搭建私有域名解析(含正向/反向Zone)

本文详细介绍了在Ubuntu 22.04系统上配置BIND 9权威DNS服务器的完整流程,包括正向/反向Zone设置、安全加固和性能优化。通过实战指南帮助用户搭建私有域名解析系统,提升内网服务访问效率,适用于企业IT基础设施和开发测试环境。

weixin_30417487的博客 488

使用 MATLAB/Simulink + Simscape Electrical 来构建一个CCHP微电网与新能源协同运行的模型

随着能源需求的增长和对环境保护要求的提高,冷热电联供(Combined Cooling, Heating and Power, CCHP)系统作为一种高效的分布式能源解决方案,越来越受到关注。CCHP系统通过利用一次能源同时产生电力、制冷和供热,实现了能源的梯级利用,提高了能源使用效率。结合太阳能、风能等可再生能源,可以进一步增强系统的灵活性和环保性。本文将详细介绍如何使用来构建一个CCHP微电网与新能源协同运行的模型,并通过仿真分析其性能表现。本文介绍了如何使用构建一个。

xiaoheshang_123的博客 142

Ubuntu 14.04下PowerDNS+MariaDB权威DNS部署与生产调优

权威DNS服务器是企业网络基础设施的核心组件,其本质是将域名查询逻辑与持久化数据存储解耦。PowerDNS通过后端插件机制支持多种数据库,其中MariaDB凭借SQL兼容性、DBA生态成熟度和事务一致性,成为中大型生产环境的首选数据后端。其工作原理基于标准DNS协议栈,通过gmysql模块将SOA、NS、A等记录映射为关系型表结构,并利用UTF8MB4字符集保障国际化域名支持。技术价值体现在可编程性——支持SQL级变更、审计追溯、自动化同步及主从高可用;典型应用场景包括工业物联网边缘DNS、等保合规内网解析

weixin_34166847的博客 440

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Ubuntu 18.04搭建可控私有DNS:BIND 9.11配置与排错实战

DNS(域名系统)是网络通信的基础协议,其核心原理是将人类可读的域名映射为机器可识别的IP地址,并通过递归查询、权威应答和缓存机制实现高效解析。在私有网络环境中,使用可控的DNS服务具有显著技术价值:避免ISP或路由器DNS的缓存污染、劫持与策略黑盒,支持自定义域名空间(如dev.internal)、条件转发、IPv6完整支持及反向解析。典型应用场景包括开发测试环境统一命名、CI/CD动态服务发现、内网服务解耦与安全审计。本文基于Ubuntu 18.04与BIND 9.11,深入解析私有DNS的权威配置、A

weixin_30425949的博客 316

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

从零搭建BIND 9 DNS服务器:实现内网域名解析与安全缓存

DNS(域名系统)是互联网的核心基础设施,负责将人类可读的域名转换为机器可识别的IP地址,其工作原理基于分布式数据库查询与缓存机制。掌握DNS技术不仅能提升网络访问效率,还能增强内网服务管理的安全性与可控性,是网络工程师和运维人员的必备技能。通过搭建私有DNS服务器,可以实现内网域名解析、访问加速、内容过滤等高级功能,尤其适用于企业内网、家庭实验室及开发测试环境。本文以经典的BIND 9为例,结合**内网域名解析**和**安全缓存**等热词,详细讲解从安装配置、区域文件编写到高可用架构搭建的全流程,帮助读者

weixin_28740299的博客 257

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Ubuntu 14.04 下 NSD 部署 DNSSEC 实战指南

DNSSEC 是 DNS 协议的核心安全机制,通过数字签名构建信任链,解决域名解析被劫持的根本风险。其原理基于公钥密码学(如 RSASHA256),在权威服务器上为每组资源记录(RRset)生成 RRSIG 和 DNSKEY,结合 KSK/ZSK 分层密钥体系保障签名有效性与轮换安全。技术价值在于阻断缓存投毒、中间人劫持等攻击,尤其适用于金融、政务等高合规场景。典型应用场景包括老旧系统加固(如 Ubuntu 14.04)、轻量级权威 DNS(如 NSD)的安全升级,以及遗留基础设施的 DNSSEC 合规落地

weixin_30861459的博客 322

Sandstorm私有应用平台在Ubuntu 14.04上的兼容部署指南

Sandstorm是一种面向小团队的私有化Web应用平台,通过沙盒化Grain实现应用一键安装与隔离运行。其核心原理基于轻量级容器抽象、声明式权限控制和端到端数据加密,技术价值在于降低协作工具私有化部署门槛,尤其适用于老旧但稳定的LTS系统环境。典型应用场景包括企业内网协作看板、高校实验室免运维工具集、开发者本地测试沙盒等。在Ubuntu 14.04(Trusty Tahr)这一广泛使用的长期支持版本上,部署需突破SSL/TLS 1.2兼容性、GCC 4.8运行时依赖、Upstart服务管理及FQDN强制解

439
上一篇: 在Ubuntu 14.04上配置Bind作为缓存型/转发型DNS服务器
下一篇: 如何在Ubuntu 14.04上使用NSD——一套仅权威DNS服务器
普通网友
博客等级 码龄10年 769粉丝 269原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值