目前在RFC2136标准中定义的DNS标准描述了允许DNS动态更新记录的一系列规则,基于这种规则的DNS系统可以称为DDNS。Windows2000包括的DNS系统支持DDNS标准。DDNS是对长期使用的名称解析标准的革新,对网络规划和管理都会产生深远的影响!
我们知道DNS在大多数NT4的网络中没有什么用,在这些较低层次的网络中,DNS主要用于支持UNIX主机或INTERNET提供的服务。在NT4中首选的本地解析服务是WINS。在NT4网络中,应用NETBIOS名称来识别和定位资源、服务。虽然WINS在NETBIOS网络中实现解析服务较方便快捷,但不幸的是,WINS和其他NETBIOS域名服务并未被广泛接受。在不同种类的主流网络中,域名系统是被认可的域名解析服务,而域名系统的基础是DNS。微软之所以选择WINS而非DNS的主要原因就是因为它支持动态更新,动态更新在网络中是很关键的。但是由于因特网将DNS作为首选的名称解析标准,使用传统的NETBIOS的微软网同因特网的连接就较困难。所以在微软网络中使用DNS已经是势在必行。DDNS将在Windows2000中取代WINS,成为首选的名称解析服务。
DNS 的主要的功能是主机名解析,即将主机名转换为IP地址,实现TCP/IP网络中的资源通讯。在静态DNS系统中,所有的解析项都是由管理员手工填写的,非常不方便。特别是现在的网络规划中都使用动态主机配置协议(DHCP)来分配客户机的IP 地址,静态DNS是无法支持DHCP的。DDNS比静态DNS有很多优点,它既支持动态更新,又可以兼容于NT4网络,支持手工刷新;它结合WINS的动态能力和传统DNS的稳定性和健壮性。当然,在最近的几年里,只要用户需要WINS继续支持低级客户机和依赖NETBIOS系统的应用程序,WINS和DDNS会共存。但我们的最终目的是取消NETBIOS,统一于因特网的DNS系统实现解析。
在Windows2000网络中,活动目录(Active Directory)是实现网络管理的先进的目录服务技术。活动目录是由OU、DOMAIN、TREE、FOREST所构成的层次化逻辑结构,网络中的所有资源都以对象的形式组织到活动目录中,便于用户的资源访问和管理员的集中管理。在活动目录中集成了两个重要的Internet工业标准:DNS和LDAP。DNS作为活动目录的定位服务,是必须的;LDAP是Internet标准的目录访问协议,用于访问、检索活动目录中的资源。LDAP是目录存取协议(DAP)的简便版,是一个X.500目录存取协议。Windows2000中不仅兼容LDAP协议,微软建立Windows2000作为LDAP服务器,用LDAP来读写活动目录。为了定位能服务于LDAP请求的Windows2000服务器,客户级必须首先向DNS服务器发送服务器定位解析请求。Windows2000的DDNS服务器包含每一个LDAP服务器的服务资源(SRV)记录。通常可以在Windows2000的DDNS服务器中找到LDAP SRV记录的列表,内容如下:
_ldap._tcp.DnsDomainName.
_ldap._tcp.SiteName._sites.DnsDomainName.
_ldap._tcp.dc._msdcs.DnsDomainName.
_ldap._tcp.SiteName._sites.dc._msdcs.DnsDomainName.
_ldap._tcp.pdc._msdcs.DnsDomainName.
_ldap._tcp.gc._msdcs.DnsForestName.
_ldap._tcp.SiteName._sites.gc._msdcs.DnsForestName.
_gc._tcp.DnsForestName.
_gc._tcp.SiteName._sites.DnsForestName.
_ldap._tcp.DomainGuid.domains._msdcs.DnsForestName.
以上SRV记录标识LDAP服务器通过TCP协议定位特殊的资源。例如,为了找到mycompany.com域的域控制器,客户需要查询DDNS来解析ldap.tcp.mycompany.com到IP地址的转换.这里要注意一个问题,虽然Windows2000中强烈建议支持DNS动态刷新,但并不严格要求,而支持SRV记录是最小的要求。实际上,在Windows2000网络中,无论大小,在不能动态更新的情况下执行DNS是不实际的。如果不支持动态更新,就需要手工添加和更新DNS中的SRV记录。
在Windows2000网络中,公司的活动目录域名空间,反映了自己的DDNS名称空间。在活动目录中的域在DDNS中也应有。当组建公司的DDNS结构时,必须考虑域和子域在活动目录中的使用方式。活动目录的设计对DDNS的设计有很大影响。两者的设计应很好地结合起来!
当生成活动目录的域时,它既是活动目录的名称空间中的域又是DDNS的名称空间中的域。它在活动目录中是一个物理的节点,在DDNS中是一个区域。当解析网络上的客户机时,客户机需根据存储在活动目录中的帐户信息说明来确认它的登录,且客户机必须在DDNS的区域中动态的注册。例如,一个客户机用一个易解析的名字登录活动目录如client@mycompany.com,将用其主机名和IP地址更新DDNS。在DDNS完成动态更新后,一条A纪录就存在于DDNS中了,将用于解析查询。让mycompany.com域的其他成员可以访问它。这里要注意,活动目录的域成员在DDNS上存储的主机纪录,应该有相同的域名称。活动目录的名称空间和DDNS的名称空间应该是相同的。如果活动目录要求独立的域,DDNS应该反映出这种结构。
在理想的情况下,设计DDNS和设计活动目录的目的是一样的常用的DNS设计标准如下:
最顶层的域应该保持不变,这个域通常是公司的名称,如mycompany.com;
由国内和国际业务的公司经常将DNS的名称空间分成子域,每个子域代表不同的管理任务;
当单个域很大时,应该把它分成几个子域。这样会减少管理域的工作量,并减少DNS服务器的负荷量;
公司也可以根据公司的地理分布、管理机构及IT支持结构来建立相应的子域。
有了这些可供选择的方法及充分认识DDNS的灵活性后,根据DNS的设计标准,就可以决定怎样划分名称空间。但最重要的是DNS的子域和活动目录的域应匹配。如果公司有因特网业务,在设计DNS时就应该有一个更远的打算,并且判断把名称空间提交到因特网是否与内部有所不同,下面我们具体分析一下:
为了一致性,一些公司对内部和外部的用户提供一个相同的DNS名称空间。在这种方案中,代表一个目录的单个的DDNS域,如contoso.com,它内部的资源能在防火墙的内部和外部方便地转换为IP 地址。当然,对内部和外部的用户使用单一的名称空间也有一些问题需要解决,例如,不想让因特网的每个用户都知道内部主机的纪录,不想把所有的内部IP地址在因特网上公开,以及需要提供一种方法给内部用户,实现把内部和外部资源转换为IP 地址。最好的办法是将内部资源和外部资源纪录存储在不同的区域中,让内部资源的IP地址对外部用户是不可见的,在内部和外部的区域之间没有复制,即本质上它们共享相同的域名,但它们的操作是独立的:它们都是在的DDNS服务器上不同的基本的区域。那么内部的用户怎样才能访问域外的资源呢?这有多种解决方案,较流行的方法是在防火墙的内部建立外部资源的副本,然后通过代理来访问,就好象访问内部名称一样。这种内部和外部的资源使用相同的名称空间,要有很多附加的配置,集成工作较复杂!参见示例图一
示例1
一个有因特网业务的公司也可以有不同的内部和外部域名称。例如在防火墙内部使用contoso.local,防火墙的外部使用contoso.com,通过用不同的内部和外部名称名称空间,公司为内部资源提供保密,同时简化名称解析过程。不需要把外部服务器镜像到防火墙内部,或在外部服务器和镜像服务器之间配置代理。这种方法配置起来非常简单,公司用户可以根据FQDN来区分内部和外部的资源。这种DDNS建立的两个域名空间,都应该在因特网上单独注册。尽管contoso.local只在内部使用,但也应该注册,以防止其他人使用。否则如果被别人注册了,当内部用户把浏览器指向www. contoso.local,就有可能访问到其他的Web站点了。 参见示例2
在Windows2000网络中,由于活动目录与DNS紧密集成在一起,意味着活动目录更适合于Internet和Intranet环境。客户可以更容易更迅速地找到目录服务器;企业可以把活动目录直接连接到Internet以简化与客户和合作伙伴进行通讯和提供电子商务。活动目录安装后,它将自动通过DDNS进行发布。也就是说使用DDNS的Windows2000网络,将方便可靠地同Internet连接起来!(中国科学院软件研究所微软认证高级技术培训中心 申兵).