前言

有一台Linux机器作为DNS服务器,查看这台机器上的DNS文件,发现指向互联网上的DNS服务器。

[root@ziqiang named]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 8.8.8.8
nameserver 222.222.222.222

那么问题来了,可以把这些互联网上的DNS服务器删掉,换成Linux服务器本身的IP吗? 换句话说就是让DNS服务器指向自己。

回答前言的问题

完全可以。

DNS服务安装完毕后,他就有根提示,天生就知道互联网上13个根DNS服务器。只要安装DNS服务的那台机器可以访问Internet,就完全可以解析全球域名。

因此DNS服务器的/etc/resolv.conf完全可以指向自己,对于未知域名,DNS服务器上的DNS服务会自己找根DNS服务器进行域名解析,并把解析结果保存在本地DNS服务器上。当然,/etc/resolv.conf指向Internet上的DNS服务器更是没毛病。

域名解析转发

回顾下DNS域名解析的过程

当内网计算机使用域名上网的时候,会先找该局域网内的DNS服务器,即本地DNS服务器。由于本地DNS服务器上配置了zone,他知道自己掌管了哪些域名。所以,如果客户机恰好请求的这些域名就是本地DNS管理的,本地DNS直接回复客户机。如果本地DNS服务器,不知道你请求的域名,他会直接向根DNS请求,然后经过DNS递归查询,最终将域名解析结果返回给客户机。

域名解析转发(foward)

上面DNS域名解析是正常的流程,也是很多大学教材里面讲解DNS域名解析过程用到的。下面介绍域名解析转发

考虑如下场景,母公司内部配置有本地DNS服务器,负责解析母公司内部服务器域名以及互联网上的域名。子公司与母公司物理距离较远,两地使用专线链接,专线带宽不高。子公司内部计算机不直接连接互联网。

假如不在子公司内部设置DNS服务器,子公司内部计算机对母公司内部域名解析请求以及互联网上域名解析请求都会交由母公司的DNS服务器(为啥子公司电脑不直接填互联网上的DNS?1.解析不到母公司私网的服务器 2.公司也不可能允许你这么做)。这部分域名解析流量会严重占用专用链路的带宽,导致网络阻塞。

在子公司内部设置一个DNS服务器,但是这个DNS服务器又有点不同。对于自己不知道域名,他并没有请求互联网上的根DNS服务器,而是把域名解析的流量转发给了母公司DNS服务器,这样有效降低了专用链路上域名解析的带宽占用。这种场景就是DNS转发。

DNS转发还有2种场景(或者说2个参数)

foward only  子公司DNS服务器指向母公司DNS服务器请求DNS解析。如果母公司DNS服务器挂了 或 子公司到母公司链路故障 或 母公司DNS上不了网(子公司DNS服务器可以解析母公司内网服务器域名),子公司DNS服务器无法解析Internet域名

foward first   子公司DNS服务器优先指向母公司DNS服务器,如果母公司DNS服务器连不上(比如子公司到母公司的链路故障)会使用子DNS服务器保存的根DNS服务器来解析域名(这时候无法解析母公司内网域名,可以解析Internet域名)。

如果子公司到母公司之间链路是好的,单纯母公司DNS服务器上不了网。子公司可以解析母公司内网服务器域名,但是无法解析Internet域名。

配置域名解析转发

在子公司DNS服务器上修改配置文件named.conf

