前言

有一台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. NE(Network Embedding)

    定义:找到一种映射函数,该函数将网络中的每个节点转换为低维度的潜在表示(即降维). 参考链接:https://www.jiqizhixin.com/articles/2018-08-14-10

  2. Python - Django - ORM 不常用字段

    BigAutoField(AutoField): bigint 自增列,必须填入参数 primary_key=True 如果没有写自增列,则会自动创建一个列名为 id 的列 SmallIntegerF ...

  3. NETTY 心跳机制

    最近工作比较忙,但闲暇之余还是看了阿里的冯家春(fengjiachun)的github上的开源代码Jupiter,写的RPC框架让我感叹人外有人,废话不多说,下面的代码全部截取自Jupiter,写了一 ...

  4. JQuery 自定义属性取值 赋值

    <span id="status_68" data-id="0" onclick="collection(68,false);" cl ...

  5. EMQ配置通过nginx反向代理wss和ws

    参考:https://www.cnblogs.com/succour/p/6305574.html EMQ官方文档:https://docs.emqx.io/broker/v3/cn/ 一,系统环境及 ...

  6. logstash 和filebeat 是什么关系

    因为logstash是jvm跑的,资源消耗比较大,所以后来作者又用golang写了一个功能较少但是资源消耗也小的轻量级的logstash-forwarder.不过作者只是一个人,加入http://el ...

  7. 微信小程序中的事件绑定

    前言: 微信小程序中的事件绑定和Vue中的事件绑定其实有很多的相似之处,所以如果有过Vue相关的经验,学起来的话还是比较容易的. js代码: // 页面级的js文件必须调用Page函数来注册页面, / ...

  8. [转帖]CentOS 7 安装 GlusterFS

    CentOS 7 安装 GlusterFS https://www.cnblogs.com/jicki/p/5801712.html 改天测试一下 我一直没有搞这一块呢.   CentOS 7 Glu ...

  9. istio网格可视化kiali部署

    前提: 已经安装了kubernetes 已经熟悉如何安装istio 熟悉kubernetes 和 istio 基本使用 注意文章红色加粗字体能上网 tip kubernetes 安装:centos7 ...

  10. ASP.NET请求过程-从源码角度研究MVC路由、Handler、控制器

    路由常用对象 RouteBase 用作表示 ASP.NET 路由的所有类的基类.        就是路由的一个基础抽象类. // // 摘要: // 用作表示 ASP.NET 路由的所有类的基类. [ ...