Linux中的DNS解析利器——Unbound (linux dns unbound)

Linux中的DNS解析工具有很多,最为知名的莫过于Bind,但是随着互联网应用的发展,Bind的局限也日渐明显,这时候Unbound应运而生,作为一款基于C语言开发的DNS解析程序,它具有高性能、可扩展性、可靠性等特点,适用于各种规模的网络环境,为Linux用户提供了一款强大的DNS解析工具。

一、Unbound的性能优势

Unbound是一款高性能的DNS解析程序,在性能方面跑赢了众多DNS解析器。它的性能优势主要体现在以下几个方面:

1.高速缓存:Unbound内置高速缓存机制,完全抛开了传统DNS解析的冗长流程,使得DNS解析的效率得到极大提升。

2.模糊查询:在某些情况下,用户在输入域名时会出现少写或者多写的情况,Unbound支持用户输入的信息中含有通配符,从而实现模糊查询。

3.支持应付大流量:Unbound可以通过多个实例及负载均衡的方式,来处理大量流量并实现集群化的管理方式,保证用户感受到的是丝滑般的体验。

4.一致性查询: Unbound可以进行一致性查询,从而保证了多个客户端对同一个域名的解析结果是一致的。

二、Unbound的安全性

和其他DNS解析器相比,Unbound更加注重安全性和可靠性,这主要体现在以下几点:

1.支持DNSSEC:Unbound支持DNSSEC,这是网站信息保护的关键性质,可以提高网站的安全性。

2.关注缓存攻击: Unbound可以抵抗缓存攻击,从而保护用户的隐私。

3.过滤垃圾信息:Unbound支持DNS RPZ技术,从而可以通过过滤规则来过滤掉垃圾信息,保证用户的网络环境安全。

4.防止DNS重放攻击: Unbound支持响应的时间戳,从而可以防止DNS回放攻击,保证用户的信息安全。

三、Unbound的易用性

Unbound的易用性也可以说是其不可缺少的一部分。对于普通用户和初学者来说,Unbound简单易用、配置文件直观,后期维护和管理也很方便。

1.适合初学者:相比于Bind等DNS解析器,Unbound的学习门槛较低,对于初学者来说非常友好。

2.简单易用的配置文件:Unbound的配置文件是易于理解和直观的,你可以很容易地看懂每一行代码所代表的意义。

3.简单明了的控制器:Unbound的控制器提供了丰富的控制功能,可以方便的进行日常维护管理。

四、Unbound的扩展性

从Unbound源码的质量上来讲,它具有良好的可扩展性,容易实现各种功能的定制。可以为特定的网络环境定制出一个独特的解决方案,满足你的个性化需求。

1.易于基于RFC实现:Unbound的开发者非常严格地依照RFC规范来构建,因此绝大多数功能都可以轻易地以RFC标准方式实现。

2.完美的API:Unbound提供了一组API,可以为开发者进行二次开发以满足其特殊需求。

五、Unbound的Linux优势

Unbound的更大优势在于其充分显示了Linux的魅力。Linux系统的架构、安全性、可靠性以及可定制性等特点,使得Unbound的发展空间更大、更广泛,更能充分发挥自身的优势。

综上所述,Unbound是一款优秀的DNS解析程序,具有高性能、安全性、易用性和扩展性等特点,是Linux用户不可或缺的一款DNS解析工具,为网络管理员和普通用户带来了极大的便利和保障。

相关问题拓展阅读:

在linux下如何修改DNS地址阿?

如果是图形界面的话呢

直接system-config-network

然后出现对话框点卜皮编辑

可以设置固定IP

在后面的配置里

有DNS的设置的

直接添就好了

然后重新激活

网型迹差卡

如果是文本模式的话州碰呢

vi

/etc/sysconfig/network-scripts/ifcfg-eth0

配置IP

DNS

的话vi

/etc/resolv.conf

在里面直接修改后:x!保存退出即可。

linux下如何配置DNS服务器,