[root@ziqiang named]# cat /etc/named.conf
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
// options {
listen-on port { any; };
listen-on-v6 port { ::; };
directory "/var/named";
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 { 192.168.80.0/;192.168.90.0/;};
recursion yes; forward only;
forwarders {192.168.60.111;}; dnssec-enable no;
dnssec-validation no;
dnssec-lookaside no; /* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key"; managed-keys-directory "/var/named/dynamic";
}; logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
}; zone "." IN {
type hint;
file "named.ca";
}; include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

针对这个文件主要注意如下两个字段

forward only;
forwarders {192.168.60.111;};

forward only;  表明DNS转发模式

forwarders {192.168.60.111;};  转发给母公司哪个DNS服务器,可以设置多个

重启nemed服务 service named restart

域名解析条件转发

forward only;

forwarders {192.168.60.111;};

上面讲域名解析转发的时候添加的2个字段是针对所有域名的,还可以设置条件转发。

考虑如图场景,有2个DNS服务器,分别负责abc.com和xyz.com域名。对于左边DNS服务器下面的客户机,解析xyz.com域名时,通过条件转发可以直接找右边DNS服务器,而不是直接找根DNS服务器。

在左边DNS服务器上编辑文件/etc/named.conf加上下面一段话

[root@WebServer ~]# vi /etc/named.conf
zone "xyz.com." {
type forward;
forwarders { 192.168.80.111;};
};

DNS服务——域名解析转发 和 条件转发的更多相关文章

  1. DNS服务——域名解析委派

    域名解析委派 域名解析委派和DNS域名解析递归查询很像,举个例子解释域名解析委派 ①假设在.net域名下有台计算机想要访问www.cac.com. ②.net这台DNS服务器不知道www.cac.co ...

  2. DNS服务——域名解析容错

    介绍 DNS服务至关重要,你我每天访问网站不可能是记忆IP地址.因此DNS服务器的可靠性至关重要.下面介绍DNS服务器容错机制,看图 为了防止DNS服务器故障不再提供服务,引入辅助DNS服务器.辅助D ...

  3. centos DNS服务搭建 DNS原理 使用bind搭建DNS服务器 配置DNS转发 配置主从 安装dig工具 DHCP dhclient 各种域名解析记录 mydns DNS动态更新 第三十节课

    centos  DNS服务搭建  DNS原理  使用bind搭建DNS服务器 配置DNS转发 配置主从  安装dig工具  DHCP  dhclient  各种域名解析记录  mydns DNS动态更 ...

  4. 【Linux】DNS服务-BIND从服务器、缓存服务器及转发服务器配置(三)

    环境 操作系统:CentOS 6.5 DNS软件:bind(安装参照:[Linux]DNS服务-BIND基础配置(二)) BIND从服务器 从服务器就是在bind的主配置文件中添加从域example. ...

  5. Bind DNS服务——转发与区域记录更新

    Linux基础服务--Bind DNS服务 Part4 转发与区域记录更新 一个DNS服务器不可能保存所有的区域记录,所以我们一般都会将其他的区域纪录转发到其他的服务器上进行解析. Bind9提供了全 ...

  6. DNS之BIND使用小结(Forward转发)

    之前详细介绍了DNS及其在linux下的部署过程,今天再说下DNS的BIND高级特性-forwarder转发功能.比如下面一个案例:1)已经在测试环境下部署了两台内网DNS环境,DNS的zone域名为 ...

  7. Spring cloud微服务安全实战-5-4请求转发及退出

    步骤1234已经完成 下面处理 5678这几步.zuul在转发的时候 把请求头加上 获取订单信息 加一个按钮,登陆成功后,去拿订单的信息. 展示获取到的订单信息 ts代码 ts内定义order对象 定 ...

  8. Public DNS (公共域名解析服务)

    114DNS 服务IP:114.114.114.114, 114.114.115.115 拦截 钓鱼病毒木马网站:114.114.114.119, 114.114.115.119 拦截 色情网站:11 ...

  9. 3、dns服务搭建

    3.1.dns服务简介: 1.DNS(Domain Name System)域名系统. 目前提供网络服务的应用使用唯一的32位的IP地址来标识,但是由于数字比较复杂.难以记忆,因此产生了域名系统(DN ...

随机推荐

  1. 【JS新手教程】JS获取当前星期几的几种方法

    该文通过获取星期几的几种方法,介绍JS里的数组,判断,和字符串截取,可以当作新手教程看,小白也看的懂.获取星期几,可通过Date()对象的getDay()获取,获取的是一个数字,对应的是0,1,2,3 ...

  2. 【Leetcode_easy】1160. Find Words That Can Be Formed by Characters

    problem 1160. Find Words That Can Be Formed by Characters solution class Solution { public: int coun ...

  3. adb中文乱码问题怎么解决?

    1.chcp 65001      执行完命令后 2.在cmd命令弹出的终端页面,右键单击属性设置成字体Lucida Console ,设置完成就解决了 adb 中文乱码问题

  4. Appium移动自动化测试-----(八)定位控件

    appium 通过 uiautomatorviewer.bat 工具来查看控件的属性.该工具位于 Android SDK 的 /tools/bin/ 目录下. id 定位 通过uiautomatorv ...

  5. centos7修改yum源为阿里镜像

    参考博客: https://blog.csdn.net/kxwinxp/article/details/78578492 https://blog.csdn.net/inslow/article/de ...

  6. PHP与Cookie

    不管什么语言写的cookie,本质上没区别. cookie 常用于识别用户.cookie 是服务器留在用户计算机中的小文件.每当相同的计算机通过浏览器请求页面时,它同时会发送 cookie.通过 PH ...

  7. [转帖]AMD三代锐龙线程撕裂者命名曝光:24核心3960X

    AMD三代锐龙线程撕裂者命名曝光:24核心3960X https://www.cnbeta.com/articles/tech/900271.htm 一直搞不懂TDP啥意思 可能会高于TDP的功率.. ...

  8. Asp.Net Core中创建多DbContext并迁移到数据库

    在我们的项目中我们有时候需要在我们的项目中创建DbContext,而且这些DbContext之间有明显的界限,比如系统中两个DbContext一个是和整个数据库的权限相关的内容而另外一个DbConte ...

  9. 题解 CF1216A 【Prefixes】

    题目大意:给你一个长度为$n$($n$为偶数)的字符串,且这个字符串仅由$'a'$与$'b'$两种字符组成,要你用最少的操作次数使得 $s[i]!=s[i-1] (i/2=0,1≤i≤n)$(若字符串 ...

  10. 【MIT 6.824 】分布式系统 课程笔记(二)Lecture 03 : GFS

    Lecture 03 : GFS 一.一致性 1, 弱一致性 可能会读到旧数据 2, 强一致性 读到的数据都是最新的 3, 一致性比较 强一致性对于app的写方便, 但是性能差 弱一致性有良好的性能, ...