DNS服务——域名解析转发 和 条件转发
前言
有一臺Linux機器作為DNS服務(wù)器,查看這臺機器上的DNS文件,發(fā)現(xiàn)指向互聯(lián)網(wǎng)上的DNS服務(wù)器。
[root@ziqiang named]# cat /etc/resolv.conf # Generated by NetworkManager nameserver 8.8.8.8 nameserver 222.222.222.222
View Code
那么問題來了,可以把這些互聯(lián)網(wǎng)上的DNS服務(wù)器刪掉,換成Linux服務(wù)器本身的IP嗎? 換句話說就是讓DNS服務(wù)器指向自己。
回答前言的問題
完全可以。
DNS服務(wù)安裝完畢后,他就有根提示,天生就知道互聯(lián)網(wǎng)上13個根DNS服務(wù)器。只要安裝DNS服務(wù)的那臺機器可以訪問Internet,就完全可以解析全球域名。
因此DNS服務(wù)器的/etc/resolv.conf完全可以指向自己,對于未知域名,DNS服務(wù)器上的DNS服務(wù)會自己找根DNS服務(wù)器進行域名解析,并把解析結(jié)果保存在本地DNS服務(wù)器上。當(dāng)然,/etc/resolv.conf指向Internet上的DNS服務(wù)器更是沒毛病。
域名解析轉(zhuǎn)發(fā)
回顧下DNS域名解析的過程
當(dāng)內(nèi)網(wǎng)計算機使用域名上網(wǎng)的時候,會先找該局域網(wǎng)內(nèi)的DNS服務(wù)器,即本地DNS服務(wù)器。由于本地DNS服務(wù)器上配置了zone,他知道自己掌管了哪些域名。所以,如果客戶機恰好請求的這些域名就是本地DNS管理的,本地DNS直接回復(fù)客戶機。如果本地DNS服務(wù)器,不知道你請求的域名,他會直接向根DNS請求,然后經(jīng)過DNS遞歸查詢,最終將域名解析結(jié)果返回給客戶機。
域名解析轉(zhuǎn)發(fā)(foward)
上面DNS域名解析是正常的流程,也是很多大學(xué)教材里面講解DNS域名解析過程用到的。下面介紹域名解析轉(zhuǎn)發(fā)
考慮如下場景,母公司內(nèi)部配置有本地DNS服務(wù)器,負(fù)責(zé)解析母公司內(nèi)部服務(wù)器域名以及互聯(lián)網(wǎng)上的域名。子公司與母公司物理距離較遠(yuǎn),兩地使用專線鏈接,專線帶寬不高。子公司內(nèi)部計算機不直接連接互聯(lián)網(wǎng)。
假如不在子公司內(nèi)部設(shè)置DNS服務(wù)器,子公司內(nèi)部計算機對母公司內(nèi)部域名解析請求以及互聯(lián)網(wǎng)上域名解析請求都會交由母公司的DNS服務(wù)器(為啥子公司電腦不直接填互聯(lián)網(wǎng)上的DNS?1.解析不到母公司私網(wǎng)的服務(wù)器 2.公司也不可能允許你這么做)。這部分域名解析流量會嚴(yán)重占用專用鏈路的帶寬,導(dǎo)致網(wǎng)絡(luò)阻塞。
在子公司內(nèi)部設(shè)置一個DNS服務(wù)器,但是這個DNS服務(wù)器又有點不同。對于自己不知道域名,他并沒有請求互聯(lián)網(wǎng)上的根DNS服務(wù)器,而是把域名解析的流量轉(zhuǎn)發(fā)給了母公司DNS服務(wù)器,這樣有效降低了專用鏈路上域名解析的帶寬占用。這種場景就是DNS轉(zhuǎn)發(fā)。
DNS轉(zhuǎn)發(fā)還有2種場景(或者說2個參數(shù))
①foward only 子公司DNS服務(wù)器指向母公司DNS服務(wù)器請求DNS解析。如果母公司DNS服務(wù)器掛了 或 子公司到母公司鏈路故障 或 母公司DNS上不了網(wǎng)(子公司DNS服務(wù)器可以解析母公司內(nèi)網(wǎng)服務(wù)器域名),子公司DNS服務(wù)器無法解析Internet域名
②foward first 子公司DNS服務(wù)器優(yōu)先指向母公司DNS服務(wù)器,如果母公司DNS服務(wù)器連不上(比如子公司到母公司的鏈路故障)會使用子DNS服務(wù)器保存的根DNS服務(wù)器來解析域名(這時候無法解析母公司內(nèi)網(wǎng)域名,可以解析Internet域名)。
如果子公司到母公司之間鏈路是好的,單純母公司DNS服務(wù)器上不了網(wǎng)。子公司可以解析母公司內(nèi)網(wǎng)服務(wù)器域名,但是無法解析Internet域名。
配置域名解析轉(zhuǎn)發(fā)
在子公司DNS服務(wù)器上修改配置文件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 53 { any; };
listen-on-v6 port 53 { ::1; };
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/24;192.168.90.0/24;};
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";
View Code
針對這個文件主要注意如下兩個字段
forward only;
forwarders {192.168.60.111;};
View Code
forward only; 表明DNS轉(zhuǎn)發(fā)模式
forwarders {192.168.60.111;}; 轉(zhuǎn)發(fā)給母公司哪個DNS服務(wù)器,可以設(shè)置多個
重啟nemed服務(wù) service named restart
域名解析條件轉(zhuǎn)發(fā)
forward only;
forwarders {192.168.60.111;};
上面講域名解析轉(zhuǎn)發(fā)的時候添加的2個字段是針對所有域名的,還可以設(shè)置條件轉(zhuǎn)發(fā)。
考慮如圖場景,有2個DNS服務(wù)器,分別負(fù)責(zé)abc.com和xyz.com域名。對于左邊DNS服務(wù)器下面的客戶機,解析xyz.com域名時,通過條件轉(zhuǎn)發(fā)可以直接找右邊DNS服務(wù)器,而不是直接找根DNS服務(wù)器。
在左邊DNS服務(wù)器上編輯文件/etc/named.conf加上下面一段話
[root@WebServer ~]# vi /etc/named.conf
zone "xyz.com." {
type forward;
forwarders { 192.168.80.111;};
};
View Code
總結(jié)
以上是生活随笔為你收集整理的DNS服务——域名解析转发 和 条件转发的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 抓包工具fiddler下载配置(三):手
- 下一篇: 小白学习安全测试(四)——扫描工具-Ve