Bind9 View 底下的 master/slave 設定方案
2009-02-20 12:11
330 查看
Bind9 View 底下的 master/slave 設定方案作者﹕網中人 <netman@study-area.org>版本:v0.02日期:2004-06-19* 版本歷程:1) 2004-04-20 v0.01- 初版2) 2004-06-19 v0.02- 修正範例,將 127.0.0.1 加進 internal view 中---------------------------------------一、前言bind-9 自問世以來,深受廣大 dns 管理員歡迎(年紀越大越如此... ^_^),是由於 bind9 提供了許多功能,解決了長期以來深受困擾的 dns 管理難題。可是在新功能出現後,也帶來了一些前所不曾預料的新問題,其中之一,就是 view 設定下的 master/slave 的同步問題。二、問題分析由於 master 端利用 view 的分界,按照不同的查詢來源位址回應不同的答案。這對一般的 query 工作是非常有效的。倘若 master 與 slave 的對外與對內界面均能相互指定路由(這是前提),那只要在 slave 端不同的 view 內指定 master 的不同 IP ,也能夠順利完成 zone transfer 。但問題在於,當 slave 端在進行 SOA 查詢及作 XFER 時,若 master 端只看到 client 端的某一特定來源位址,因而只能回應單一的 view ,那就不能順利完成其他 view 的 zone transfer 。三、解決方案我們可利用 bind9 的 transfer-source 功能,在 slave 端指定其用來作 zone transfer 的 source address ,得以讓 master 回應正確的 answer 。其關鍵點是 slave 需設定多個 IP (可分內外或用 IP Alias),且都能讓 master 路由得到就行。四、假設情景- 假設授權 domain 為 my.domain 。- 假設 master 的界面分配如下:- External: eth0 1.2.3.4- Internal: eth1 10.1.2.3- 假設 slave 的界面分配如下:- Primary: eth0 10.1.2.4- Alias: eth0:0 10.1.2.5五、設定細節:- master修改 /etc/named.conf ,內容類似如下: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 ,內容類似如下: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 位址};};六、測試:當設定完成後,只需重新啟動 master/slave 雙方的 bind 服務程式即可。七、結語:Bind9 的功能很多是新概念,本文希望對有志探索 bind 這一神奇系統的同好有所幫助,且起拋磚引玉之用。八、參考資料:- O'Reilly, Linux Server Hacks: 100 Industrial-Strength Tips & Tools---------------本文結束 ----------------------- |
相关文章推荐
- BIND Master/Slave DNS 與 View 的搭配
- mysql高可用方案之主从架构(master-slave)
- Mysql---Master-slave复制方案
- mysql实现master-slave的replication方案
- mysql的master和slave同步方案
- MongoDB: master - slave 架构
- 保存一篇关于MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)...
- MySQL Replication(Master与Slave基本原理及配置)
- iOS应用架构谈-view层的组织和调用方案
- (精典教程)在MySql上实现Replication(Master 与 Slave 数据同步)
- Jenkins : 安装 master 和 slave
- Android WebView 常见问题及处理方案
- Android:手把手教你构建 WebView 的缓存机制 & 资源预加载方案
- Android 获得View截屏最优方案
- 部署Hadoop集群前奏之ssh如何不输入密码在Master与Slave之间访问
- redis 主从master-slave搭建及测试
- centos6.7(64 bit)安装mysql5.7.16 的用户与权限管理 (含主从复制【master/slave】)
- mysql学习足迹之三【MYSQL主从服务器配置说明(master&slave)】
- MySQL5.6 数据库主从同步安装与配置详解(Master/Slave)
- MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践