在linux下配置DNS服务器,下面是配置过程中设置过的一些文件,

  /etc/hosts 文件的具体内容如下:

  # Do not remove the following line, or various programs

  # that require network functionality will fail.

  127.0.0.1 localhost.localdomain localhost fc4

  192.168.1.3 a.test.com a

  192.168.1.1 b.test.cn b

  /etc/host.conf 文件:

  order hosts,bind

  表示先用hosts文件做解析,春改在用DNS解析

  /etc/resolv.conf 文件:

  ; generated by NetworkManager, do not edit!

  search test.com

  nameserver 127.0.0.1

  search test.cn

 扒谈判 nameserver 192.168.1.1

  nameserver 61.144.56.100

  /etc/named.conf 文侍氏件:

  //

  // named.conf for Red Hat caching-nameserver

  //

  options {

  directory “/var/named”;

  dump-file “/var/named/data/cache_dump.db”;

  statistics-file “/var/named/data/named_stats.txt”;

  /*

  * If there is a firewall between you and nameservers you want

  * to talk to, you might need to uncomment the query-source

  * directive below. Previous versions of BIND always asked

  * questions using port 53, but BIND 8.1 uses an unprivileged

  * port by default.

  */

  // query-source address * port 53;

  };

  //

  // a caching only nameserver config

  //

  controls {

  inet 127.0.0.1 allow { localhost; } keys { rndckey; };

  };

  zone “.” IN {

  type hint;

  file “named.ca”;

  };

  zone “test.com”IN {

  type master;

  file “test.com”;

  allow-update { none; };

  };

  zone “1.168.192.in-addr.arpa”IN {

  type master;

  file “192.168.1.rev”;

  allow-update { none; };

  };

  zone “test.cn”IN {

  type master;

  file “test.cn”;

  allow-update { none; };

  };

  zone “0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa” IN {

  type master;

  file “named.ip6.local”;

  allow-update { none; };

  };

  zone “255.in-addr.arpa” IN {

  type master;

  file “named.broadcast”;

  allow-update { none; };

  };

  zone “0.in-addr.arpa” IN {

  type master;

  file “named.zero”;

  allow-update { none; };

  };

  include “/etc/rndc.key”;

  在/var/name/test.com 文件下:

  $TTL

  @ IN SOA a.test.com. root.a.test.com (

  42 ; serial (d. adams)

  3H ; refresh

  15M ; retry

  1W ; expiry

  1D ) ; minimum

  IN NS a.test.com.

  IN MX 10 mail.test.com.

  a IN A 192.168.1.3

  mail IN A 192.168.1.3

  //其中root.a.test.com的含义是管理员的邮箱

  /var/name/test.cn 文件下:

  $TTL

  @ IN SOA b.test.cn. root.a.test.com (

  42 ; serial (d. adams)

  3H ; refresh

  15M ; retry

  1W ; expiry

  1D ) ; minimum

  IN NS b.test.cn.

  IN MX 10 mail.test.cn.

  b IN A 192.168.1.1

  mail IN A 192.168.1.1

  /var/name/192.168.1.rev 文件下:

  $TTL

  @ IN SOA 1.168.192.in-addr.arpa. root.test.com. (

; Serial

; Refresh

; Retry

; Expire

) ; Minimum

  IN NS a.test.com.

  IN NS b.test.cn.

  IN MX 10 mail.test.com.

  IN MX 10 mail.test.cn.

  3 IN PTR a.test.com.

  3 IN PTR mail.test.com.

  1 IN PTR b.test.cn.

  1 IN PTR mail.test.cn.

  然后用/etc/init.d/named restart重启DNS服务,在重启过程中,我曾经出现过好几次的错误,按照出错的提示,会提示是named.conf文件第几行出错的。或者提示在那些包含文件例如test.cn这些文件里面的问题,然后一个一个排除。

  最后还有一些nslookup的命令比较有用:

  set all用于显示使用nslookup工具这台机器上的DNS服务器的一些信息

  set type=any会显示完整信息包括域中邮件服务器和主从DNS服务器的名字和IP地址

  server 192.168.0.1更换查询的DNS服务器地址

linux DNS服务器配置

基本理论:

DNS系统的作用是把域名和IP对应起来。

正向解析:根据域名(主机名)查找对应的IP地址。

反向解析:根据IP地址查询对应的域名(主机名)。

查询

递归查询:大多数客户机向芦前DNS服务器解析域名的方式。

迭代查询:大多数DNS服务器向其它DNS服务器解析域名的方式。

DNS服务器的类型

缓存域名服务器:也称唯高速缓存服务器。通过向其它域名服务器查询获得域名与IP地址的对应孙伏记录,将域名查询结果缓存到本地,提高重复查询时的速度。

主域名服务器:特定DNS区域的官方服务器陪凯清,具有唯一性。负责维护该区域内的所有域名与IP的映射记录。

从域名服务器:也称辅助域名服务器。其维护的域名与IP地址的映射记录来源于主域名服务器。

环境准备:

临时关闭selinux和iptables

#setenforce 0

#service iptables stop

查询相关软件包:

# yum search bind

Loaded plugins: product-id, refresh-packagekit, subscription-manager

Updating Red Hat repositories.

====================================================================================== N/S Matched: bind ======================================================================================

PackageKit-device-rebind.i686 : Device rebind functionality for PackageKit

bind.i686 : The Berkeley Internet Name Domain (BIND) DNS (Domain Name System) server

bind-chroot.i686 : A chroot runtime environment for the ISC BIND DNS server, named(8)

bind-utils.i686 : Utilities for querying DNS name servers

其中各软件包的作用如下:

bind: 提供域名服务的主要程序及相关文件。

bind-chroot:为bind提供一个伪装的根目录以增强安全性。

bind-utils:提供对DNS服务器测试的工具程序(如nslookup、dig等)。

安装BIND软件包#yum install *bind*

配置DNS服务器:

bind服务器端程序

主要执行程序:/usr/in/named

服务脚本:、etc/init.d/named

默认监听端口:53

主配置文件: /etc/named.conf

保存DNS解析记录的数据文件: /var/named/chroot/var/named

查询bind程序的配置文件列表

# rpm -qc bind

