• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

BIND 高级特性(二)-- 动态更新

发布: 2007-5-25 23:52 | 作者: 未知 | 来源: ChinaUnix.net | 查看: 22次 | 进入软件测试论坛讨论

领测软件测试网
在很多大的网络中为了简化维护量,都使用了DHCP来动态分配IP地址。这样就要求DNS也能够动态的添加和删除记录。BIND 8和9就支持DNS动态更新机制。
  主DNS和辅DNS在处理收到的动态更新记录是有区别的,辅DNS在收到更新消息的时候,由于它不是该区的主DNS,它就会将这个更新消息转发给它的主DNS,这称作“更新转发”。而主DNS当然就简单地做更新而已。
  如何来创建动态更新消息呢?第一种是用软件编程方式,采用ns_update()解析器例程来创建。第二种则是用命令行程序nsupdate命令手工创建。这里主要讲一下第二种,命令格式如下:
 prereq yxrrset domain name type
  prereq nxrrset domain name type
  prereq yxdomain domain name
  prereq nxdomain domain name
  update delete domain name [type] [rdata]
  update add domain name ttl [class] type rdata

  看起来似乎挺复杂,其实很容易。prereq 表示预先必须符合的条件,yxrrset表示存在记录,nxrrset表示不存在记录,而yxdomain则表示存在域名了。例如:

  # nsupdate
  > prereq nxdomain www.xmgd.com.
  > update add www.xmgd.com. 600 A 210.52.83.228
  >
  这个例子告诉服务器只有在域名不存在时才对域名 www.xmgd.com 添加一个地址。注意最后一个空行表示nsupdate发送这个更新消息。

   # nsupdate
   > prereq yxrrset xmgd.com. MX
   > update delete xmgd.com. MX
   > update add xmgd.com. 600 MX 10 mail.xmgd.com.
   > update add xmgd.com. 600 MX 50 pop.xmgd.com.
   >
  这个例子告诉服务器检查服务器是否有xmgd.com.的MX记录,如果有的话就删除原有的MX记录,重新添加两个。

  如何来限制动态更新呢?我们可以使用allow-update参数来限制动态更新,如:
  zone “xmgd.com” {
    type master;
    file "zone.xmgd.com";
    allow-update { x.x.x.x; };    // IP 地址
};

  不过,要注意的是如果我们允许从辅DNS向主DNS进行地址更新,那么任何人只要向辅DNS发送更新消息,经过转发更新也能进行原本不能进行的动态更新,如何防止这一点呢?可以在辅DNS上使用allow-update-forwarding参数来做转发更新的限制,如:

  zone “xmgd.com” {
    type slave;
    file "zone.xmgd.com";
    allow-update-forwarding { x.x.x.x; };    // IP 地址
};

 wangrujun 回复于:2003-02-25 09:56:59
原来动态更新也是要自己手工修改的呀。
谢谢版主

另外问一下,许多域名服务提供商,现在提供了动态域名服务。请问这是怎么实现的呀?

 阿骁 回复于:2003-02-25 18:28:16
[quote:05a121bcd2="wangrujun"]原来动态更新也是要自己手工修改的呀。[/quote:05a121bcd2]

 :shock:  不用手工修改啊???

 kkkggg21cn 回复于:2003-02-25 21:21:57
这种动态更新是有国际标准作依据的吧,
是使用什么协议来完成的,
是不是所有的系统都支持?

thanks a million

 阿骁 回复于:2003-02-25 22:08:13
动态更新: RFC 2136
BIND 和 WINDOWS 的 DNS Server 都支持动态更新机制。

 wangrujun 回复于:2003-02-26 08:49:05
这样的话,和我手工改主dns的zone文件有什么区别吗?

 阿骁 回复于:2003-02-26 12:19:54
动态更新这个机制是很多软件支持的,像WINDOWS的DNS,DHCP服务器就支持动态更新。我介绍 nsupdate 这个命令的意思是大家可以在自己的 DNS server 上试试看。在unix上写shell脚本时也可以使用 nsupdate 这个命令的。并不是说应在修改 zone 数据文件时使用。

 wangrujun 回复于:2003-02-26 13:13:30
谢谢了。
呵呵,我对windows的dns不了解。看来还得看看。:)

 Syber 回复于:2003-05-04 04:45:55
请问第一种ns_update()是怎样的?能说一下吗?

我是想做一个类似www.vicp.net的动态DNS.

因为我有自己的RH72的DNS服务器,配置比较低做不了其他应用.

我的宽带是DHCP的地址,

或者有什么方法比较好.

请教了!

 yuxiaoyun 回复于:2003-05-12 11:26:03
我用的DHCP在WINDOWS下面可以动态更新,而在BIND9下面不可以?为什么?


我以前用的是WINDOWS 2000,用他来支持动态更新,使用DHCP分配的IP地址都可以自动更新DNS记录,现在我把他转到BIND9下面却不行了,我在配置文件中有

allow-update {any;};

语句

我的区域也是主要区域

DHCP的配制没有变化,真是不知道怎么回事啊!

 echomeng 回复于:2003-07-30 12:28:04
我有lunix8的服务器,有公网固定ip,怎样做一个类似www.vicp.net的动态DNS服务的东西.

我会php,perl编程,也会windows编程(就是说会做安装于客户机的更新程序),但是不会dns设置,具体怎么做,谁能帮帮我呢!

我的qq 680316

 lspeng1011 回复于:2005-05-27 13:35:34
请问上面的高手门,在bind9下的view的功能具体如何实现能否详细的告知以下,谢谢了大家,急..公司让我用bind9下的view语句给电信做个linux主服务器啊,让根据不同的ip地址对应与不同的主机服务器...在上面看了看阿骁及各位高手门的讨论,才了解一些,以前从来都没有用过.谢谢大家了.....

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网