如何在CentOS 7上安装快速轻量级的DNS服务器MaraDNS

MaraDNS是一个小型,免费和轻量级的域名服务器。 它是一种替代的开源DNS服务器,用作缓存,递归或权威的Nameservers。 这对于Linux和Windows平台来说非常容易配置和可用。 可以从这里下载 。 您可以在这里阅读有关DNS,递归DNS,授权DNS的更多信息。

以下是MarDNS的一些有趣的特征:

  • 易于安装
  • 内存使用量低(使用大约5MB内存)
  • 可以作为权威Nameservers和递归Nameservers。
  • 不要错过,MaraDNS网站上的文档很容易理解。

现在让我们开始使用CentOS 7上的MaraDNS。以下步骤将引导您了解MaraDNS的安装和配置:

安装MaraDNS

到目前为止,CentOS 7没有可用的MaraDNS RPM,所以我们将从源代码安装和编译它。

安装gcc:

sudo yum install gcc

这里下载最新的源文件。 你可以这样做:

wget http://maradns.samiam.org/download/2.0/2.0.11/maradns-2.0.11.tar.bz2

提取存档的内容:

tar -xjf maradns-2.0.11.tar.bz2

更改为提取的MaraDNS目录,编译安装程序:

cd maradns-2.0.11
sudo make
sudo make install

MaraDNS现已安装。 MaraDNS服务安装在/etc/init.d/maradns上 。 您可以通过以下方式启动服务:

sudo /etc/init.d/maradns start

要启动递归恶魔,请运行:

sudo /etc/init.d/maradns.deadwood start

默认情况下,权威Nameservers监听端口127.0.0.1和端口127.0.0.2上的递归

让我们开始启动MaraDNS:

chkconfig maradns on


递归DNS服务器的init脚本需要与chkconfig兼容,才能使其在启动时运行。 将以下内容添加到文件/etc/init.d/maradns.deadwood文件的顶部:

# chkconfig: - 55 45
# description: MaraDNS is secure Domain Name Server (DNS)
# probe: true

将其设置为在启动时运行:

chkconfig maradns.deadwood on

将MaraDNS配置为权威Nameservers

权威DNS服务器“知道”URL对于任何给定域的映射。 它们是递归DNS服务器向Web客户端(如浏览器(Chrome,Firefox))发送的信息的来源。 您可以将MaraDNS配置为权威的Nameservers:

编辑MaraDNS的配置文件,即/ etc / mararc

ipv4_bind_addresses = "127.0.0.1"
chroot_dir = "/etc/maradns"
csv2 = {} csv2["example.net."] = "db.example.net"

第一行告诉MaraDNS听IP- 127.0.0.1 。 您可以添加更多的IP,用逗号分隔。 例如: 127.0.0.1,xxxx

chroot_dir的第二行是提及保存所有区域文件的目录。

第三行用csv2 = {}命令初始化csv2 hash

第四行提到名为example.net的名为db.example.net的区域文件。

以下是域名example.net的名为db.example.net的区域文件,这是不言自明的:

example.net.      +14400    soa    ns1.example.net. dns@example.net. 2012010117 14400 3600 604800 14400 ~ 
example.net.      +14400    ns     ns1.example.net. ~ 
example.net.      +14400    ns     ns2.example.net. ~ 
ns1.example.net.  +14400    a      127.0.0.1 ~ 
ns2.example.net.  +14400    a      127.0.0.1 ~ 
example.net.      +14400    a      127.0.0.1 ~ 
www.example.net.  +14400    a      127.0.0.1 ~ 
example.net.      +14400    mx     10 mail.example.net. ~
mail.example.net. +14400    a      127.0.0.1 ~

您从开始权限(SOA)线开始。 然后指定权威Nameservers和其他记录。 记录包括域名,TTL(生存时间),记录类型和记录的值。
要注意的两件事情是所有域名都以一个时期结束,即它们必须是完全限定的域名,所有的记录以波浪符号(〜)结尾。 要了解更多信息,请查看有关区域文件格式的文档。

为了更简单,让我们将example.net指向127.0.0.1 。 这是你如何做的:

example.net.    127.0.0.1 ~

重新启动服务:

sudo /etc/init.d/maradns restart

将MaraDNS配置为递归Nameservers

当您的网络浏览器发送DNS查询时 - 假设浏览器尚未将映射存储在其缓存中 - 将其发送到递归DNS服务器。 它也被称为DNS转发。 它默认监听端口127.0.0.2 ,您可以添加更多的IP,用逗号分隔。 例如: 127.0.0.2,xxxx 。 您可以通过将下列行添加到/ etc / dwood3rc文件中将MaraDNS配置为递归Nameservers

upstream_servers = {}
upstream_servers["."] = "8.8.8.8, 8.8.4.4" # Forwarding requests to Google DNS Servers

重新启动服务:

sudo /etc/init.d/maradns.deadwood restart

您完成了设置MaraDNS服务器! :)

提示 - 如果您希望MaraDNS服务器响应外部DNS查询,则需要:

将设备的公共IP添加到配置文件( / etc / mararc/ etc / dwood3rc )中,并将其修改为:

/ etc / mararc:

ipv4_bind_addresses = "127.0.0.1, x.x.x.x" #Replace x.x.x.x with your machine's public address.

/ etc / dwood3rc:

bind_address="127.0.0.2, x.x.x.x" #Replace x.x.x.x with your machine's public address.

recursive_acl =“0.0.0.0/0”#允许任何地方的连接。

你可以从这里的这些示例文件。 不要忘了重新启动服务。

就这样!

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