Chinaunix首页 | 论坛 | 博客
  • 博客访问: 491190
  • 博文数量: 484
  • 博客积分: 10145
  • 博客等级: 上将
  • 技术积分: 5805
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-27 18:34
文章分类

全部博文(484)

文章存档

2011年(52)

2010年(107)

2009年(287)

2008年(38)

我的朋友

分类: LINUX

2009-08-21 09:30:25

用TFTP、DHCP和PXE自架Linux网络(自动)安装服务器

上一篇 / 下一篇  2009-06-16 10:53:29 / 个人分类:linux安装

利用TFTP、DHCP和PXE自架网络(自动)服务器(之一)
                             ——自动获取IP网络(自动)安装Red Hat Enterprise Linux 4.0的服务器架设实例

   实现自动获取IP网络安装linux是这样的:客启端PXE网卡启动——>通过Bootp协议——>DHCP服务器——>获得IP—— >从TFTP上下载 pxelinux.0以及系统内核文件vmlinuz、initrd.img——>启动系统——>(到指定地点去下载ks.cfg文件—— >根据ks.cfg文件去NFS/HTTP/FTP服务器自动)下载RPM包及安装系统——>完成安装。
注意:以下的所有试验都是在WinXP SP2下的VMWare5.5.1中完全安装的RHEL AS4中实现的。实现基本步骤如下:     
         步骤1:
1)把ISO文件或系统安装光盘挂载到一个目录
[root@rhel]#mkdir /media/rhel4
[root@rhel]#mount -o loop,ro /root/RHEL4.iso /media/rhel4    #挂载ISO文件
[root@rhel]#mount -o loop,ro /dev/cdrom /media/rhel4        #挂载光盘
    2)8. 如果在开机时自动加载,可在/etc/fstab加一行:
[root@rhel]#vi /etc/fstab
/root/RHEL4.iso   /media/rhel4 nfs intr
3)挂载ISO后,把isolinux目录下的initrd.img、vmlinuz都复制到/tftpboot/linux-install/下:
[root@rhel]#cp /media/rhel4/isolinux/initrd.img /tftpboot/linux-install/
[root@rhel]#cp /media/rhel4/isolinux/vmlinuz /tftpboot/linux-install/
4) 如果没有RHEL AS 4的ISO文件,可以建立一个共享目录(如:rhel)把RHEL的第一张光盘所有内容复制到这个目录下,然后把第二、三、四张光盘的RPMS目录下的 rpm包都复制到/rhel/RedHat/RPMS目录下,并开启NFS服务。把上面的的挂载目录/media/rhel4/改为建立的rhel目录即 可,其他操作同上。
   步骤2:
1)安装DHCP服务器包(使用RPM包安装DHCP)。
[root@rhel]#cd /rhel/RedHat/RPMS/
[root@rhel]#rpm –ivh dhcp-3.0p12-6.14.i386.rpm
[root@rhel]#rpm –ivh dhcp-devel-3.0p12-6.14.i386.rpm
[root@rhel]#rpm –ivh dhclient -3.0p12-6.14.i386.rpm
2) 配置DHCP服务器,。/etc/dhcpd.conf通常包括三部分:parameters、declarations 、option。
DHCP配置文件中的parameters(参数):
ddns-update-style. 配置DHCP-DNS 互动更新模式。
default-lease-time 指定确省租赁时间的长度,单位是秒。
max-lease-time 指定最大租赁时间长度,单位是秒。
hardware 指定网卡接口类型和MAC地址。
server-name 通知DHCP客户服务器名称。
get-lease-hostnames flag 检查客户端使用的IP地址。
fixed-address ip 分配给客户端一个固定的地址。
authritative 拒绝不正确的IP地址的要求。
    DHCP配置文件中的declarations (声明):
shared-network 用来告知是否一些子网络分享相同网络。
subnet 描述一个IP地址是否属于该子网。
range 起始IP 终止IP 提供动态分配IP 的范围。
host 主机名称 参考特别的主机。
group 为一组参数提供声明。
allow unknown-clients ﹔deny unknown-client 是否动态分配IP给未知的使用者。
allow bootp;deny bootp 是否响应激活查询。
allow booting﹔deny booting 是否响应使用者查询。
filename 开始启动文件的名称,应用于无盘工作站。
next-server 设置服务器从引导文件中装如主机名,应用于无盘工作站。
    DHCP配置文件中的option(选项):
subnet-mask 为客户端设定子网掩码。
domain-name 为客户端指明DNS名字。
domain-name-servers 为客户端指明DNS服务器IP地址。
host-name 为客户端指定主机名称。
routers 为客户端设定默认网关。
broadcast-address 为客户端设定广播地址。
ntp-server 为客户端设定网络时间服务器IP地址。
time-offset 为客户端设定和格林威治时间的偏移时间,单位是秒。
注意:如果客户端使用的是视窗操作系统,不要选择“host-name”选项,即不要为其指定主机名称。
    运行DHCP服务器还需要一个名为 dhcpd.leases 的文件,保持所有已经分发出去的 IP 地址。在Redhat Linux 发行版本中,该文件位于 /var/lib/dhcp/ 目录中。如果您通过 RPM 安装 ISC DHCP,那么该目录应该已经存在。dhcpd.leases的文件格式为:
