bind 安装

BIND概述

1984年,加州大学伯克利分校的几个学生完成了Unix名称服务的实现,起名叫做Berkeley Internet Name Domain(BIND)。目前,它是互联网上使用最为广泛的DNS服务软件。bind的发行版一般包含三个部分:域名服务器、域名解析器库、软件测试工具。下面就安装bind来完成整个DNS的实验

安装BIND

下载bind的源码,官网下载地址http://www.isc.org/downloads/bind/如果访问不了,自己在网上找个吧。我用的是9.6的版本,安装的原则是尽量简单可用。

下面是安装步骤:

  1. 下载bind 根据自己的需要下载
  2. 解压bind:tar jxvf bind-9.6.0-fw8.tar.bz2
  3. 进入解压后的目录:cd bind-9.6.0-fw
  4. ./configure
  5. make
  6. make install

安装完后要自己构造相应的配置文件

  1. 主配置文件/etc/named.conf
  2. /var/named/named.hosts 配置文件

named.conf是BIND的主配置文件,当然你也可以自己编写主配置文件,但是需要在BIND主进程named启动的时候用-c选项指定主配置文件的路径。

named.conf 配置文件如下:

options {
  directory "/var/named";
  pid-file "/var/run/named.pid";
  allow-recursion {any;};
  listen-on port 53 { 1.1.1.1 ;};
};

view all {
  match-clients { any; };
  zone "xxx.com" {
    type master;
    file "/var/named/named.hosts";
  };
};

options选项中包含一些全局状态描述,这些描述信息在所有的zone文件和view中可见,但如果zone文件或view中重新定义这些描述信息,则options中的信息被覆盖

directory 指示 区域解析库文件路径为:/var/named/
allow-recursion {any;}; 表示允许递归
listen-on port 53 { 1.1.1.1 ;}; 表示监听1.1.1.1这个IP的53端口

view all 表示定义一个view all
view all 下有个zone xxx.com 这个zone 的配置文件为named.hosts

pid目录:/var/run/named/,在其下创建named.pid文件,使用时创建符号链接到其父目录

named.hosts配置文件

$ORIGIN XXX.com.
@   3600    IN  SOA     ns1.XXX.com. webmaster.XXX.com. 1435647476 10800 3600 3600 3600
www 3600    IN  CNAME   www.XXX.com.yhl.xyz.
@       3600    IN      NS              ns1.XXX.com.
ns1     3600    IN      A               3.3.3.3

@表示当前域,3600表示ttl,
ok到此为止配置创建好了。

提示如果配置文件改好了那么需要检查下配置文件是否配置正常。

named-checkconf /etc/named.conf 检查conf 文件是否正确
named-checkzone xxx.com /var/named 检查解析文件是否配置正确。

启动

刚开始启动named 建议加上调试以查看解析是否正确。

/usr/local/sbin/named -c /etc/named.conf -g -d 10

当然也可以直接
/usr/local/sbin/named -c /etc/named.conf
这里写图片描述

可以看到能够dig dig 测试域名也是同样如此说明安装成功了

### BIND 安装失败的原因与解决方案 BIND (Berkeley Internet Name Domain) 是互联网上广泛使用的域名系统(DNS)服务器软件。当遇到BIND安装失败的情况时,通常可以从以下几个方面排查问题: #### 1. 权限不足 如果在执行 `named-checkconf` 或者启动 BIND 服务时收到权限错误的信息,则可能是由于当前用户缺乏足够的权限来读取配置文件或写入日志文件。建议使用超级用户权限尝试重新运行命令[^2]。 #### 2. 配置文件语法错误 BIND 对其配置文件 `/etc/named.conf` 及区域数据文件有严格的格式要求。任何细微的拼写失误都可能导致解析失败。可以利用工具如 `named-checkconf` 和 `named-checkzone` 来验证配置的有效性[^1]。 ```bash $ named-checkconf /etc/named.conf $ named-checkzone example.com /var/named/example.db ``` #### 3. 文件路径不正确 指定给 BIND 的某些重要文件(比如根提示文件、密钥文件等)可能不存在于预期位置,或是相对路径被误解成绝对路径。确认所有提到的具体文件确实存在于所指明的位置,并且 BIND 进程能够访问这些资源。 #### 4. 端口冲突 DNS 协议默认监听 UDP/TCP 上的端口号 53 。如果有其他程序占用了这个端口,那么即使 BIND 成功加载也会因为无法绑定到所需端口而崩溃退出。通过 netstat 命令检查是否有进程正在占用该端口。 ```bash $ sudo netstat -tulnp | grep :53 ``` #### 5. SELinux/AppArmor 设置不当 安全增强型 Linux(Security-Enhanced Linux, SELinux) 或 AppArmor 类似的安全模块可能会阻止 BIND 正常工作。对于启用了此类功能的操作系统来说,应该适当调整策略规则以允许必要的网络通信和服务操作。 #### 6. 资源限制过高 有时操作系统级别的设置会施加过严苛的资源配额控制,例如最大打开文件数(`nofile`)、内存锁定大小(`memlock`)等,这会影响 BIND 启动过程中的性能表现甚至导致失败。查看并修改相应的 sysctl 参数可以帮助解决问题。 ```bash # 修改临时生效的方法 $ ulimit -n 65535 # 提高可打开的最大文件数量 $ sysctl -w fs.file-max=2097152 # 设定全局最大的文件句柄数目 # 若要永久更改,请编辑/etc/security/limits.conf以及/etc/sysctl.conf文件 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值