通過view實現智能DNS

DNS策略解析最基本的功能是可以智能的判斷訪問您網站的用戶,然后根據不同的訪問者把您的域名分別解析成不同的IP地址,然后跟DNS服務器內部的IP表匹配一下,看看用戶的類型,然后給用戶返回對應的IP地址。

原理介紹

DNS策略解析最基本的功能是可以智能的判斷訪問您網站的用戶,然后根據不同的訪問者把您的域名分別解析成不同的IP地址,然后跟DNS服務器內部的IP表匹配一下,看看用戶的類型,然后給用戶返回對應的IP地址。例如:一臺http服務器在不同地區有不同代理服務器,智能DNS會在用戶訪問這個http服務器的時候,自動識別用戶的IP所在地區和哪個代理服務器最近(根據內部設置的表格識別),然后將代理服務器的IP地址返回給用戶讓其訪問,相當于進行了引導和負載均衡。
如下圖所示:
通過view實現智能DNS

應用場景

雙線路的機房:

服務本身有兩個IP,一個電信IP,一個網通IP或者其他線路。

鏡象網站:

在網通及電信的機房放置多個相同的鏡象站點, 讓不同的地方客戶訪問不同的站點。

負載均衡:

對于流量比較大的網站,可以把流量分配到幾臺不同的服務器上,以提高網站速度。

個性化站點服務:

比如通過IP表的重新定義, 讓國外的客戶自動訪問英文版的網站; 讓國內的客戶自動訪問中文版的網站。

CDN加速器:

通過與squid等WEB緩存軟件結合實現CDN加速器。

防止DDOS攻擊:

通過多個線路分散攻擊流量,從而達到抵擋DDOS攻擊。

CDN和智能DNS

CDN服務:

就是把靜態頁面緩存到不同地區很多臺專門的緩存服務器上,然后根據用戶線路所在的地區自動選擇一個最近的緩存服務器讓用戶訪問,以此提高速度,這種方案對靜態頁面效果非常好,同時它也需要智能DNS的幫助才能實現把用戶引導到離自己最近的緩存服務器上。

智能DNS:

本身并沒有加速功能,說白了就是自動識別網通、電信各線路的用戶,然后解析到不同的IP,起到一個引導作用。但是由于國內各地域、各系統的網絡環境各不相同,并不僅僅是簡單的電信、網通兩種資源,所以會有域名做了智能DNS后,其用戶訪問速度反而下降的情況發生。但是使用智能DNS,客戶源站是動態還是靜態內容則沒有影響,效果一樣。

BIND VIEW:

view:視圖,多個zone的組合。
一個bind服務器可定義多個view,每個view中可 義一個或多個zone
每個view用來匹配一組客戶端
多個view內可能需要對同一個區域進行解析,但使用不同的區域解析庫文件

格式: 
    view VIEW_NAME { 
        match-clients { testacl;  }; 
        zone “magedu.com” { 
            type master; 
            file “magedu.com.zone”; }; 
        include “/etc/named.rfc1912.zones”; 
    };
注意: 
    (1) 一旦啟用了view,所有的zone都只能定義在view中,包括根zone。
    (2) 僅在允許遞歸請求的客戶端所在view中定義根區域 
    (3) 客戶端請求到達時,是自上而下檢查每個view所服務 的客戶端列表

智能DNS的實現

要利用到調用ACL和view。通過定義的不同ACL來規定不同區域的主機,然后給這些不同的主機分配不同的訪問IP地址。
下面用一個小實驗來展示智能DNS的實現:通過搭建智能DNS實現來訪問www.hhy.com的河南用戶和北京用戶分別得到不同的服務器IP地址。

在主配置文件/etc/named.conf規定acl:

通過view實現智能DNS

在主配置文件/etc/named.conf配置view:

通過view實現智能DNS

配置不同用戶DNS配置文件:

北京用戶 vim named.rfc1912.zones.bj
通過view實現智能DNS

河南用戶 vim named.rfc1912.zones.hn
通過view實現智能DNS

配置不同用戶的區域數據庫文件

北京用戶 vim jzt.com.zone.bj
通過view實現智能DNS

河南用戶 vim jzt.com.zone.hn
通過view實現智能DNS

檢查配置

通過view實現智能DNS

在客戶端進行測試

通過view實現智能DNS

后記

雖然這個實驗相對來說比較簡單,但是想要深刻了解和理解DNS的工作原理以及智能DNS的詳細技術,還需要我們進行更像詳細和深刻的學習。本文只是一個引導大家進入這個世界的一條小路罷了

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/87566

(6)
OscaoChaserOscaoChaser
上一篇 2017-10-03 11:03
下一篇 2017-10-05 12:38

相關推薦

  • 在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件

    在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22。 ~]# touch /tmp/tfile-$(date +%Y-%m-%d-%H-%M-%S) ~]# tree /tmp 查看輸出結果 復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中。 …

    Linux干貨 2016-11-06
  • 深入理解php底層:php生命周期

    1、PHP的運行模式:     PHP兩種運行模式是WEB模式、CLI模式。無論哪種模式,PHP工作原理都是一樣的,作為一種SAPI運行。 1、當我們在終端敲入php這個命令的時候,它使用的是CLI。 它就像一個web服務器一樣來支持php完成這個請求,請求完成后再重新把控制權交給終端。 2、當使用Apache或者別web服務器…

    系統運維 2015-05-28
  • nginx初步

    一、知識整理 1、查看進程使用的cpu;ni查看nice值 [root@localhost html]# ps axo pid,comm,psr,ni  43769 nginx          &n…

    Linux干貨 2016-10-31
  • Nginx基本使用方法及各模塊基本功能

    一、Nginx介紹     Nginx是由俄羅斯軟件工程師Igor Sysoev開發的一個高性能的HTTP和反向代理服務器,具備IMAP/POP3和SMTP服務器功能,Nginx最大的特點是對高并發的支持和高效的負載均衡,在高并發的需求場景下,是Apache服務器不錯的替代品。目前,包括新浪、騰訊等知名網站都已使用Nginx作為Web應用…

    Linux干貨 2016-01-21
  • N25_第十周作業

    1、請詳細描述CentOS系統的啟動流程(詳細到每個過程系統做了哪些事情) POST –> BootSequence(BIOS) –>Bootloader(MBR) –>Kernel(ramdisk)–>rootfs(readonly)–>switchroot&#821…

    Linux干貨 2017-02-14
  • 第九周shell腳本編程練習

    1、寫一個腳本,判斷當前系統上所有用戶的shell是否為可登錄shell(即用戶的shell不是/sbin/nologin);分別這兩類用戶的個數;通過字符串比較來實現; 2、寫一個腳本 (1)?獲取當前主機的主機名,保存于hostname變量中; (2)?判斷此變量的值是否為localhost,如果是,則將當前主機名修改www.magedu.com; (3…

    2017-11-23
欧美性久久久久