免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12345
最近访问板块 发新帖
楼主: 網中人
打印 上一主题 下一主题

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

论坛徽章:
0
41 [报告]
发表于 2008-09-23 19:42 |只看该作者
有得学了! 感谢楼主

论坛徽章:
0
42 [报告]
发表于 2008-09-27 13:04 |只看该作者
在利用view配置时,有一个问题想请问各位老大:有两个域,一个内部域abc.sz,一个外部域abc.com.cn,在view的配置中,对于abc.com.cn这个域中的A记录,利用view来配置针对来源的IP地址不同解析后的地址不同(例如:对于192.168.10/24这个内网段的来源IP时,ftp.abc.com.cn解析成192.168.1.8,而对于外网的网段的来源IP时,ftp.abc.com.cn就解析成公网IP),这个功能的正解析己经实现。问题就在于反解析的设置,对于192.168.1.0/24这个内网段的来源IP时,内部域abc.sz与外部域abc.com.cn的反解析在zone中定义将会是一样的zone "1.168.192.in-addr.arpa",这样就会产生错误。请大家指教。

论坛徽章:
0
43 [报告]
发表于 2010-01-14 17:39 |只看该作者
搞了一星期多了,上来说说我的过程.
这时只说基于KEY的VIEW的master/slave,IP的哪种做法没搞成,也太落后了.

  1. BIND 9.3 and later: Use TSIG to select the appropriate view.

  2. Master 10.0.1.1:

  3.            key "external" {
  4.                    algorithm hmac-md5;
  5.                    secret "xxxxxxxx";
  6.            };
  7.            view "internal" {
  8.                    match-clients { !key external; 10.0.1/24; };
  9.                    ...
  10.            };
  11.            view "external" {
  12.                    match-clients { key external; any; };
  13.                    server 10.0.1.2 { keys external; };
  14.                    recursion no;
  15.                    ...
  16.            };
  17. Slave 10.0.1.2:

  18.            key "external" {
  19.                    algorithm hmac-md5;
  20.                    secret "xxxxxxxx";
  21.            };
  22.            view "internal" {
  23.                    match-clients { !key external; 10.0.1/24; };

  24.                    ...
  25.            };
  26.            view "external" {
  27.                    match-clients { key external; any; };
  28.                    server 10.0.1.1 { keys external; };
  29.                    recursion no;
  30.                    ...
  31.            };
复制代码


这是官方的写法

论坛徽章:
0
44 [报告]
发表于 2010-01-14 17:44 |只看该作者
我只做了基于KEY的VIEW的master/slave,IP的没搞成.

  1. BIND 9.3 and later: Use TSIG to select the appropriate view.

  2. Master 10.0.1.1:

  3.            key "external" {
  4.                    algorithm hmac-md5;
  5.                    secret "xxxxxxxx";
  6.            };
  7.            view "internal" {
  8.                    match-clients { !key external; 10.0.1/24; };
  9.                    ...
  10.            };
  11.            view "external" {
  12.                    match-clients { key external; any; };
  13.                    server 10.0.1.2 { keys external; };
  14.                    recursion no;
  15.                    ...
  16.            };
  17. Slave 10.0.1.2:

  18.            key "external" {
  19.                    algorithm hmac-md5;
  20.                    secret "xxxxxxxx";
  21.            };
  22.            view "internal" {
  23.                    match-clients { !key external; 10.0.1/24; };

  24.                    ...
  25.            };
  26.            view "external" {
  27.                    match-clients { key external; any; };
  28.                    server 10.0.1.1 { keys external; };
  29.                    recursion no;
  30.                    ...
  31.            };
复制代码

上面是官方的一个例子,首先要注意:
1,它只有一个key.人家没说一个VIEW用一个KEY,哪就可能是这样不行,我试了,也的确不行.
2,只有第二个VIEW里才有server,不要把第一个VIEW里也加上SERVER.
好像就上面要注意的两条,我现在只是搞了两个VIEW,下一步准备测试多个VIEW的master/slave,有消息了再上来写个全的

论坛徽章:
0
45 [报告]
发表于 2010-01-21 13:07 |只看该作者
bind-view 3个view,使用key进行master/slave同步的配置.

