本篇博客主要介绍如何在linux上构建简易dns服务器,内容涵盖本地dns解析,主从dns服务器区域传送、rndc的使用以及如何在主域中添加子域

说明:

本实验操作均在VMware10上实现,需要准备三台虚拟机(Redhat Enterprise Linux 5.8),一台作为主dns服务器,一台作为从dns服务器使用,另一台作为子域dns服务器,当然也可以通过克隆的方式克隆主dns服务器虚拟机并重新配置IP即可。作者将主dns服务器端IP设为:192.168.134.2,从dns服务器端的IP设为:192.168.134.22,子域dns服务器的IP设为:192.168.134.8。根据个人设定不同,需要修改相应配置文件中的设置。

实现:

1、安装bind97(主从dns服务器都需要安装)

说明:系统上已经安装了bind,需先卸载相关软件包

bind97安装后的部分文件介绍:

/etc/named.conf: 主配置文件(权限640)

options: 全局选项,定义bind软件的工作属性:监听设置 (选项:“值”)

directory: 指明数据文件目录

logging: 定义如何生成和保存日志

zone: 定义区域

include: 包含其它路径下的配置文件

/usr/sbin/

named-checkconf: 检查配置文件是否有语法错误

named-checkzone:区域配置文件是否有语法错误

named-compilezone:编译zone

/var/named/:区域数据文件存放路径

named.ca:13个根节点服务器的地址(A-M),可使用bind97-utils手动生成

named.localhost: 主机名正向解析数据文件

named.loopback: 主机名反向解析数据文件

    bind list all bind*yum remove bindyum remove bind-libsyum -y install bind97-utilsyum -y install bind97-libsyum -y install bind97rpm -ql bind97   # 查看bind97安装后生成的文件列表cp /etc/named.conf /etc/named.conf.orig # 备份主配置文件

2、配置主dns服务器

1、修改主配置文件

说明:

directory "/var/named":数据文件存放路径

allow-recursion:定义允许递归查询的IP范围

type hint:指明域类型

file "named.ca":指定域数据文件存放路径(使用的是相对路径 == /etc/named/named.ca)

allow-transfer { none; }:定义允许指定IP的服务器进行区域传送,一般指定为从服务器IP

    vim /etc/named.conf# 修改主配置文件为:options {directory "/var/named";allow-recursion { 192.168.134.0/24; };};zone "." IN {type hint;file "named.ca";};zone "localhost" IN {type master;file "named.localhost";allow-transfer { none; };};zone "0.0.127.in-addr.arpa" IN {type master;file "named.loopback";allow-transfer { none; };};zone "tb.com" IN {type master;file "tb.com.zone";allow-transfer { 192.168.134.22; };};zone "134.168.192.in-addr.arpa" IN {type master;file "192.168.134.zone";allow-transfer { 192.168.134.22; };};

2、新建对应的区域数据文件

说明:

@:在DNS文件中表示域名

SOA: 起始授权记录

NS:dns服务器记录

MX:邮件记录

A: IPv4地址正向解析记录

CNAME: 别名记录

PTR: 反向域名解析记录

    cd /var/namedvim tb.com.zone# 编辑资源记录如下$TTL 600@       IN      SOA     ns1.tb.com.     admin.tb.com. (20160528011H  5M  2D  1H )IN      NS      ns1 IN      NS      ns2 IN      MX  10  mailns1     IN      A       192.168.134.2ns2     IN      A       192.168.134.22www     IN      A       192.168.134.3mail    IN      A       192.168.134.4ftp     IN      CNAME   www tb.com  IN      A       192.168.134.3vim 192.168.134.zone# 编辑资源记录如下$TTL 600@       IN      SOA     ns1.tb.com.     admin.tb.com. (20160528011H  5M  2D  1H )IN      NS      ns1.tb.com.IN      NS      ns2.tb.com.3       IN      PTR     www.tb.com.4       IN      PTR     mail.tb.com.# 修改数据文件的属主、属组以及权限chown root:named tb.com.zonechmod 640 tb.com.zonechown root:named 192.168.134.zonechmod root:named 192.168.134.zone

3、修改dns配置

    vim /etc/resolv.conf# 添加如下记录并将其它nameserver记录暂时注释 nameserver 192.168.134.2

4、启用服务

        service named start

5、至此,主dns服务器的配置就完成了,先使用dig测试

dig简要说明:

dig -t NS tb.com @192.168.134.2

-t: 指定资源记录类型

tb.com:查询对象

@IP:指定使用指定的dns服务器进行查询

作者测试结果:

3、配置从dns服务器

