最近在琢磨Windows Deployment Service(WDS),按照微软的step by step文档安装测试了一下。效果还是不错的,唯一有点麻烦的是windows的DHCP总觉得不如Linux下的ISC DHCP好用,可能我习惯了那个配置方法吧。于是想把DHCP功能从WDS中分离出来,用Linux DHCP来代替,经过一番实验,达到了这个目的,下边把过程记录一下。
1.安装一台windows 2003 R2,安装以后将这台机器的角色变成Domain Controller(包括AD和D
NS),不要
安装DHCP服务。
2.在上边安装好的Windows 2003服务器中添加Windows组件"Windows Deployment Service",这个可以参考
这篇文档,注意的是安装完以后配置的时候 不要钩选
"不侦听端口67"和"
将DHCP选项标记为 #60 配置为PXEClient"这两个选项,因为DHCP没有安装在这台主机上。
3.另外安装一台Linux服务器,我选的是CentOS 4.7,安装ISC DHCP服务,进行配置,我的示例文件如下:
authoritative;
allow booting;
allow bootp;boot-unknown-clients false;default-lease-time 600;
max-lease-time 7200;option ip-forwarding true;
option mask-supplier false;ddns-update-style none;subnet 192.168.152.0 netmask 255.255.255.0 {
range 192.168.152.1 192.168.152.99;
option vendor-class-identifier "PXEClient";
option vendor-encapsulated-options 01:04:00:00:00:00:ff;
option routers 192.168.152.254;
option domain-name-servers 218.22.22.33,220.11.22.22;
}#*********windows Server******Arch: i386
group {next-server 192.168.152.200;
option bootfile-name "boot/x86/wdsnbp.com";
host TESTHOST { hardware ethernet 00:0C:29:17:23:23; fixed-address 192.168.152.22; }}
#*********Linux Server******Arch: i386
group {next-server 192.168.152.200;
filename "linux/pxelinux.0";
host linuxnode { hardware ethernet 00:0C:29:94:AA:BB; fixed-address 192.168.152.55; }}
其中下边这几行是关键:
option vendor-class-identifier "PXEClient"; # DHCP option 60 定义PXEClient
option vendor-encapsulated-options 01:04:00:00:00:00:ff; # DHCP option 43 定义立即读取文件
next-server xx.xx.xx.xx; # DHCP option 66 定义tftp server 地址
option bootfile-name "boot/x86/wdsnbp.com"; # DHCP option 67 定义bootfile的文件名
option vendor-encapsulated-options 01:04:00:00:00:00:ff; # DHCP option 43 定义立即读取文件
next-server xx.xx.xx.xx; # DHCP option 66 定义tftp server 地址
option bootfile-name "boot/x86/wdsnbp.com"; # DHCP option 67 定义bootfile的文件名
这样就可以了。
其中为什么这么定义,可以参考 这篇文档,我在测试过程中也使用了wireshark进行了抓包分析,具体就不贴了。
[参考文档]