千家信息网

Solaris下怎么用Bind安装和配置DNS

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍了Solaris下怎么用Bind安装和配置DNS,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、DNS基础DNS:D
千家信息网最后更新 2026年11月01日Solaris下怎么用Bind安装和配置DNS

这篇文章主要介绍了Solaris下怎么用Bind安装和配置DNS,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

一、DNS基础

DNS:Domain Name System,域名解析服务器,它在互联网的作用是把域名转换成为网络可以识别的ip地址。

BIND:Berkeley Internet Name Domain,是unix中DNS协议用的最多的一个实现。

如blog.sina.com.cn,blog是一四级域名,sina是三级域名,com是二级域名,cn是顶级域名。一完整域名最多可以是256个字符,各级别域名最多63个字符。

DNS使用in.named进程,如果/etc/named.conf存在,系统启动时会开启in.named进程并读取/etc/named.conf文件,in.named其实就是/usr/sbin/named的一个链接。

名字到地址的查找称为正向映射;地址到名字的查找称为反向映射。

二、DNS服务器安装配置

以下都为Solaris平台下用root用户操作,不论你使用哪个发行版本的unix,DNS的设置与unix的关系并没有太大的关系。

1、安装BIND,当前Release版本是bind-9.4.2.tar.gz

为了方便用于其他操作系统,我们还是从源代码包方式安装。首先从ISC公司的主页( http://www.isc.org/index.pl?/sw/bind/index.php )下软件包。

解压:

# pwd

/opt/wacos/encle

# gunzip bind-9.4.2.tar.gz

# tar -xvf bind-9.4.2.tar

配置编译并安装,BIND正常安装在/usr/local目录下,但可以调整通过--prefix参数设置,本例不用IPv6,启动文件最后会安装在/usr/local/sbin里:

# cd bind-9.4.2

# ./configure --prefix=/usr/local --sysconfdir=/etc --disable-ipv6

# make

# make install

安装的时间会比较久,安装完后看一看现版本是多少:

# /usr/local/sbin/named -v

到此Bind已经安装完成了。

2、生成RNDC(用于控制DNS服务器,Bind9有)配置文件/etc/rndc.conf

Bind9规定,如果要使用rndc来控制dns,必须先生成验证文件 rndc.conf 和密锁。rndc.conf文件的内容,可用rndc-confgen命令生成所需内容。

# /usr/local/sbin/rndc-confgen > /etc/rndc.conf

如果机器上没有random产生器,这种情况下系统应该让你输入一些无关字母来替代/dev/random的功能。

------------------------------------------

You must use the keyboard to create entropy, since your system is lacking

/dev/random (or equivalent)

start typing:

...............................

...........................

...........................

...........................

...........................

...........................

...........................

...........................

stop typing.

# Start of rndc.conf

...

# End of named.conf

------------------------------------------

生成的rndc.conf大致如下:

# cat /etc/rndc.conf

------------------------------------------

# Start of rndc.conf

key "rndc-key" {

algorithm hmac-md5;

secret "ZdAFUwS0QMr95427P7Xq+w==";

};

options {

default-key "rndc-key";

default-server 127.0.0.1;

default-port 953;

};

# End of rndc.conf

# Use with the following in named.conf, adjusting the allow list as needed:

# key "rndc-key" {

# algorithm hmac-md5;

# secret "ZdAFUwS0QMr95427P7Xq+w==";

# };

#

# controls {

# inet 127.0.0.1 port 953

# allow { 127.0.0.1; } keys { "rndc-key"; };

# };

# End of named.conf

#

------------------------------------------

后面配置/etc/named.conf的时候要把"# Use with the following in named.conf, adjusting the allow list as needed:"这行下的所有复制到named.conf 文件里。

3、配置DNS服务器的引导文件/etc/named.conf

named.conf文件包含的内容:

指出包含根服务器的文件位置;

建立首要服务器、辅助服务器、仅缓存服务器;

指出服务器的权威区域;

指出服务器的数据文件的位置;

为特定区域应用安全选项;

定义日志规范;

可为一组区域应用选项。

named.conf编写规范:

陈述语句以;号结束;

每个陈述语句还可以包括一段{}括起来的陈述;

多行注释为/* */;单行注释#或//开始。

陈述语句可定义:

acl:定义一命名的IP地址匹配列表

options:控制全局服务器配置选项

zone:定义区域

先建立区域文件目录/etc/named:

# mkdir /etc/named

配置named.conf示例:

# vi /etc/named.conf

------------------------------------------

options {

//定义区域文件目录,表示以下各项配置中的文件默认在此目录中

directory "/etc/named";

};

//指定根DNS服务器的配置文件/etc/named/named.root,此文件可从网络下载

zone "." in {

type hint;

file "named.root";

};

//指定正向解析配置文件/etc/named/encle.zone

zone "encle.com" in {

type master;

file "encle.zone";

};

//指定反向解析配置文件/etc/named/encle.rzone,"111.19.172."这里是根据网络IP分配情况而定,是反向IP前三段

zone "111.19.172.in-addr.arpa" in {

type master;

file "encle.rzone";

};

//指定环回反向解析配置文件/etc/named/named.local

zone "0.0.127.in-addr.arpa" in {

type master;

file "named.local";

};

// 把上面生成的/etc/rndc.conf的Key和Controls段内容拷到这里

key "rndc-key" {

algorithm hmac-md5;

secret "ZdAFUwS0QMr95427P7Xq+w==";

};

controls {

inet 127.0.0.1 port 953

allow { 127.0.0.1; } keys { "rndc-key"; };

};

------------------------------------------

4、配置区域文件

区数据文件的大部分条目被称为DNS资源记录(resource record)。

数据文件中资源记录的顺序如下:

SOA记录

指示该区的权威

NS记录

该区的一个名字服务器

其他记录

有关该区中主机的数据

A 名字到地址的映射

PTR 地址到名字的映射

CNAME 别名

注释:

使用分号(;)开头的到行尾处结束。

设定区默认的TTL值:

名字服务器在查询响应中提供这个TTL值,允许其他服务器将数据在缓存中存放TTL所指定的时间。

允许的单位是: w=星期 d=天 h=小时 m=分钟 s=秒

资源记录格式:

[name] [ttl] [class] [type] [data]

name:域名

ttl:缓存生存时间,通常是86400(1天),也可表示成1d

class:网络类别,通常IN表示互联网

type:该域名的资源记录类型

data:数据,如主机名、ip、邮件地址等

资源记录类型介绍:

; 注释开头

$TTL:Time To Live,缓存生存时间

SOA:Start of Authority,标志主名城服务器、联系信息等

NS:Name Server,名称服务器

A:Address,指定一主机的IP

PTR:Pointer,指定一IP的主机名,用来反向解析(即把IP解析成主机名)

CNAME:Canonical Name,主机别名(如www可代替一主机名)

AAAA:quad-A,指定一主机的IPv6地址

a) /etc/named/named.root

