电竞比分网-中国电竞赛事及体育赛事平台

分享

Bind9 View - master / slave

 小若兮 2006-04-30

Bind9 View 底下的 master/slave 設(shè)定方案


作者﹕網(wǎng)中人 <netman@study-area.org>
版本:v0.02 日期:2004-06-19 * 版本歷程: 1) 2004-04-20 v0.01 - 初版 2) 2004-06-19 v0.02 - 修正範(fàn)例,將 127.0.0.1 加進(jìn) internal view 中 --------------------------------------- 一、前言 bind-9 自問世以來,深受廣大 dns 管理員歡迎(年紀(jì)越大越如此... ^_^), 是由於 bind9 提供了許多功能,解決了長期以來深受困擾的 dns 管理難題。 可是在新功能出現(xiàn)後,也帶來了一些前所不曾預(yù)料的新問題, 其中之一,就是 view 設(shè)定下的 master/slave 的同步問題。 二、問題分析 由於 master 端利用 view 的分界,按照不同的查詢來源位址回應(yīng)不同的答案。 這對一般的 query 工作是非常有效的。 倘若 master 與 slave 的對外與對內(nèi)界面均能相互指定路由(這是前提), 那只要在 slave 端不同的 view 內(nèi)指定 master 的不同 IP ,也能夠順利完成 zone transfer 。 但問題在於,當(dāng) slave 端在進(jìn)行 SOA 查詢及作 XFER 時(shí), 若 master 端只看到 client 端的某一特定來源位址,因而只能回應(yīng)單一的 view , 那就不能順利完成其他 view 的 zone transfer 。 三、解決方案 我們可利用 bind9 的 transfer-source 功能,在 slave 端指定其用來作 zone transfer 的 source address , 得以讓 master 回應(yīng)正確的 answer 。 其關(guān)鍵點(diǎn)是 slave 需設(shè)定多個(gè) IP (可分內(nèi)外或用 IP Alias),且都能讓 master 路由得到就行。 四、假設(shè)情景 - 假設(shè)授權(quán) domain 為 my.domain 。 - 假設(shè) master 的界面分配如下: - External: eth0 1.2.3.4 - Internal: eth1 10.1.2.3 - 假設(shè) slave 的界面分配如下: - Primary: eth0 10.1.2.4 - Alias: eth0:0 10.1.2.5 五、設(shè)定細(xì)節(jié): - master 修改 /etc/named.conf ,內(nèi)容類似如下: acl "lan" { 10.1.2.0/24; }; options { directory { "/var/named"; }; }; view "internal" { match-clients { !10.1.2.5; lan;127.0.0.1; }; // 這裡排除 slave 的另一位址 zone "." IN { type hint; file "named.root"; }; zone "my.domain" IN { type master; file "my.domain.int"; allow-transfer { 10.1.2.4; }; //允許 slave 的 primay 位址 }; }; view "external" { match-clients { any; }; recursion no; zone "." IN { type hint; file "named.root"; }; zone "my.domain" IN { type master; file "my.domain.ext"; allow-transfer { 10.1.2.5; }; //允許 slave 的 alias 位址 }; }; - slave 修改 /etc/named.conf ,內(nèi)容類似如下: acl "lan" { 10.1.2.0/24; }; options { directory { "/var/named"; }; }; view "internal" { match-clients { lan;127.0.0.1; }; zone "." IN { type hint; file "named.root"; }; zone "my.domain" IN { type slave; file "slave.my.domain.int"; masters { 10.1.2.3; }; transfer-source 10.1.2.4; // 指定 primay 位址 }; }; view "external" { match-clients { any; }; recursion no; zone "." IN { type hint; file "named.root"; }; zone "my.domain" IN { type slave; file "slave.my.domain.ext"; masters { 10.1.2.3; }; transfer-source 10.1.2.5; // 指定 alias 位址 }; }; 六、測試: 當(dāng)設(shè)定完成後,只需重新啟動(dòng) master/slave 雙方的 bind 服務(wù)程式即可。 七、結(jié)語: Bind9 的功能很多是新概念,本文希望對有志探索 bind 這一神奇系統(tǒng)的同好有所幫助,且起拋磚引玉之用。 八、參考資料: - O‘Reilly, Linux Server Hacks: 100 Industrial-Strength Tips & Tools ---------------本文結(jié)束 -----------------------

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多