1、编辑主配置文件

    vim /etc/named.conf# 编辑配置文件如下,与主dns服务器的区别在于type slaveoptions {directory  "/var/named";};zone "." IN {type hint;file "named.ca";};zone "localhost" IN {type master;file "named.localhost";allow-transfer { none; };};zone "0.0.127.in-addr.arpa" IN {type master;file "named.loopback";allow-transfer { none; };};zone "tb.com" IN {type slave;file "slaves/tb.com.zone";masters { 192.168.134.2; };allow-transfer { none; };};zone "134.168.192.in-addr.arpa" IN {type slave;file "slaves/192.168.134.zone";masters { 192.168.134.2; };allow-transfer { none; };};

2、至此,从dns服务器配置已完成,启用服务

        service named start

3、测试主从dns服务器完全区域传送

作者测试结果

4、给dns服务器添加远程域名服务器控制器(rndc)

1)、实现本地rndc控制,本操作在主dns服务器中完成

1、生成rndc配置文件

    rndc-confgen > /etc/rndc.confvim /etc/rndc.conf# 复制所需内容追加至/etc/named.conf文件中# 所需复制内容如下:# Use with the following in named.conf, adjusting the allow list as needed:# key "rndc-key" {#       algorithm hmac-md5;#       secret "qMdLUBIveV7aEDn87esq5g==";# };# # controls {#       inet 127.0.0.1 port 953#               allow { 127.0.0.1; } keys { "rndc-key"; };# };# End of named.conf>.,$-1w >> /etc/named.conf

2、编辑主配置文件

    vim /etc/named.conf# 去除rndc文件注释# 即修改追加内容为:# Use with the following in named.conf, adjusting the allow list as needed:key "rndc-key" {algorithm hmac-md5;secret "qMdLUBIveV7aEDn87esq5g==";};controls {inet 127.0.0.1 port 953allow { 127.0.0.1; } keys { "rndc-key"; };};

3、测试本地rndc控制

说明:rndc -c /etc/rndc.conf status

-c: 指定rndc的配置文件

status: 查看状态信息

(rndc命令的使用可使用rndc -h查看)

rm -f /etc/rndc.key # 删除bind启用后自动生成的rndc.key

service named restart

rndc -c /etc/rndc.conf status

作者测试结果:

1)、实现远程rndc控制

1、修改主dns服务器中的主配置文件

    vim /etc/named.conf# 修改内容如下:controls {inet 192.168.134.2 port 953 allow { 192.168.134.22; } keys { "rndc-key"; };};

2、复制主dns服务器中的rndc配置文件至从dns服务器中(主dns服务器中执行)

注意:在复制时需要注意避免文件覆盖问题,这里复制配置文件至/root目录下

        scp /etc/rndc.conf 192.168.134.22:/root/

3、在从dns服务器中修改rndc配置文件

    vim rndc.conf# 修改默认服务器IP:options {default-key "rndc-key";default-server 192.168.134.2;default-port 953;};

4、测试远程rndc控制

作者测试结果:

5、往主域中添加子域

说明:当前主域为tb.com.,当前目的是在主域中添加子域fin.tb.com.;

以下内容是基于上述操作实现后的补充内容,基本操作与上述相同,因此部分内容省略

1、修改主域数据文件,为子域授权

    vim /var/named/tb.com.zone# 添加授权记录并修改序列号(序列号+1):fin     IN      NS      ns1.finns1.fin IN      A       192.168.134.8

2、在反向域中添加资源记录

    vim 192.168.134.zone # 添加以下记录(序列号+1):IN      NS      ns1.fin.tb.com.

3、重启主域dns服务器

server named restart

4、启用并配置子域主机,这里设置子域主机IP为:192.168.134.8

    vim /etc/named.conf# 此时当前主机域为fin.tb.com,并设置子域访问主域时采用转发域的形式访问# 主要变动内容如下:zone "fin.tb.com" IN {type master;file "fin.tb.com.zone";};zone "tb.com" IN {type forward;forward first;forwarders { 192.168.134.2; };};vim /var/named/fin.tb.com.zone# 添加数据文件# 编辑内容如下:$TTL 600@       IN      SOA     ns1.fin.tb.com. admin.fin.tb.com. (20160528011H5M2D1H )IN      NS      ns1IN      MX  10  mailns1     IN      A       192.168.134.8www     IN      A       192.168.134.10mail    IN      A       192.168.134.9

修改记录文件的属主、属组及权限

    cd /var/named/chown root:named fin.tb.com.zonechmod 640 fin.tb.com.zoneservice named start

5、子域测试

好了,以上就是bind相关的部分操作,缺漏处还望指出

转载于:https://blog.51cto.com/tobeys/1784405