This file is used when you are connected to internet.

可从 http://www.internic.net/zones/named.root 获得该文件的最新版本。

c) /etc/named/encle.zone

# vi /etc/named/encle.zone

------------------------------------------

; This file resolves hostnames to IP addresses in the encle.com. domain.

$ORIGIN encle.com.

$TTL 1d

encle.com. IN SOA dns.encle.com. wangnc.gmail.com. (

20080201 ; serial number

1h ; refresh

15m ; retry

1w ; expire

1d ) ; ttl

encle.com. IN NS dns.encle.com.

dns IN A 172.19.111.37

www IN A 172.19.111.40

test IN A 172.19.111.42

------------------------------------------

c) /etc/named/encle.rzone

# vi /etc/named/encle.rzone

------------------------------------------

; This file resolves IP addresses to hostnames in the encle.com. domain.

$ORIGIN 1.168.192.IN-ADDR.ARPA.

$TTL 1d

111.19.172.IN-ADDR.ARPA. IN SOA dns.encle.com. wangnc.gmail.com. (

20080201 ; serial number

3h ; refresh

1h ; retry

1w ; expire

1d ) ; ttl

111.19.172.IN-ADDR.ARPA. IN NS dns.encle.com.

37 IN PTR dns.encle.com.

40 IN PTR www.encle.com.