/etc/logrotate.d/named

/etc/named.conf

/etc/named.iscdlv.key

/etc/named.rfc1912.zones

/etc/named.root.key

/etc/rndc.conf

/etc/rndc.key

/etc/sysconfig/named

/var/named/named.ca

/var/named/named.empty

/var/named/named.localhost

/var/named/named.loopback

查看主配置文件named.conf

#vim /etc/named.conf

主配置文件解析:

全局配置部分:

默认的全局配置项如下:

10 options {

listen-on port 53 { 127.0.0.1; }; //监听的端口和接口IP地址

listen-on-v6 port 53 { ::1; };

directory”/var/named”;//dns区域的数据文件默认存放位置

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; }; //允许dns查询的客户机列表,any表示所有

recursion yes;//是否允许客户机进行递归查询

19

dnssec-enable yes;

dnssec-validation yes;

dnssec-lookaside auto;

23

/* Path to ISC DLV key */

bindkeys-file “/etc/named.iscdlv.key”;

26 };

全局配置中还有如下选项:

forwarders {202.102.24.68;12.3.3.3;};//将本域名服务器不能解析的条目转发给其它DNS服务器的IP地址

默认的区域配置项如下:

35 zone “.” IN {

type hint; //区域类型。hint为根区域;master为主区域; slave为辅助区域

file “named.ca”;//该区域对应的区域数据配置文件名

38 };

区域配置中还有如下选项:

allow-transfer {189.98.90.23;};//允许下载区域数据库的从域名服务器IP地址

allow-update {none;};//允许动态更新的客户端IP地址(none表示全部禁止)

添加如下区域配置:

zone “my.com” IN {

type master;//主区域

file “my.com”; //该区域对应的区域数据配置文件名

allow-transfer {192.168.153.1;};//允许下载区域数据库的从域名服务器IP地址

allow-update {none;};

};

zone “153.168.192.in-addr.arpa” IN { //表示针对IP192.168.153.130反向解析

type master;//主区域

file “192.168.153.my.arpa”;//该区域对应的区域数据配置文件名

};

配置完了,可以执行如下命令对named.conf文件进行语法检查。

#named-checkconf

注意:倒序网络地址.in-addr.arpa 表示反向区域

主配置文件最后还有一行是:

include “/etc/named.rfc1912.zones”//该文件包含/etc/named.rfc1912.zones文件

区域数据配置文件:

先看一下named.localhost的内容:

$TTL 1D//time to live 生存时间

@IN SOA @ rname.invalid. ( //”rname.invalid”DNS区域地址

; serial //更新序列号

D ; refresh //更新时间

H ; retry //重试延时

W ; expire //失效时间

H ) ; minimum//无效地址解析记录的默认缓存时间

NS @//name server 域名服务记录

A.0.0. //address 只用在正向解析的区域数据文件中

AAAA ::1

新建2个对应的区域数据配置文件:

#touch my.com

#touch 192.168.153.my.arpa

#vim my.com

$TTL 86400

@ IN SOA my.com. admin.my.com (//admin.myNaN为该区域管理员的邮箱地址

201

H

M

W

D

)

@IN NS ns1.my.com.//当前域的DNS服务器地址

IN MXmail.my.com.//用于设置当前域的邮件服务器域名地址,数字10表示优先级别,数字越大优先级越低

ns1 IN A.168.153.130

mail IN A.168.153.130

www IN A.168.153.130

ftp IN CNAME www //CNAME别名(canonical name)记录,表示ftp.my.com和

www.my.com

对应同一个IP.

# vim 192.168.153.my.arpa

$TTL 86400

@ IN SOA my.com. admin.my.com (

201

H

M

W

D

)

@IN NS ns1.my.com.

INPTR ftp.my.com

启动DNS服务

# service named start

测试:

配置一台ftp服务器用于测试:

#service vsftpd start//启动vsftpd服务

当前网卡的配置:

eth0: 192.168.0.1/24

eth1: 192.168.153.130/24

# nslookup 192.168.153.130

Server: 127.0.0.1

Address: 127.0.0.1#53

130.153.168.192.in-addr.arpaname =

www.my.com

.

# nslookup ftp.my.com

Server: 127.0.0.1

Address: 127.0.0.1#53

ftp.my.comcanonical name =

www.my.com

.

Name:

www.my.com

Address: 192.168.153.130

测试成功

答案给出的很详细,可是那是老版本redhat9的配置了。 现在通用的bind9.0使用的是chroot环境,就是说你安装RHEL5.4的时候,在/etc/下面是找不到named.conf文件的.简要说下过程 如果你用的RHEL5的yum库1.安装#yum install bind* -y#yum install caching-nameserver2.配置主配文件#cd /var/named/chroot/etc/ #cp -a named.caching-nameserver.conf named.conf# vim named.conf主游雀要参饥磨滚数和以前的bind差不多,都烂余是写明正向和方向域文件。allow-query 这行要匹配any 否则服务器就只能你本地使用

关于linux dns unbound的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » Linux中的DNS解析利器——Unbound (linux dns unbound)