免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12345下一页
最近访问板块 发新帖
查看: 36539 | 回复: 45
打印 上一主题 下一主题

[DNS] [設定心得] Bind9 View 底下的 master/slave 設定方案 [复制链接]

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-04-20 15:43 |只看该作者 |倒序浏览
新版本可從如下獲得:
http://www.study-area.org/tips/bind9_view.htm


[設定心得] Bind9 View 底下的 master/slave 設定方案
---------------------------------------
作者:netman(netman@study-area.org)
版本:v0.01
日期:2004-04-20

* 版本歷程:
1) 2004-04-20 v0.01
- 初版

---------------------------------------


一、前言

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 ,內容類似如下:
  1. acl "lan" { 10.1.2.0/24;  };

  2. options { directory { "/var/named"; }; };

  3. view "internal" {
  4. match-clients { !10.1.2.5; lan; };  // 這裡排除 slave 的另一位址
  5. zone "." IN {
  6.   type hint;
  7.   file "named.root";
  8. };
  9. zone "my.domain" IN {
  10.   type master;
  11.   file "my.domain.int";
  12.   allow-transfer { 10.1.2.4; }; //允許 slave 的 primay 位址
  13. };
  14. };

  15. view "external" {
  16. match-clients { any; };
  17. recursion no;
  18. zone "." IN {
  19.   type hint;
  20.   file "named.root";
  21. };
  22. zone "my.domain" IN {
  23.   type master;
  24.   file "my.domain.ext";
  25.   allow-transfer { 10.1.2.5; }; //允許 slave 的 alias 位址
  26. };
  27. };
复制代码



- slave
修改 /etc/named.conf ,內容類似如下:
  1. acl "lan" { 10.1.2.0/24;  };

  2. options { directory { "/var/named"; }; };

  3. view "internal" {
  4. match-clients { lan; };
  5. zone "." IN {
  6.   type hint;
  7.   file "named.root";
  8. };
  9. zone "my.domain" IN {
  10.   type slaver;
  11.   file "slave.my.domain.int";
  12.   masters { 10.1.2.3; };
  13.   transfer-source 10.1.2.4; // 指定 primay 位址
  14. };
  15. };
  16. view "external" {
  17. match-clients { any; };
  18. recursion no;
  19. zone "." IN {
  20.   type hint;
  21.   file "named.root";
  22. };
  23. zone "my.domain" IN {
  24.   type master;
  25.   file "slave.my.domain.ext";
  26.   masters { 10.1.2.3; };
  27.   transfer-source 10.1.2.5; // 指定 alias 位址
  28. };
  29. };
复制代码




六、測試:

當設定完成後,只需重新啟動 master/slave 雙方的 bind 服務程式即可。


七、結語:

Bind9 的功能很多是新概念,本文希望對有志探索 bind 這一神奇系統的同好有所幫助,且
起拋磚引玉之用。


八、參考資料:

- O'Reilly, Linux Server Hacks: 100 Industrial-Strength Tips & Tools

---------------本文結束 -----------------------


--

======= http://www.study-area.org =======
飛雪迎春到﹐風雨送春歸
已是寒崖百丈冰﹐尤有花枝俏
俏也不爭春﹐只把春來報
待得山花爛漫時﹐他在叢中笑﹗

[ 本帖最后由 網中人 于 2006-5-16 18:40 编辑 ]

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
2 [报告]
发表于 2004-04-20 17:54 |只看该作者

[設定心得] Bind9 View 底下的 master/slave 設定方案

好文!简洁,易懂!

学到新东西啦! 多谢网中人斑竹呀!^_^

强烈要求给精华!!!!

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
3 [报告]
发表于 2004-04-22 22:53 |只看该作者

[設定心得] Bind9 View 底下的 master/slave 設定方案

强烈要求放入精华区!!! 我顶

论坛徽章:
0
4 [报告]
发表于 2004-04-23 14:29 |只看该作者

[設定心得] Bind9 View 底下的 master/slave 設定方案

好!!!!!!!!!!!!!!!!!!!!!!!!!!
强烈要求放入精华区!!! 我顶

论坛徽章:
0
5 [报告]
发表于 2006-05-09 22:10 |只看该作者
allow-transfer 和 transfer-source 能否放在 view 这一层级?如果zone很多,每一个都要写,似乎很冗余!

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
6 [报告]
发表于 2006-05-09 23:11 |只看该作者
原帖由 红雨 于 2006-5-9 22:10 发表
allow-transfer 和 transfer-source 能否放在 view 这一层级?如果zone很多,每一个都要写,似乎很冗余!

又不是每天改. 設一次就好了...
還是, 你有更好的方法呢?

论坛徽章:
0
7 [报告]
发表于 2006-05-09 23:23 |只看该作者
我觉得主从服务器都应该配置两个 ip 比较合适

主从服务器的一对ip各组成一个 view ,同时再用  :

query-source address(从) + transfer-source (从)+ allow-notify (从)

notify-source (主)+allow-transfer (主)

来严格限定从服务器要获取那个 view 的那个 zone data file

这样虽然配置的语句较多,但对应关系会清楚一点

[ 本帖最后由 ailms 于 2006-5-9 23:27 编辑 ]

论坛徽章:
7
荣誉版主
日期:2011-11-23 16:44:17子鼠
日期:2014-07-24 15:38:07狮子座
日期:2014-07-24 11:00:54巨蟹座
日期:2014-07-21 19:03:10双子座
日期:2014-05-22 12:00:09卯兔
日期:2014-05-08 19:43:17卯兔
日期:2014-08-22 13:39:09
8 [报告]
发表于 2006-05-10 08:34 |只看该作者
原帖由 ailms 于 2006-5-9 23:23 发表
我觉得主从服务器都应该配置两个 ip 比较合适

主从服务器的一对ip各组成一个 view ,同时再用  :

query-source address(从) + transfer-source (从)+ allow-notify (从)

notify-source (主)+al ...

如果有多个view岂不是太浪费ip地址了。

论坛徽章:
0
9 [报告]
发表于 2006-05-10 13:14 |只看该作者
原帖由 r2007 于 2006-5-10 08:34 发表

如果有多个view岂不是太浪费ip地址了。


完全可以把 transfer-source 和 NS 记录中的 name server 在不同的ip段

只要用 also-notify + notify explict 就可以了.

无需占用实际应用的 ip

论坛徽章:
7
荣誉版主
日期:2011-11-23 16:44:17子鼠
日期:2014-07-24 15:38:07狮子座
日期:2014-07-24 11:00:54巨蟹座
日期:2014-07-21 19:03:10双子座
日期:2014-05-22 12:00:09卯兔
日期:2014-05-08 19:43:17卯兔
日期:2014-08-22 13:39:09
10 [报告]
发表于 2006-05-10 13:35 |只看该作者
原帖由 ailms 于 2006-5-10 13:14 发表


完全可以把 transfer-source 和 NS 记录中的 name server 在不同的ip段

只要用 also-notify + notify explict 就可以了.

无需占用实际应用的 ip

master和slave哥俩在一个物理网段里还好办,中间有路由就麻烦了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP