Linux与NT Server 4.0之DHCP相比较
BOOTP协议演化而来,它们同属于TCP/IP协议族,是目前以太网上使用较多的自动进行客户机TCP/IP配置的协议。作为被广泛使用的网络操作系统,NT Server 4.0和Linux都提供了对DHCP的支持,本文就以NT Server 4.0自带的DHCP服务器和Linux下最常见的dhcpd 2.0为例来分析两种系统下DHCP的使用和区别。
一、DHCP协议的工作原理
每个基于TCP/IP协议的网络主机(Host)都需要一个唯一确定的32位IP地址来与网络通信,如果每台主机的IP地址都用手工设定的话,工作量将是不可想象的,能不能让主机在启动时就被自动配置IP地址从而正常工作呢?这正是DHCP协议设计的初衷。一台配置了DHCP的主机启动时会强制发送一个有限地址广播(32位全为1的IP地址即255.255.255.255被称为有限广播地址,对此地址的广播称为有限地址广播或本地网络广播)。当本地网络中的DHCP服务器收到广播后,会根据收到的物理地址(Physical Address)在服务器上查找相应配置,并从划定的IP池中发送某个IP地址及附加选项(如租用到期时间等)给客户机,由于使用广播,没有中转的DHCP显然不能跨越子网,而且有可能一个客户机的信息被几个服务器响应,所以客户机总是回答最先收到的DHCP响应,收到响应后客户机还要发送一条注册消息,以告诉服务器该IP已被租用,以防止IP地址冲突。整个注册过程实际上是一套相当复杂的程序。双方要进行多次信息交换,才能最终注册成功。
二、NT:图形化的DHCP管理
NT一向以良好的操作界面著称,DHCP Server也不例外,通过图形化的DHCP管理器,可以直观地获得目前的DHCP客户机IP使用状况,可以方便地对整个服务项目及客户机配置进行修改。NT的DHCP服务器支持相当多的DHCP选项,但是Windows客户机(包括NT自身)仅支持IP地址、子网掩码、默认网关、DNS服务器名、域名、WINS服务器名、WINS节点类型、租用期等较少的选项,不过这已涵盖了局域网中的绝大部分配置。
NT DHCP服务器通过定义一个或多个IP地址范围来为客户机提供可用的IP、子网掩码、默认网关,但在一个子网内只能有一个IP地址范围。然后,可以通过DHCP选项为客户机提供更多的附加设置,NT的附加设置与RFC1541一致,如006是DNS服务器名、044是WINS服务器名等。如果一台DHCP客户机租用了某个IP地址,那么附加的选项也将传递给它,前提是客户机没有对这些附加选项进行配置,因为本机配置总是优先的。
如果需要给某些主机特定的IP而不是自动选择,可以添加相应的保留位置,并输入该主机以太网卡的48位物理地址作为唯一标识符,同时也能对那些特定的主机进行特定的配置。每当具有此物理地址的客户机登录时,服务器都会给它固定的IP地址和选项。
NT 4.0 DHCP服务器的优点是操作直观简单,易于管理,并且一个有趣的地方是Windows客户机总会优先选择NT的DHCP服务(和前面的总是回答第一个响应似乎有些矛盾,但事实如此,在一个全部由Windows主机组成的子网里,如果存在NT DHCP 服务器,那么Linux DHCP服务器几乎不会被使用)。它的主要缺陷在于不能有效地控制未知用户租用IP,也就是说,只要还有未用地址,任何收到的请求都会被接受,而且在需要对较多的客户机进行单独配置时仍然会很繁琐。
三、Linux:给你更多的"自由"
Linux作为自由软件的代表,其优势是Windows系列不可比拟的。Dhcpd就是遵守GPL规则的一款DHCP服务器软件。现在最新版是3.0.1,不过大部分Linux自带的是2.0及以下版本。本文即以较低的版本为例。