42 IN PTR test.encle.com.

------------------------------------------

d) /etc/named/named.local

# vi /etc/named/named.local

------------------------------------------

$ORIGIN 0.0.127.IN-ADDR.ARPA.

$TTL 1d

0.0.127.IN-ADDR.ARPA. IN SOA dns.encle.com. wangnc.gmail.com. (

20080201 ; version number

3h ; refresh

1h ; retry

1w ; expire

1d ) ; ttl

0.0.127.IN-ADDR.ARPA. IN NS dns.encle.com.

1 IN PTR localhost.encle.com.

------------------------------------------

5、检查配置文件

# /usr/local/sbin/named-checkconf /etc/named.conf

# /usr/local/sbin/named-checkzone encle.com /etc/named/encle.zone

6、在主DNS服务器上开启in.named服务进程

# /usr/local/sbin/named 或 # /usr/local/sbin/named -c /etc/named.conf (针对named.conf没放在默认位置/etc下的情况)

查看开启的进程:

# ps -ef | grep named | grep -v grep

测试rndc是否成功:

# /usr/local/sbin/rndc status

number of zones: 14

debug level: 0

xfers running: 0

xfers deferred: 0

soa queries in progress: 0

query logging is OFF

recursive clients: 0/0/1000

tcp clients: 0/100

server is up and running

表示rndc已经成功控制Bind9。如果没有显示上面的信息,请检查你的/usr/local/etc/named.conf文件里面是否配置了/usr/local/etc/rndc.conf里面的key。

查看是否有错误日志信息:

# tail -f /var/adm/messages

Jan 30 14:26:54 fsdb37 named[15667]: [ID 873579 daemon.notice] starting BIND 9.4.2

Jan 30 14:26:54 fsdb37 named[15667]: [ID 873579 daemon.error] binding TCP socket: address in use

Jan 30 14:26:54 fsdb37 last message repeated 1 time

Jan 30 14:26:54 fsdb37 named[15667]: [ID 873579 daemon.notice] command channel listening on 127.0.0.1#953

Jan 30 14:26:54 fsdb37 named[15667]: [ID 873579 daemon.notice] running

注意:

solaris8&9版本中预装的有bind,目录在/usr/sbin,程序为in.named,也有自己的nslookup等程序,可以看它的版本:

# /usr/sbin/in.named -v

in.named BIND 8.2.4 Fri May 19 04:41:53 PDT 2006

Generic Patch-5.8-May 2006

而且在/etc/rc2.d/S72inetsvc中有in.named的启动定义:只有/etc下有named.conf文件,系统启动时就会将in.named启动起来。

------------------------------------------

...

if [ -f /usr/sbin/in.named -a -f /etc/named.conf ]; then

echo 'starting internet domain name server.'

/usr/sbin/in.named &

fi

...

------------------------------------------

而我们安装自己的bind时,往往(默认是这样的)会将named.conf文件放到/etc下的!这就造成了我们配置好我们的bind,一启动server,solaris预装的bind就启动了,我们再去启动我们的bind就会报错:53端口已经被占用了。解决的办法是修改/etc/rc2.d/S72inetsvc,将相关in.named的全部注释掉,将我们的named增加进去。这样,我们的dns就会在系统启动时自动运行了。