Leases address {statement}
    典型的文件内容如下:
lease 192.168.1.255 { #DHCP服务器分配的IP地址#
starts 1 2005/05/02 03:02:26; # lease 开始租约时间#
ends 1 2005/05/02 09:02:26; # lease 结束租约时间#
binding state active;
next binding state free;
hardware ethernet 00:00:e8:a0:25:86; #客户机网卡MAC地址#
uid "\001\000\000\350\240%\206"; #用来验证客户机的UID标示#
client-hostname "cjh1"; #客户机名称#
}
    注意lease 开始租约时间和lease 结束租约时间是格林威治标准时间(GMT),不是本地时间。
    第一次运行DHCP服务器时dhcpd.leases是一个空文件,也不用手工建立。如果不是通过 RPM 安装 ISC DHCP,或者 dhcpd 已经安装,那么您应该试着确定 dhcpd 将其 lease 文件写到何处,并确保该文件存在。也可以手工建立一个空文件:
[root@rhel]#touch /var/lib/dhcp/dhcpd.leases
编辑DHCP服务器配置文件,这里是一个示例:
[root@rhel]#vi /etc/dhcp.conf
#全局配置
                  ddns-update-style. interim;
                   ignore client-updates;
                   allow booting;
                   allow bootp;
#子网的(多)作用域
                   subnet 192.168.1.0 netmask 255.255.255.0 {
                        option routers                  192.168.1.1;
                        option subnet-mask              255.255.255.0;
                        option nis-domain               "domain.org";
                        option domain-name             "domain.org";
                        option domain-name-servers      192.168.1.1;
                        filename "/linux-install/pxelinux.0";
                        range dynamic-bootp 192.168.1.50 192.168.1.100;
                       default-lease-time 21600;
                            max-lease-time 43200;
                            subnet 192.168.1.0 netmask 255.255.255.0 {
                        option routers                  192.168.1.1;
                        option subnet-mask              255.255.255.0;
                        option nis-domain               "domain.org";
                        option domain-name             "domain.org";
                        option domain-name-servers      192.168.1.1;
                        filename "/linux-install/pxelinux.0";
                        range dynamic-bootp 192.168.1.150 192.168.1.200;
                       default-lease-time 21600;
                  max-lease-time 43200;
                    }
3) 配置DHCP的客户端,设置为自动启动联网,则要修改你的网络配置文件,添加,或用ntsysv配置也可以:
[root@rhel]#vi /etc/sysconfig/network
NETWORKING=yes
让引导的时候启动联网,或者使用:
[root@rhel]#echo “NETWORKING=yes”>/etc/sysconfig/network
然后再修改你的网卡配置文件:
[root@rhel]#vi /etc/sysconfig/network-scriptes/ifcfg-eth0
应该包含这几行
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
4) 修改/etc/sysconfig/dhcpd文件,配置DHCP服务器在哪个设备上启动,这样对于带有两张网卡的DHCP服务器更安全:
[root@rhel]#vi /etc/sysconfig/dhcpd
DHCPDARGS=eth0
5)开机自动在所有正常的运行级别中启动DHCP服务
[root@rhel]#chkconfig --list dhcpd
[root@rhel]#chkconfig dhcpd on
    6)启动DHCP服务:启动服务器的目的是帮助在待安装机器上启动Red Hat Linux 安装程序。启动服务器上需要搭建一个DHCP 服务器和一个TFTP 服务器。前者是为了给待安装机器分配IP地址,后者则是提供了一个让待安装机器下载启动镜像的途径。
启动方法一:
[root@rhel]#service dhcpd restart
启动方法二:
[root@rhel]#/etc/rc.d/ini.d/dhcpd restart
7)配置DHCP中继代理,编辑/etc/sysconfig/dhcrelay
[root@rhel]#vi /etc/sysconfig/dhcrelay
INTERFACES=”eth0”
DHCPSERVERS=”192.168.1.65”
启动DHCP中继代理:
[root@rhel]#service dhcrelay restart
    步骤3:
这个TFTP服务可以不用配置,因为大都是相同的!可以默认。
1)编辑TFTP 服务器的配置文件,配置文件如下:
[root@rhel]#vi /etc/xinetd.d/tftp
service tftp
socket_type        = dgram
protocol          = udp
       wait              = yes
       user              = root
       server            = /usr/sbin/in.tftpd
       server_args       = -s /tftpboot
        disable           = no
 }
2)启动TFTP服务的话要启动xinetd这个守护服务:
[root@rhel]#server xinetd.d restart
阅读(259) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~