先列出参考文献,太重要了: BIND9安装指南 , 可以说如果没有这篇文章就不会有我这个博文了 - -

先描述下需求,之前写了个DNS服务,用作权威解析。

现在想要测试DNS转发的情况下是否可以正常使用,所以需要利用BIND模拟转发的情况,思路是:

1. 在A服务器部署权威DNS解析服务,并监听53端口(UDP);

2. 在B服务器上修改BIND配置,将对B服务器的DNS请求都转发(forward)到A服务器上去。

本机验证:

1. 利用dig指令,dig @xxx.xxx.xxx.xx(B服务器地址)  domain_name, 来看解析结果是否符合预期;

2. 直接将本机DNS服务器地址修改为B,然后利用ping指令, ping domain_name, 看解析的IP是否符合预期。

接下来开始工作:

首先利用apt-get安装BIND, 配置文件会在/etc/bind/ 路径下,主要是name.conf文件,现在版本的name.conf中其实只是引入了三个子配置文件:

// This is the primary configuration file for the BIND DNS server named.
//
// Please read /usr/share/doc/bind9/README.Debian.gz for information on the
// structure of BIND configuration files in Debian, *BEFORE* you customize
// this configuration file.
//
// If you are just adding zones, please do that in /etc/bind/named.conf.localinclude "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";

其中named.conf.options文件中用于配置options相关的,其中包括forwarders,转发配置。我们只需要在options {}中,找到forwarders {},添加我们的A服务器的地址即可,需要注意后边需要加分号。

BIND默认是通过systemd来管理进程的,所以执行 systemctl restart bind9 进行重启。

利用前文提到的验证方式在本机进行验证,结果返回了REFUSED...

翻回头去查看,在B服务器上,dig @127.0.0.1 domain_name,结果是可以的,说明我们B服务器上配置的forwarder是起作用的。那么问题应该是出在从我们本机到B服务器的这个环节了。在我的同事T的提醒下,利用tcpdump抓包,发现本机到B服务器并没有包的发送。于是他建议我在.options文件中添加 allow-query {0.0.0.0/0;}; 。

之后重启BIND服务,在B服务器上 dig @127.0.0.1 domain_name 正常,再在本机dig终于得到了预期结果。

PS: 在BIND9配置手册中,options的allow-query项是用来指定允许哪些主机可以进行普通的 DNS 查询,如果未指定,缺省是允许所有主机请求。所以感觉好像实际并不是这样,尚且未搞清楚原因,只能解释为不加这个转发不能allow吧 - -

ubuntu上BIND9安装及设置转发遇到的坑相关推荐

  1. nginx+PHP+PHP-FPM(FastCGI)在Ubuntu上的安装和配置

    nginx+PHP+PHP-FPM(FastCGI)在Ubuntu上的安装和配置 0 之前知识回顾:  1) 目前各种服务器HTTP Server对PHP的支持一共有三种: a.通过HTTPServe ...

  2. linux安装vi 插件,Ubuntu上Vim安装NERDTree插件的详细操作步骤

    NERDTree是Vim的文件系统浏览器,使用此插件,用户可以直观地浏览复杂的目录层次结构,快速打开文件以进行读取或编辑,以及执行基本的文件系统操作.NERDTree源码在https://github ...

  3. 大数据基础系列 4:伪分布式 Hadoop 在 Ubuntu 上的安装流程完整步骤及易错点分析

    文章目录 前言 一.创建 Ubuntu 用户 二.安装 Java 2.1.查看本地 Java 版本 2.2.验证 Java 在本地的配置情况 三.安装 ssh 服务 3.1.安装 openssh-se ...

  4. ROS indigo在Ubuntu上的安装教程

    ROS indigo在Ubuntu上的安装教程 1 安装 1.1 配置ubuntu仓库的属性 由于ROS属于社区支持,还有很多其他的库并不是官方支持的,所以需要修改ubuntu的仓库属性,让其允许获得 ...

  5. 中文语音对话 机器人 在 ubuntu 上的 安装

    开源项目叮当-中文语音对话机器人在ubuntu上的安装 在叮当的官网(http://dingdang.hahack.com)上看到,它这是如下图这样介绍叮当的,它的安装流程也是基于树莓派来写的流程.而 ...

  6. sql server能在linux上运行,在 Ubuntu 上可以安装 SQL Server 了~

    原标题:在 Ubuntu 上可以安装 SQL Server 了~ 导读 SQL Server现在可以在Linux上运行了!正如微软CEO Satya Nadella说的,"Microsoft ...

  7. 统计机器翻译(SMT)工具Moses在Ubuntu上的安装及使用(安装篇)

    统计机器翻译(SMT)工具Moses在Ubuntu上的安装及使用(安装篇) 前言 Ubuntu配置 1.关闭系统自动休眠(可选) 2.更换软件源 Moses安装 1.安装相关依赖包: 2.检查gcc和 ...

  8. Ubuntu上编译安装迅雷XwareDesktop

    Ubuntu上编译安装说明 本页介绍如何在Ubuntu 14.04及以上的系统上手动编译安装Xware Desktop. 由于迅雷官方没有发布64位版的xware,Xware Desktop的作者无法 ...

  9. Ubuntu上snmp安装、配置、启动及远程测试完整过程

    0.说明 关于一个完整的教程,还是那句话,国内的要么不完整,要么就太旧了,而且思路也不清晰,所以这里写一篇完整的给大家分享一下. 虽然对于Linux主机的监控可以通过执行特定的命令来完成,但是相比之后 ...

最新文章

  1. Netflix创始人:我不要求996,一样市值1万亿
  2. 阮一峰react demo代码研究的学习笔记 - React.createElement
  3. 智能家居(工厂模式)
  4. mybatis源码阅读(三):mybatis初始化(下)mapper解析
  5. 搜索时,怎样排除不需要的关键字
  6. Django账号绑定邮箱时发送链接
  7. linux 下的vi命令汇总
  8. [UE4]蓝图的颜色
  9. nginx与php处理用户请求,配置 NGINX 处理 PHP 的请求《 LEMP 网站应用运行环境 》
  10. vs visual stdio 调试 显示指针为数组
  11. iOS 开发常用链接总结
  12. self-hacking第五天
  13. **IEEE论文的检索下载及引用格式**
  14. Vue上传多张图片到服务器,数据库存储图片路径并将图片渲染到前端
  15. The <Router /> component appears to be a function component that returns报错解决方式
  16. 天网系统服务器码,天网管理系统
  17. 使用python解决图像识别中常见的问题
  18. 暗影精灵5风扇怎么调_惠普暗影精灵5内部结构是怎么样的 他的散热效果好不好呢...
  19. bootstrap-table表格排序问题
  20. 华宇软件华为鸿蒙,舒华体育携手华为打造:全球首款搭载鸿蒙操作系统跑步机面世...

热门文章

  1. request getRealPath 的替代方法
  2. java 注解之省略属性名value
  3. Word处理控件Aspose.Words功能演示:在 Java 中将 DOCX 转换为 JSON
  4. unity网络实战开发(丛林战争)-正式开发阶段(016-数据库设计以及登录处理)
  5. 在IE7及以下不能使用JSON.stringify函数的问题解决
  6. apache安装模块工具apxs
  7. 实现文字的无缝滚动、间歇性向上翻滚
  8. spark学习之并行度、并发、core数和分区的关系
  9. Kafka分布式发布订阅消息系统
  10. 纯 CSS 实现像极了爱情