master配置:

  1. acl ns {  master-ip; slave-ip; };                                                                                                               
  2. acl oob { 192.168.1.0/24; };                                                                                                                                 
  3. options {                                                                                                                                                   
  4.         directory "/var/named";                                                                                                                              
  5.         dump-file "/var/named/data/cache_dump.db";                                                                                                           
  6.         zone-statistics yes;                                                                                                                                 
  7.         auth-nxdomain no;    # conform to RFC1035                                                                                                            
  8.         listen-on-v6 { none; };                                                                                                                              
  9.         also-notify { slave-ip; };                                                                                                     
  10.         allow-transfer { ns; 192.168.1.179; };                                                                                                               
  11. };                                                                                                                                                           
  12.                                                                                                                                                             
  13. logging {                                                                                                                                                   
  14.   channel default_syslog { syslog daemon; severity info; };                                                                                                  
  15.   channel default_debug { file "/var/log/named/named.run" versions 9 size 20m; severity dynamic; print-time yes; };                                          
  16.   channel default_stderr { stderr; severity info; };                                                                                                         
  17.   channel null { null; };                                                                                                                                    
  18.   channel general_debug { file "/var/log/named/named.general" versions 9 size 20m; severity dynamic; print-time yes; };                                      
  19.   channel database_debug { file "/var/log/named/named.database" versions 9 size 20m; severity dynamic; print-time yes; };                                    
  20.   channel query_log { file "/var/log/named/named.query" versions 9 size 20m; severity dynamic; print-time yes; };                                            
  21.   channel resolver_log { file "/var/log/named/named.resolver" versions 9 size 20m; severity dynamic; print-time yes; };                                      
  22.   channel security_log { file "/var/log/named/named.security" versions 9 size 20m; severity dynamic; print-time yes; };                                      
  23.                                                                                                                                                             
  24.   category default { default_syslog; default_debug; };                                                                                                      
  25.   category queries { query_log; };                                                                                                                           
  26.   category resolver { resolver_log; };                                                                                                                       
  27.   category security { security_log; };                                                                                                                       
  28.   category unmatched { null; };                                                                                                                              
  29. };                                                                                                                                                           
  30. //Use with the following in named.conf, adjusting the allow list as needed:                                                                                 
  31. key "rndc-key" {                                                                                                                                             
  32.         algorithm hmac-md5;                                                                                                                                 
  33.         secret "HkdwPa6NZfCrDmasdasfdasfvD4BXWKg==";                                                                                                                  
  34. };                                                                                                                                                           
  35. key "key2" {                                                                                                                                                
  36.         algorithm hmac-md5;                                                                                                                                 
  37.         secret "E+NE8ykoZSAtSlKasdfasdfasfdas5uqKnHg==";                                                                                                                  
  38. };                                                                                                                                                           
  39. //key "cnc" {                                                                                                                                                
  40. //      algorithm hmac-md5;                                                                                                                                 
  41. //      secret "iJaP+mZkvdqYERasdfasdfasdfasDR93QeWw==";                                                                                                                  
  42. //};                                                                                                                                                         
  43. controls {                                                                                                                                                   
  44.         inet 127.0.0.1 port 953                                                                                                                              
  45.         allow { 127.0.0.1; } keys { "rndc-key"; };                                                                                                           
  46. };                                                                                                                                                           
  47.                                                                                                                                                             
  48.                                                                                                                                                             
  49. include "ct.acl";                                                                                                                                            
  50. include "cnc.acl";                                                                                                                                          
  51. include "office.acl";                                                                                                                                    
  52.                                                                                                                                                             
  53. view view_office {                                                                                                                                      
  54.         match-clients { !key rndc-key; !key key2; office; oob; ns; localhost; };
  55.         allow-recursion { office; oob; ns; localhot; };
  56.                                                                                                                                                 
  57.         zone "." IN { type hint; file "cnc/named.ca";};                                                                                                      
  58.         zone "localhost" IN {type master;file "cnc/localhost.zone"; };                                                                                       
  59.         zone "127.in-addr.arpa" IN {type master;file "cnc/127.zone"; };                                                                                      
  60.         zone "0.in-addr.arpa" { type master; file "cnc/db.0"; };                                                                                             
  61.                                                                                                                                                             
  62.                                                                                                                                                             
  63.         zone "b.com" { type master; file "cnc/b.com"; };                                                                                       
  64.         zone "ba.cn" { type master; file "cnc/bao.cn"; };                                                                                       
  65.         zone "oob.b.com" { type master; file "cnc/oob.b.com"; };                                                                              
  66.         zone "245.xxx.xxx.in-addr.arpa" { type master; file "reverse/xxx.xxx.245"; };                                                                        
  67.         zone "250.xxx.xxx..in-addr.arpa" { type master; file "reverse/xxx.xxx.250"; };                                                                        
  68.         zone "138.xxx.xxx.in-addr.arpa" { type master; file "reverse/xxx.xxx.138"; };                                                                        
  69.         zone "1.168.192.in-addr.arpa" { type master; file "reverse/192.168.1"; };                                                                           
  70. };                                                                                                                                                           
  71. view view_cnc {                                                                                                                                             
  72.         match-clients { !key rndc-key; office; oob; ns; cnc; localhost; };                                                                           
  73.         server slave-ip { keys { key2; }; };                                                                                                         
  74.         recursion no;                                                                                                                                       
  75.                                                                                                                                                             
  76.         zone "." IN { type hint; file "cnc/named.ca";};                                                                                                      
  77.         zone "localhost" IN {type master;file "cnc/localhost.zone"; };                                                                                       
  78.         zone "127.in-addr.arpa" IN {type master;file "cnc/127.zone"; };                                                                                      
  79.         zone "0.in-addr.arpa" { type master; file "cnc/db.0"; };                                                                                             
  80.                                                                                                                                                             
  81.                                                                                                                                                             
  82.         zone "b.com" { type master; file "cnc/b.com"; };                                                                                       
  83.         zone "bao.cn" { type master; file "cnc/bao.cn"; };                                                                                       
  84.         zone "245.xxx.xxx.in-addr.arpa" { type master; file "reverse/xxx.xxx.245"; };                                                                        
  85.         zone "250.xxx.xxx.in-addr.arpa" { type master; file "reverse/xxx.xxx.250"; };                                                                        
  86.         zone "138.xxx.xxx.in-addr.arpa" { type master; file "reverse/xxx.xxxx.138"; };                                                                        
  87. };                                                                                                                                                           
  88.                                                                                                                                                             
  89. view view_ct {                                                                                                                                               
  90.         match-clients { !key key2; key rndc-key; any; };                                                                                                     
  91.         server slave-ip { keys { rndc-key; }; };                                                                                                      
  92.         recursion no;                                                                                                                                       
  93.                                                                                                                                                             
  94.         zone "." IN { type hint; file "ct/named.ca";};                                                                                                      
  95.         zone "localhost" IN {type master;file "ct/localhost.zone"; };                                                                                       
  96.         zone "127.in-addr.arpa" IN {type master;file "ct/127.zone"; };                                                                                       
  97.         zone "0.in-addr.arpa" { type master; file "ct/db.0"; };                                                                                             
  98.                                                                                                                                                             
  99.                                                                                                                                                             
  100.         zone "b.com" { type master; file "ct/b.com"; };                                                                                       
  101.         zone "bao.cn" { type master; file "ct/bao.cn"; };                                                                                       
  102.         zone "245.xxx.xxx.in-addr.arpa" { type master; file "reverse/xxx.xxx.245";  };                                                                       
  103.         zone "250.xxx.xxx.in-addr.arpa" { type master; file "reverse/xxx.xxx.250";  };                                                                       
  104.         zone "138.xxx.xxx.in-addr.arpa" { type master; file "reverse/xxx.xxx.138";  };                                                                       
  105. };