使用bind构建本地简易dns服务器相关推荐

  1. dns服务期搭建使用_使用maradns搭建简易dns服务器(本地实现dns劫持)

    需求描述 本地搭建服务器,并且使用啦一个本地域名 test.loc 通过host解析到本地服务器,开发一个网页后想让手机直接访问test.loc来打开电脑上的网站,想实现这样的功能首先得让手机访问这个 ...

  2. dns 服务器 linux_在Linux上构建自己的DNS服务器

    dns 服务器 linux 在这个分为两部分的系列的上一篇文章中, DNS简介(域名系统)中 ,我描述了DNS数据库的结构以及如何在客户端上配置名称服务. 我还列出并描述了一些在构建名称服务器或尝试解 ...

  3. 本地配置DNS服务器(MAC版)

    转自 https://www.cnblogs.com/skylor/p/7483959.html 作为一个前端开发者,会遇到使用cookie的情况,常见的如:登录,权限控制,视频播放,图形验证码等,这 ...

  4. 本地连接dns服务器没响应,dns服务器未响应,教您dns服务器未响应怎么解决

    dns服务器未响应是我们日常使用电脑上网时常遇到的网络故障之一.碰到这个情况的用户太多了,但是基本没有同一的解决方法,笔者当然也经常碰到,尤其是这几天,都快砸电脑了,太影响工作了,没有办法自己动手了, ...

  5. 联想一体机DNS服务器未响应,本地诊断dns服务器未响应怎么解决 处理电脑本地诊断dns服务器未响应的方法...

    1.DNS服务器地址错误,遇到这种情况,先重启电脑试一试,或者把ADSL猫及路由器都重启一下.如果还不行,进入网络共享中心的网络连接窗口,选择本地连接,右键,选择"属性".如果用的 ...

  6. dnsmasq搭建简易DNS服务器

    一.dnsmasq简介 dnsmasq是一款小巧且方便地用于配置DNS服务器和DHCP服务器的工具,适用于小型网络,它提供了DNS解析功能和可选择的DHCP功能. dnsmasq可以解决小范围的dns ...

  7. 烂泥:dnsmasq搭建简易DNS服务器

    本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb. 今天我们来介绍一个比较简单的DNS服务器dnsmasq.这款软件,已经被我成功使用到公 ...

  8. centos6 dns转发_centos 6.5 bind 配置仅转发DNS服务器

    首先是基本的配置文件: vi /etc/named.confoptions { listen-on port 53 { any; }; #本机侦听网卡: directory "/var/na ...

  9. dnsmasq windows版_烂泥:dnsmasq搭建简易DNS服务器

    本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb. 今天我们来介绍一个比较简单的DNS服务器dnsmasq.这款软件,已经被我成功使用到公 ...

最新文章

  1. java 过滤器 加参数,自定义授权过滤器属性参数
  2. NLP-基础知识-007(机器学习-朴素贝叶斯)
  3. 数据库(Mysql)背后的数据结构-学习
  4. idea GsonFormat插件使用报错 StringIndexOutOfBoundsException: begin 0, end -1, length 9
  5. 概率论-3.5 条件分布与条件期望
  6. Ubuntu 的 bash和dash的区别
  7. raspberry树莓派安装CUPS实现打印服务器共享HP P1007打印机
  8. javascript的bind方法
  9. HDU-4035 Maze 概率DP
  10. AcWing 1750. 救生员(差分+暴力枚举)
  11. Wifite批量破解WEP/WPA/WPS
  12. 在无任何报错的情况下 pagehelper.startpage分页无效问题
  13. Android人脸检测功能和检测特效
  14. 不叫 Andromeda?Google 新系统疑为 Fuchsia
  15. js 防止网络慢时 表单重复提交问题
  16. 书法作品落款时间的农历传统雅称摘要
  17. 地理信息系统软件学习:利用Arcgis创建掩膜并根据掩膜裁剪地图
  18. 你对浏览器的兼容性有了解吗?
  19. 获取图像的Hu不变矩
  20. 1020: 算法提高 聪明的美食家

热门文章

  1. web前端小项目个人实例_Web前端:小程序界面与逻辑项目实训
  2. java串口设备中断_利用DMA双缓冲或半完成中断实现串口不定长数据的接收
  3. python写一个表白程序_用Python个女神做一个表白神器
  4. php怎么代表不同行,php – 单击按钮时显示数据库的不同行
  5. 图表下面的文字怎么变竖排_Excel中如何制作多维组合图表?
  6. 传递function_JS中!function(){}()的理解
  7. linux运行 打开计算器,Linux 里头命令行打开计算机 怎么输入
  8. 20191023:(leetcode习题)最大连续1的个数 III
  9. java请求百度短链接_长链接生成短链接Java源码(调用百度接口)
  10. 6010dn 华为 组网 胖ap_1、认识胖瘦AP以及组网场景