另外,系统自带了一个nslookup是在 /usr/sbin/ 下,安装Bind9后带的nslookup是在 /usr/local/bin 下的。这样,我们系统里就有了两个nslookup了。而环境变量里的PATH变量中,/usr/sbin一般是在排名比较靠前,肯定是在/usr/local/bin之前的。这样造成了我们键入nslookup时,运行的是老版本的nslookup。这样我们可能会得到报错信息。解决的办法是将新的nslookup覆盖掉老的文件,或者是将环境变量调整一下,将 /usr/local/bin 放到最前面。

三、DNS客户端的配置

1、创建/etc/resolv.conf文件,记录DNS服务器的地址和域名。

一个示例的resolv.conf文件如下:

# vi /etc/resolv.conf

------------------------------------------

domain encle.com #默认的domain

nameserver 172.19.111.37 #DNS server ip

------------------------------------------

第一行是"domain 你申请的域名",第二行是名称服务器,其格式为"nameserver IP地址",如果IP是127.0.0.1表示本机就是DNS服务器,该段可以是DNS的主域名称服务器、备份域名称服务器或缓冲名称服务器,但是书写时不可以超过3个服务器。

2、修改/etc/nsswitch.conf,是客户机能够使用DNS服务,该文件记录主机名的搜索顺序等信息。

SUN客户机缺省使用files作为服务器名字的解析,为了使用DNS名称解析服务器,必须在 /etc/nsswitch.conf 指明使用DNS服务。

# vi /etc/nsswitch.conf

------------------------------------------

...

group: files

hosts: files dns

ipnodes: files

...

------------------------------------------

如上例,只要在hosts一项添加dns项就可以。

3、用nslookup查询DNS服务器,验证客户端的设置,下载DNS数据库。

启动时,nslookup缺省地以本地服务器为目标。响应中包括目标服务器的名字和地址。>是提示符,这意味着可以开始发送名字服务询问或配置。

# nslookup

> ...

> exit

4、BIND相关的一些工具介绍

dig 查询DNS服务器。

host 一个DNS查找工具。

rndc 控制BIND的操作。

rndc-confgen 生成rndc.conf文件

named-checkconf 检查named.conf文件的语法。

named-checkzone 检查区域文件的合法性。

lwresd 是为本地进程提供的只有缓存的名字服务器。

named 是名字服务器守护进程。

dnssec-signzone 生成带有签名的区域文件。

dnssec-signkey 为区域文件密钥集生成签名。

dnssec-keygen 是DNS密钥生成器。

dnssec-makekeyset 利用dnssec-keygen生成的一个或多个密钥创建密钥集。

nsupdate 用于提交DNS更新请求。

感谢你能够认真阅读完这篇文章,希望小编分享的"Solaris下怎么用Bind安装和配置DNS"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

服务 文件 服务器 配置 域名 名字 地址 区域 生成 主机 数据 版本 系统 进程 信息 注释 目录 缓存 资源 控制 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技有限公司 互联网科技网 互联网为科技 腾讯阿里互联网科技 阿里巴巴算科技企业还是互联网 中科明德北京互联网科技 众安科技工业互联网合作 高科技互联网套路 2021互联网科技公司排名 互联网金融科技元年 西安有哪些互联网高科技企业 吉林省码上互联网科技电话 科技互联网行业投资研究 西安左小互联网科技有限公司 保山互联网科技靠谱吗 易租星互联网科技有限公司 绵阳真晨互联网科技有限公司 互联网科技大佬云集 上海旺乐尼互联网科技有限公司 广东猫王互联网科技有限公司电话 苏州互联网科技贷款公司 互联网科技英文翻译 新华互联网科技2019 贵州叶脉互联网科技有限公司所属行业 朱啸虎曾投资哪些互联网科技企业 国大互联网教育科技有限公司薪资 启辰互联网科技 四川互联网展示科技馆设计 玉溪新华互联网科技怎么选 互联网对科技影响
0