前言

有一台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. 前端研究CSS之文字与特殊符号元素结合的浏览器兼容性总结

    页面布局里总是会有类似 “文字 | 文字” 的设计样式,不同的浏览器存在严重偏差. 有兼容问题就要解决,下面总结了3种解决方案,分享给大家: 一.系统默认的样式 1.元素换行的段落 <div c ...

  2. 13点睛Spring4.1-Spring EL

    13.1 Spring EL Spring EL-Spring表达式语言,支持在xml和注解中使用表达式,类似jsp的EL表达式语言; 本教程关注于在注解中使用Spring EL; Spring EL ...

  3. web端调起Windows系统应用程序(exe执行文件),全面兼容所有浏览器

    1. 首先,你要有一个exe可执行文件2. 创建注册表创建注册表有两种方式(以“MyApp.exe”为例): 方式一:可视化编辑Win+R 打开运行,输入 regedit 并回车,进入注册表编辑器新建 ...

  4. Git master合并分支时提示“Already up-to-date”

    Git master合并分支时提示"Already up-to-date" ​ 在使用Git把当前分支合并到master提示"Already up-to-date&quo ...

  5. 剑指offer31:整数中1出现的次数(从1到n整数中1出现的次数)

    1 题目描述 求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1.10.11.12.13因此共出现6次,但是对于后面问题他就没辙 ...

  6. Django框架1——视图和URL配置

    三个命令 1.创建一个django项目 在cmd中:django-admin.py startproject project_name D:\python\django_site>django- ...

  7. go select 的default

    当 select 中的其他条件分支都没有准备好的时候,`default` 分支会被执行. 为了非阻塞的发送或者接收,可使用 default 分支: select { case i := <-c: ...

  8. NodeJS入门--环境搭建 IntelliJ IDEA

    NodeJS入门–环境搭建 IntelliJ IDEA 本人也刚开始学习NodeJS,所以以此做个笔记,欢迎大家提出意见. 1.首先 下载安装NodeJS,下载安装IntelliJ IDEA 2.接下 ...

  9. 怎样让ssh连接保持连接, 而不会因为没有操作而中断

    因为安全方面的考虑, ssh服务默认在一段时间内不操作会断开连接, 解决方法修改ssh的配置文件, 让ssh每隔一段时间就自动进行一次连接, 以达到保持连接的目的. 首先找到ssh配置文件的位置: f ...

  10. Java版Kafka使用及配置解释

    Java版Kafka使用及配置解释 一.Java示例 kafka是吞吐量巨大的一个消息系统,它是用scala写的,和普通的消息的生产消费还有所不同,写了个demo程序供大家参考.kafka的安装请参考 ...