Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1675991
  • 博文数量: 585
  • 博客积分: 14610
  • 博客等级: 上将
  • 技术积分: 7402
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-15 10:52
文章存档

2013年(5)

2012年(214)

2011年(56)

2010年(66)

2009年(44)

2008年(200)

分类: 网络与安全

2008-11-17 12:36:38

 Windows 2000 server 以其优异的性能,逐渐被广泛的应用。在Windows 2000 server中新增了 Active Directory服务,该服务存储所有网络资源的信息,如计算机、共享文件夹、用户等等。它还通过标准的 LDAP 协议(轻量目录访问 协议)将此类信息提供给用户和应用程序。与Windows NT 4.0 中的域控制器相比,Active Directory 与 DNS 的关系更加 密切。实际上,DNS是支持 Active Directory 所必需的。通常,安装 Active Directory 服务器时,如果网络上找不 到 合适的DNS 服务器,就会在安装过程中安装 DNS 服务。 
  Windows 2000 中最重要的新概念之一就是:计算机不再主要用网络基本输入/输出系统 (NetBIOS) 名称来标识,而是使 用 DNS 完全合格的域名称 (FQDN) 来标识。 因此,要登录并访问 Windows NT 域中的资源,Windows 2000 计算机必须 查找 DNS 服务器,以定位 Active Directory 域控制器。也就是说Windows 2000 中服务位置和名称解析的主要机制是域名 系统(DNS),它在启动和登陆过程使用DNS来查找如LDAP和Kerveros这类的服务,以便至少检索到一个域控制器的IP地址.因此,也可以说 Windows 2000中Active Directory依赖于DNS. 
  Windows 2000不仅通过DNS定位资源和服务,而且将自己的名字及所提供的服务注册到DNS数据库中并动态更新。 
  在以下原因或事件下会发送动态更新: 
  · 在 TCP/IP 协议的属性中添加、删除或修改了任何网络连接的 IP 地址。 
  · 用 DHCP 服务器更改或刷新了任何网络连接的 IP 地址。例如,在启动计算机或者使用了 ipconfig /renew 命令的时候。 
  · ipconfig /registerdns 命令用于手工强制刷新 DNS 中的客户机名称注册。 
  · 计算机关闭后再次启动。 
  Windows 2000使用以下过程进行 DNS 动态更新: 
  1. 客户机请求其已配置的 DNS 服务器为待更新 DNS 名称的 DNS 区域查找授权名称服务器。 
  2. DNS 客户机的已配置 DNS 服务器会执行标准名称解析过程,并发送 SOA(起始授权机构)资源记录和负责此查询 DNS 区域授权的名称服务器的 IP 地址。 
  3. 客户机将动态更新请求发送给负责这个待更新 DNS 名称的区域的授权 DNS 服务器。 
  客户机的动态更新请求可能包括一列前提条件,只有满足这些条件后才能完成更新。前提条件类型包括: 
  o 存在资源记录集。 
  o 不存在资源记录集。 
  o 名称正被使用。 
  o 名称未被使用。 
  4. 授权 DNS 服务器判断这些前提条件是否满足。如果满足,授权 DNS 服务器就执行请求的更新。如果不满足前提条件,则更新失败。不论是哪种情况,授权服务器都会应答客户机,说明更新是否成功。 ofAdmin.Com 
  在 Windows 2000 中,默认情况下,所有 DNS 客户计算机的 A 资源记录和 PTR 资源记录都被注册到 DNS 中。此 外,域控制器和提供服务的其它计算机将 SRV(服务)资源记录注册到 DNS 中。由于 SRV 资源记录提供了将服务名称解析到 IP 地址的途径, 将它们注册到 DNS 使 Windows 2000 客户计算机可以定位域控制器和其它类型的服务器。 
  SRV记录格式如下: 
  _service. _protocol.domain.name IN SRV priority weight port target 
  service 是指服务的名称如ldap, protocol是指传输层的协议名如tcp, 紧跟着是域名,priority是指优先级, 当客户机找到指向同一服务的多条记录时,它将使用priority值最小的一项。Weight是指权重用于负载的分配,当客户机找到多个具有相同 priority值得SRV记录,它将根据weight值选择适当的服务器。Port 和target分别指服务的端口号及提供服务的主机的名字。 
  因此,用于支持 Active Directory的 DNS 服务器必须支持 SRV 记录。而且,Microsoft 极力推荐这些 DNS 服务器也支持RFC 2136所描述动态更新。 
  在实际应用过程中,我们有时会遇到这样情况:网络中使用UNIX下的BIND作主域名服务器而且由于种种原因不能把域名服务放在 Windows 2000上,在这种情况下如何从 Windows NT 4的域平滑地升级到Windows2000的Active Directory 呢? 

  经过上面的分析可知,可以使用运行于任何 OS 上的任何支持 SRV 记录的 DNS 服务器与Windows 2000协同工作。同时微 软极力推荐使用支持动态更新(按照 RFC 2136)的 DNS 服务器。而BIND 在8.2.2版本以上都是完全满足要求的。 
  基于上述认识,我们以一个实例来说明在网络中使用UNIX下的BIND作域名服务器的情况下,如何从Windows NT 4的域平滑地升级到Windows2000的Active Directory: 
  在一个局域网络中,主域名、邮件放在SUN工作站上,域名是mail.ddri.com.cn。IP地址为:10.65.65.1,操作系统 为solaris 2.6中文版,域名服务器软件为solaris 2.6中捆绑的的BIND 4.9.3。.另外有两台服务器安装 Windows NT 4.0分别作两个域的主域控制器。主机名分别是 zyxx.ddri.com.cn和xxdc.ddri.com.cn,IP地址 分别为10.65.65.16和10.65.65.56。 
  首先,下载BIND软件包,当前最新版本是9.2.0beta,我们使用的是9.1.3.rc1,可以在 ftp://ftp.isc.org/isc/bind9/9.1.3/下载源代码包bind-9.1.3.tar.gz然后进行编译,编译方法可以参照 软件包中的文档。这里我们从下载已经预先编译好的bind-9.1.3rc1-sol26- sparc-local.gz,另外需要下载gzip-1.3-sol26-sparc-local来解压缩。先使用admintool下先安装 gzip-1.3-sol26-sparc-local。然后用gzip –d bind-9.1.3rc1-sol26-sparc-local.gz 解包,最后再次使用admintool 来安装bind-9.1.3rc1-sol26-sparc-local。 
  
  其次,修改配置文件:在BIND 8.2.2以后的版本中主要使用allow-update和 update-policy语句来实现和控制动态更新。 
  allow-update的语法是: 
  allow-update { “acl-name”;} ; 
  或allow-update { ip_addr;} ; 
  update-policy用来定义简单的安全策略 。因为当使用动态更新时是会带来一些安全问题的,所以建议使用安全策略来控制动态更新。语法是: 
  update-policy {(grant/deny) identity nametype name [type];}; 
  每一个动态更新请求如果成功的匹配规则。那么动态更新被允许或禁止。 
  
  下面是实际的配置文件/etc/named.conf: 
  
  options { 
  directory "/var/named"; 
  pid-file "named.pid"; 
  allow-query { any;}; 
  auth-nxdomain yes; 
  transfer-format one-answer; 
  forwarders { 
  10.65.1.1; 
  10.65.1.2; 
  10.65.50.1; 
  }; 
  }; 
  zone "." { 
  type hint; 
  file "root.cache"; 
  }; 华夏网管站 
  zone "0.0.127.in-addr.arpa" { 
  type master; 
  file "localhost.rev"; 
  notify no; 
  }; 
  zone "ddri.com.cn" { 
  type master; 
  file "ddri.com.cn.db"; 
  allow-transfer { 
  10.65.1.1; 
  10.65.1.2; 
  10.65.50.1; 
  }; 
  allow-update { 
  10.65.65.0/24; 
  }; 
      update-policy { 
  grand *.ddri.com.cn. self *.ddri.com.cn. A; 
  grand *.ddri.com.cn. self *.ddri.com.cn. SRV; 
  }; 
  zone "65.65.10.in-addr.arpa" { 
  type master; 
  file "10.65.65.db"; 
  allow-transfer { 
  10.65.1.1; 
  10.65.1.2; 
  10.65.50.1; 
  }; 
  allow-update { 
  10.65.65.0/24; 
  }; 
  update-policy { 
  grand *.ddri.com.cn. self *.ddri.com.cn. A; 
  grand *.ddri.com.cn. self *.ddri.com.cn. SRV; 
  }; 
  
  }; 
  
  }; 
  
  在这个配置中允许所有IP 地址为10.65.65网段和域名为ddri.com.cn的计算机使用动态更新。(这个配置文件中还使用了转发 器,并且为了在与低版本BIND进行区传送时兼容,我们使用了transfer-format one-answer;语句。)关于这个文件中的其它语句 及可选项的语法,可以参考《BIND 9 ADMINISTRATOR REFERENCE MANUAL》。 
  接着,配置区文件中的静态项。需要注意的是区文件是要被动态更新的,所以文件权限必须是被named可写的。下面给出了写好的正向解析的区文件 /var/named/ddri.com.cn.db的例子: 
  @ IN SOA mail.ddri.com.cn. root.ddri.com.cn. ( 
  2000120615 ; Serial Number 
  10800 ; Refresh after 3 hours 
  3600 ; Retry after 1 hour 
  604800 ; Expire after 1 week 
  86400 wink.gif ; Minimum TTL of 1 day 
  
  @ IN NS mail.ddri.com.cn. 
  @ IN A 10.65.65.1 
  ddri.com.cn. IN NS mail 
  localhost IN A 127.0.0.1 
  
  mail IN A 10.65.65.1 
  info IN A 10.65.65.18 
  zyxx IN A 10.65.65.16 
  ddri.com.cn. IN MX 10 mail ofAdmin.Com 
  反向解析记录区文件在这里就不例举了。 
  最后:修改启动脚本使BIND 9 自动运行。在各种UNIX、Linux修改方法是不尽相同的,可以参考相关资料来修改。在solaris 2.6 下修改/etc/inet.d/inetsvc: 
  找到… 
  if [ -f /usr/sbin/in.named -a -f /etc/named.boot ]; then 
  /usr/sbin/in.named; echo "starting internet domain name server." 
  fi 
  修改为: 
  if [ -f /usr/local/sbin/named ]; then 
  /usr/local/sbin/named; echo "starting BIND 9.1.3rc1." 
  fi 
  (在缺省情况下BIND 9安装在/usr/local/sbin下) 
  重新启动服务器,BIND 9的配置就生效了。现在就可以升级到Windows 2000的Active D


阅读(631) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~