复制代码

[ 本帖最后由 dgvri 于 2010-1-21 13:11 编辑 ]

论坛徽章:
0
46 [报告]
发表于 2010-01-21 13:08 |只看该作者
slave-- 配置:

  1. acl ns { master-ip; slave-ip; };
  2. acl oob { 192.168.1.0/24; };
  3. options {
  4.         directory "/var/named";
  5.         dump-file "/var/log/named/cache_dump.db";
  6.         zone-statistics yes;
  7.         statistics-file "/var/log/named/named_stats.txt";

  8.         auth-nxdomain no;    # conform to RFC1035
  9.         listen-on-v6 { none; };
  10. };

  11. logging {
  12.   channel default_syslog { syslog daemon; severity info; };
  13.   channel default_debug { file "/var/log/named/named.run" versions 9 size 20m; severity dynamic; print-time yes; };
  14.   channel default_stderr { stderr; severity info; };
  15.   channel null { null; };
  16.   channel general_debug { file "/var/log/named/named.general" versions 9 size 20m; severity dynamic; print-time yes; };
  17.   channel database_debug { file "/var/log/named/named.database" versions 9 size 20m; severity dynamic; print-time yes; };
  18.   channel query_log { file "/var/log/named/named.query" versions 9 size 20m; severity dynamic; print-time yes; };
  19.   channel resolver_log { file "/var/log/named/named.resolver" versions 9 size 20m; severity dynamic; print-time yes; };
  20.   channel security_log { file "/var/log/named/named.security" versions 9 size 20m; severity dynamic; print-time yes; };

  21.   category default { default_syslog; default_debug; };
  22.   category queries { query_log; };
  23.   category resolver { resolver_log; };
  24.   category security { security_log; };
  25.   category unmatched { null; };
  26. };
  27. //Use with the following in named.conf, adjusting the allow list as needed:
  28. key "rndc-key" {
  29.         algorithm hmac-md5;
  30.         secret "HkdwPa6NZfCrDmvDasdfasdfasf4BXWKg==";
  31. };
  32. key "key2" {
  33.         algorithm hmac-md5;
  34.         secret "E+NE8ykoZSAsfdadsfasdfastSlK5uqKnHg==";
  35. };
  36. //key "cnc" {
  37. //      algorithm hmac-md5;
  38. //      secret "iJaP+mZkvdqYasdfasdfasdfERDR93QeWw==";
  39. //};
  40. controls {
  41.         inet 127.0.0.1 port 953
  42.         allow { 127.0.0.1; } keys { "rndc-key"; };
  43. };


  44. include "ct.acl";
  45. include "cnc.acl";
  46. include "office.acl";

  47. view view_office {
  48.         match-clients { !key rndc-key; !key key2; office; oob; ns; localhost; };
  49.         allow-recursion { office; oob; ns; localhost; };

  50.         zone "." IN { type hint; file "cnc/named.ca"; };
  51.         zone "localhost" IN {type master; file "cnc/localhost.zone"; };
  52.         zone "127.in-addr.arpa" IN {type master; file "cnc/127.zone"; };
  53.         zone "0.in-addr.arpa" { type master; file "cnc/db.0"; };

  54.         zone "b.com" { type slave; file "cnc/b.com"; masters { master-ip; }; };
  55.         zone "bao.cn" { type slave; file "cnc/bao.cn"; masters { master-ip; }; };
  56.         zone "oob.b.com" { type slave; file "cnc/oob.b.com"; masters { master-ip; }; };
  57.         zone "xxx.xxx.219.in-addr.arpa" { type slave; file "reverse/xxx.xxx.245"; masters { master-ip; }; };
  58.         zone "xxx.xxx.124.in-addr.arpa" { type slave; file "reverse/xxx.xxx.250"; masters { master-ip; }; };
  59.         zone "xxx.xxx.221.in-addr.arpa" { type slave; file "reverse/xxx.xxx.138"; masters { master-ip; }; };
  60.         zone "1.168.192.in-addr.arpa" { type slave; file "reverse/192.168.1"; masters { master-ip; }; };
  61.         };

  62. view view_cnc {
  63.         match-clients { !key rndc-key; office; oob; ns; cnc; localhost; };
  64.         server master-ip { keys { key2; }; };
  65.         recursion no;

  66.         zone "." IN { type hint; file "cnc/named.ca"; };
  67.         zone "localhost" IN {type master; file "cnc/localhost.zone"; };
  68.         zone "127.in-addr.arpa" IN {type master; file "cnc/127.zone"; };
  69.         zone "0.in-addr.arpa" { type master; file "cnc/db.0"; };

  70.         zone "b.com" { type slave; file "cnc/b.com"; masters { master-ip; }; };
  71.         zone "bao.cn" { type slave; file "cnc/bao.cn"; masters { master-ip; }; };
  72.         zone "xxx.xxx.219.in-addr.arpa" { type slave; file "reverse/xxx.xxx.245"; masters { master-ip; }; };
  73.         zone "xxx.xxx.124.in-addr.arpa" { type slave; file "reverse/xxx.xxx.250"; masters { master-ip; }; };
  74.         zone "xxx.xxx.221.in-addr.arpa" { type slave; file "reverse/xxx.xxx.138"; masters { master-ip; }; };
  75.         };

  76. view view_ct {
  77.         match-clients { !key key2; key rndc-key; ct; any; };
  78.         server master-ip { keys { rndc-key; }; };
  79.         recursion no;

  80.         zone "." IN { type hint; file "ct/named.ca";};
  81.         zone "localhost" IN {type master;file "ct/localhost.zone"; };
  82.         zone "127.in-addr.arpa" IN {type master;file "ct/127.zone"; };
  83.         zone "0.in-addr.arpa" { type master; file "ct/db.0"; };

  84.         zone "b.com" { type slave; file "ct/b.com"; masters { master-ip; }; };
  85.         zone "bao.cn" { type slave; file "ct/bao.cn"; masters { master-ip; }; };
  86.         zone "xxx.xxx.219.in-addr.arpa" { type slave; file "reverse/xxx.xxx.245"; masters { master-ip; }; };
  87.         zone "xxx.xxx.124.in-addr.arpa" { type slave; file "reverse/xxx.xxx.250"; masters { master-ip; };  };
  88.         zone "xxx.xxx.221.in-addr.arpa" { type slave; file "reverse/xxx.xxx.138"; masters { master-ip; };  };
  89. };
复制代码


注:

master-ip,slave-ip都是实际的IP,我这里给去掉了。

office-view只匹配公司IP,开放递归功能,可以做为cache-dns使用,这个VIEW不使用KEY,我想默认应该是使用IP同步的吧,这一点大家可以讨论下。

cnc-view只匹配CNC,NS等这些IP,!掉另一个key,这样它应该会用另一个key来同步。

ct-view同步,只是acl设为any,这样匹配不上前两个的IP都会用这个。

测试:
把master上的zone文件中的serial号改大,rcdc reload后slave上的会马上同步。

[ 本帖最后由 dgvri 于 2010-1-21 13:10 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP