redhat网络安装系统 之一

1、原理部分

许多管理人员在网络管理中,非常头疼的问题就是为用户进行安装操作系统。许多企业的客户端配置基本上很少有带cd-rom,也不可能所有客户端都有操作系统安装光盘。笔者经常发现许多维护人员手拿光驱、光盘来为用户重新进行或升级操作系统。为解决这一枯燥而又重复的工作,不少企业建立了windows远程安装服务器与Linux远程安装服务器。在这里主要探讨一下关于Linux方面的远程安装过程及实现。

    在安装过程中Linux首先需要一个引导程序来让安装程序启动,再实行配置与安装。远程网络安装那么就需要我们的安装程序能够远程地通过网络传送给客户端。因此在搭建远程Linux安装服务器时候首先要值得注意以下几个问题:

1.   远程客户端属于裸机。

这里所定义的裸机是除了标准硬件之外没有任何的操作系统与软件程序。当然也可以拥有操作系统或者是软件,之所以告诉大家是裸机是主要说明最简单的一种思维方式。

2.   远程客户端必须能够支持网络启动。

远程客户端为了能够发送安装请求必须能够通过网络的方式,将安装请求发送给服务器端。因此客户端必须存在网卡,并且网卡上拥有PXE ROM(预引导执行环境)芯片而且BIOS能够支持网络启动。

3.   利用DHCP服务为客户端分发IP地址

在远程计算机启动后将会出现初始化设置,此时因客户端没有进入操作系统或处于在裸机状态下,不可能绑定我们所熟悉TCP/IP地址或者其他网络协议地址。因此他们之间的沟通必须通过IP地址自动分配服务----DHCP来为客户端进行分发IP地址,从而实现Client-Server端之间的链接与沟通。

4.   利用UDP方式传送引导程序

在远程安装客户端得到IP地址之后,将请求远程安装服务器给客户端一个Linux引导程序以便于引导Linux并在客户端上实现安装界面。但是在TCP/IP协议栈中如果采用TCP协议进行传送服务,那么将会出现TCP三次握手过程,从而导致远程客户端等待超时而无法完成引导过程。因此就需要采用UDP协议进行快速传递,确保远程客户端的引导。因此笔者在这里所采用的程序为TFTP[琐碎文件传输协议]服务作为远程传输服务器传送Linux引导程序的服务器。

5.   利用TCP方式传送安装程序

虽然UDP速度非常快速,但是其属于不可靠协议,不具备纠错、确保数据到达目的地等保障机制,因此在传输大量文件或者是大文件时候还是需要采用TCP方式,这样将不会出现因UDP协议传输丢包而导致安装无法进行。

 

在这里有多种方式供大家选择:
 1)NFS[网络文件系统]
 2)HTTP
 3)FTP等
    笔者在这里选择采用NFS方式。

    因此准备建立远程安装服务器至少需要三个服务:DHCP、TFTP、NFS,三个服务可以在三台不同的计算机上,也可以在同一台计算机上进行实现。

原理归纳:

远程客户端计算机启动,由于BIOS设置了网卡启动,所以网卡PXE ROM(自启动芯片)中的程序被调入内存执行。以UDP(简单用户数据报协议)发送一个广播请求,向网络中的DHCP服务器索取IP地址等信息。DHCP服务器收到客户端的请求,验证是否来至合法的PXE Client的请求,验证通过它将给客户端一个“提供”响应,这个“提供”响应中包含了为客户端分配的IP地址、pxelinux启动程序(TFTP)位置,以及配置文件所在位置。

同时DHCP服务器联系到TFTP服务器为此客户端发送一个bootstrap(引导程序)。客户端收到bootstrap(文件pxelinux.0)后执行,bootstrap会请求TFTP传送bootstrap的配置文件(pxelinux.cfg)。收到后读取配置文件。根据配置文件内容和客户情况,客户端请求TFTP传送内核映象文件(vmlinuz)和根文件系统文件(initrd.img)。最后启动内核。

客户端通过pxelinux.cfg/default文件成功的引导Linux安装内核后,安装程序首先必须确定你通过什么安装介质来安装linux,如果是通过网络安装(NFS, FTP, HTTP),则会在这个时候初始化网络,并定位安装源位置。或许你会说,刚才PXE不是已经获取过IP地址了吗?为什么现在还需要一次?这是由于PXE获取的是安装用的内核以及安装程序等,而安装程序要获取的是安装系统所需的二进制包以及配置文件。由于它们需要的内容不同造成PXE模块和安装程序是相对独立的,PXE的网络配置并不能传递给安装程序。从而进行两次获取IP地址过程。

     接着会读取该文件中指定的自动应答文件ks.cfg所在位置,根据该位置请求下载该文件。

将ks.cfg文件下载回来后,通过该文件找到OS Server,并按照该文件的配置请求下载安装过程需要的软件包。

         OS Server和客户端建立连接后,将开始传输软件包,客户端将开始安装操作系统。安装完成后,将提示重新引导计算机。这个时候注意,在重新引导的过程中一定要将BIOS修改回从硬盘启动,不然的话又会重复的自动安装操作系统。

这就是一个完整的pxe构建过程。然而要使网卡启动后再继续网络安装系统,则最后还需要FTP服务将系统所需安装文件放置FTP相应目录中进行传输安装。

下面用图形来表述原理:

Linux安装实现步骤

2、   配置DHCP服务器

    配置DHCP服务器主要用途是为了能够给客户端分配IP地址,从而让客户端与TFTP及FTP进行联系

一、安装:Redhat 5 系统中dhcp默认需要自己安装 (关于如何找到对应的安装包,如何挂载iso文件,如何安装程序包,参考:http://blog.csdn.net/changyanmanman/article/details/7322616   http://download.csdn.net/download/changyanmanman/4206732

安装文件为:

dhcp-3.0.5-21.el5.i386.rpm             ——DHCP软件包(必装)

dhcp-devel-3.0.5-21.el5.i386.rpm         ——DHCP头文件,这里用不到

[root@linux-a
~]# rpm -ivh /media/Server/dhcp-3.0.5-3.el5.i386.rpm 
warning: /media/Server/dhcp-3.0.5-3.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing...                ########################################### [100%]
   1:dhcp                   ########################################### [100%]
[root@linux-a ~]#

二、配置:

1、其配置文件是/etc/dhcpd.conf,租约数据库文件是/var/lib/dhcpd/dhcpd.leases。

在第一次打开该文件时,只告知一个例子文件的路径(如下图),可将该例子覆盖该配置文件再进行修改。

 

cp /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample /etc/dhcpd.conf
----------------------------------------------------
注:这里若找不到该模板文件,可以使用locate命令查询位置
[root@server1 ~]# locate dhcpd.conf
/usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample   ----就是它了
/usr/share/logwatch/default.conf/services/dhcpd.conf
/usr/share/man/man5/dhcpd.conf.5.gz
----------------------------------------------------    

2、 DHCP的配置文件

dhcpd.conf文件有二大部分,分别是全局配置和局部配置(如下图)。当全局配置与局部配置发生冲突时,局部配置优先级更高。

常用参数: 
●ddns-update-style  (none|interim|ad-hoc):定义所支持的DNS动态更新类型,该参数必选且必须放在第一行且只能在全局配置中使用。 
none:不支持。 interim:DNS互动更新模式。 ad-hoc:特殊DNS更新模式。 

●ignore-client-updates:忽略客户端更新,该参数只能在全局配配置中使用。 

●default-lease-time:默认IP租约时间,单位秒,该参数可以在全局配置、局部配置均可使用。 
●max-lesase-time:客户端IP租约时间的最大值,单位秒,该参数可以在全局配置、局部配置均可使用。 

● hardware
:指定网卡接口类型和MAC地址。 

●server-name                    
通知DHCP客户服务器名称。

 get-lease-hostnames
flag        检查客户端使用的IP地址。 
 fixed-address ip                分配给客户端一个固定的地址。 
 authritative                    拒绝不正确的IP地址的要求。

常用声明: 
●subnet 网络号 netmask 子网掩码 {…..}:定义作用域。 
●range 起始IP 结束IP:动态IP地址范围。 

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                                设置服务器从引导文件中装如主机名,应用于无盘工作站。

常用选项: 
●option routes IP地址:为客户端设定默认网关,该选项可以在全局配置、局部配置均可使用。 
●option subnet-mask 子网掩码:默认子网掩码,该选项可以在全局配置、局部配置均可使用。 
●option domain-name-servers:为客户端指明DNS服务器地址,该选项可以在全局配置、局部配置均可使用。 
●option domain-name:DNS后缀,该选项可以在全局配置、局部配置均可使用。 
●option time-offset:为客户端指定格林威治时间领衔时间,单位秒,该选项可以在全局配置、局部配置均可使用。 

domain-name          
为客户端指明DNS名字。  
host-name             为客户端指定主机名称。 
broadcast-address     为客户端设定广播地址。 
ntp-server            为客户端设定网络时间服务器IP地址。 
time-offset          为客户端设定和格林威治时间的偏移时间,单位是秒。

我们看一个标准配置:

ddns-update-style interim;                                                   ----------配置使用DHCP-DNS互动更新模式。这里不要修改,而且必须有
ignore client-updates;                                                           ----------不允许客户端更新,也不要改,而且必须存在

subnet 169.254.215.0 netmask 255.255.255.0 {            ---------子网声明,就是你要进行dhcp的网段,本实验是169.254.215.0

# --- default gateway
        option routers                  169.254.215.76;                 -------------默认网关,根据实际情况修改,下同
        option subnet-mask              255.255.255.0;            -------------客户端的子网掩码

        option nis-domain               "nisdomain.com";           -------------客户端的NIS域名,有NIS服务器的话才要设置
        option domain-name              "ccg.com";                       -------------客户端的域名,本实验是ccg.com
        option domain-name-servers      169.254.215.76;          -------------客户端设置域名服务器

        option time-offset              -18000; # Eastern Standard Time       -------偏移时间,不用改
#       option ntp-servers              169.254.215.76;                       -------NTP服务器地址,就是时间服务器
#       option netbios-name-servers     169.254.215.76;                       --------wins服务器地址
# --- Selects point-to-point node (default is hybrid). Don't change this unless
# -- you understand Netbios very well
#       option netbios-node-type 2;                     ---------netbios节点类型,不用改

        range dynamic-bootp 169.254.215.125 169.254.215.200;       ----------地址池,你要进行分配的地址规划,本实验是主机位125-200进行分配
        default-lease-time 21600;                                   ------默认租约时间,单位为秒
        max-lease-time 43200;                                        ---------最长租约时间,单位秒

        # we want the nameserver to appear at a fixed address        ---------下面是设置主机绑定的,并不是必须有的
        host ns {                                                      ---------这5行是模板,不起作用
                next-server marvin.redhat.com;
                hardware ethernet 12:34:56:78:AB:CD;  
                fixed-address 207.175.42.254;
        }
        host ns1 {                                                    ---------这个名称可以随便起,但是最好不要重复
                next-server marvin.redhat.com;                        ---------无盘工作站用得着,这里可有可无
                hardware ethernet 00:0C:29:6C:79:8F;                 
---------要绑定的客户端的MAC地址
                fixed-address 169.254.215.130;                       
---------要绑定MAC地址的主机对应的IP
        }
}

配置本次我们需要的dhcpd.cfg文件:

接下来我们需要配置相关信息。为了满足我们的安装需求,假设PXE服务器、DHCP服务器、TFTP服务器全部安装在一台为192.168.0.7的计算机上。我们需要进行如下操作:

(1)修改/etc/dhcpd.conf 文件,指定 IP 地址等信息。

(2)在'''/etc/dhcpd.conf''' 中增加 tftp-server 需要推送给客户端的启动文件(bootstrap):filename"pxelinux.0";因为 tftp 的默认目录是 /tftpboot,所以文件的绝对路径就是:/tftpboot/pxelinux.0";当然也可以指定为其它的路径。

另外需要指定 next-server 参数,告诉客户端在获取到pxelinux.0 文件之后去哪里获取其余的启动文件: next-server 192.168.0.7;

最终的配置文件结果如下所示:

[root@qiuriServer]# vi /etc/dhcpd.conf 
ddns-update-styleinterim;
ignoreclient-updates;
allow booting; #定义能够PXE启动
allow bootp;  #定义支持bootp
subne t192.168.1.0 netmask 255.255.255.0 {
        range 192.168.1.10 192.168.1.80;
        option routers                  192.168.0.1;
        option subnet-mask              255.255.255.0;
        default-lease-time 21600;
        max-lease-time 43200;
        next-server 192.168.0.7; #TFTP Server的IP地址
        filename "pxelinux.0";   #pxelinux启动文件位置
}

三、启动服务:

#service dhcpd start

关闭DHCP服务器:

#service dhcpd stop

重启DHCP服务器:
#service dhcpd restart
使用ps命令检查dhcpd进程:
#ps -ef | grep dhcpd
root      2402     1 0 14:25 ?        00:00:00 /usr/sbin/dhcpd
root      2764 2725 0 14:29 pts/2    00:00:00 grep dhcpd
使用检查dhcpd运行的端口:
# netstat -nutap | grep dhcpd
udp   0 0 0.0.0.0:67         0.0.0.0:*              2402/dhcpd

配置完成后,重启DHCP服务,并将它设为开机自启动:
[root@qiuriServer]# /etc/init.d/dhcpd start
启动 dhcpd:                                               [确定]
[root@qiuriServer]# chkconfig --level 35 dhcpd on

四、关于客户端的配置

可以通过图形化界面进行修改:
system-config-network-tui

也可以通过修改文件的方式
[root@server1 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
修改这条:
BOOTPROTO=dhcp

若想重新获得分配的IP,直接重启网卡就行了
service network restart
使用下面这条命令也可以
ipconfig /renew

附加:(与本次安装无关,仅作延伸阅读)

●下面我们来看一个配置实例,实例中的网络拓扑如下图

 

ddns-update-style interim;
ignore client-updates;
option domain-name“demo.zqin”;

subnet 192.168.159.0 netmask 255.255.255.0 {

        option routers     192.168.159.18;
option subnet-mask255.255.255.0;
option domain-name-servers192.168.159.1;
option domain-name“example.zqin”;
option time-offset-18000;

range dynamic-bootp 192.168.159.20 192.168.100.250;
default-lease-time 21600;
max-lease-time 43200;
}

上述配置实际上只需在rhel中所提供的例子文件中改几处即可,在编写配置文件时需注意以下几个问题:

●每行必须以分号结尾(如不用分号结尾,在启动dhcpd时是不会报错的,只能通过查看日志文件/var/log/message得知)。 
●局部配置必须包含在一对中括号之间。 
●上面的例子中全局部分定义了参数option domain-name,在局部也定义了,这个在实际工作是没有必要的,这里只是为了说明局部参数的优先级高于全局部分。 
如希望实现保留功能(在保留中也可使用参数,当然保留中参数的优先级最高),首先需要知道指定客户端网卡的MAC地址,然后在配置文件中加入如下内容即可。

ddns-update-style interim;
ignore client-updates;
option domain-name“demo.zqin”;

subnet 192.168.159.0 netmask 255.255.255.0 {

        option routers     192.168.159.18;
option subnet-mask255.255.255.0;
option domain-name-servers192.168.159.1;
option domain-name“example.zqin”;
option time-offset-18000;

range dynamic-bootp 192.168.159.20 192.168.100.250;
default-lease-time 21600;
max-lease-time 43200;

host lyon {
hardware Ethernet 00:50:56:c0:00:01;

在整个DHCP客户端与服务器通讯的过程全部使用的是广播的方式,这样会带来一个问题,如果在DHCP客户端与服务器之间必须通过路由器时是无法完成IP地址的申请过程的,这里就需要使用DHCP中继代理了。DHCP中继代理位于DHCP客户端一边的网络中,帮助DHCP客户端与DHCP服务器进行通讯。不过在实际工作中,本人觉得直接在路由器或三层交换机上配置DHCP中继代理更合理。不过我们还是来看下通过rhel如何实现中继代理功能,下面的配置实例中,网络拓扑如下图:

●将dhcp的网关指向192.168.159.18

●编辑/etc/syconfig/dhcpd文件

DHCPDARGS=eth0

●在dhcp上建立超级作用域,并为192.168.100.0/24建立作用域

ddns-update-style interim;
ignore client-updates;

shared-network test {
#建立超级作用域
        option domain-name"example.zqin";
   option domain-name-servers192.168.159.1;
        subnet 192.168.100.0 netmask 255.255.255.0 {

        option routers     192.168.100.18;
option subnet-mask255.255.255.0;

option time-offset-18000;

range dynamic-bootp 192.168.100.20 192.168.100.200;
default-lease-time 21600;
max-lease-time 43200;
}

subnet 192.168.159.0 netmask 255.255.255.0 {
option routers192.168.159.18;
option subnet-mask255.255.255.0;

option time-offset-18000; 

range dynamic-bootp 192.168.159.20 192.168.159.200;
default-lease-time 21600;
max-lease-time 43200;
}
}

●在中继代理上安装dhcp、dhcp-devel包。

●在中继代理上运行,并将其加入/etc/rc.local中。

echo “1” > /proc/sys/net/ipv4/ip_forward

●编辑/etc/sysconfig/dhcrelay文件

INTERFACES="eth1"
DHCPSERVERS="192.168.159.19"

●启用中继代理

service dhcrelay restart
chkconfig dhcrelay on
时间: 2024-09-24 14:00:31

redhat网络安装系统 之一的相关文章

redhat网络安装系统 之三

5.  PXE引导配置     要配置TFTP所要传输的bootstrap,首先要准备好引导文件.内核镜像文件.跟文件系统文件. 1. bootstrap文件:pxelinux.0  文件位置在/usr/lib/syslinux目录中.将其拷贝到/tftpboot目录中  #cp /usr/lib/syslinux /pxelinux.0 /tftpboot  2 .内核镜像文件(用于网络启动的内核文件):vmlinuz       vmlinuz文件在RH5镜像文件下的/images/pxeb

redhat网络安装系统 之二

3. 配置TFTP服务器     TFTP(Trivial File Transfer Protocol简朴文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂.开销不大的文件传输服务.TFTP承载在UDP上,提供不可靠的数据流传输服务,不提供存取授权与认证机制,使用超时重传方式来保证数据的到达.与FTP相比,TFTP的大小要小的多,TFTP是用来下载远程文件的最简单网络协议,它基于UDP协议而实现.它使用的是UDP的69端口 . 配置TFTP服务

Redhat Enterprise Linux 6 Update 4在z/VM 6.2上的快速网络安装方式

在z/VM上部署zLinux有多种方式,本文介绍了Redhat Enterprise Linux 6 Update 4在z/VM 6.2上一种快速的网络安装方式. 1 准备工作 1.1 基础要求 在阅读本文以下内容之前,您需要掌握基础的z/VM CP和CMS命令,请参阅参考资料[3],了解z/VM基本操作.本文假定您已经掌握z/VM基础操作. 1.2 需要的客户端 请准备以下客户端: 3270终端客户端. Linux系统上您可以使用x3270,Windows系统上您可以使用IBM Persona

利用B/S网络安装客户端实现自动分发系统的原理及方法

客户端|网络 /*Author:yekin-yu Date:10/30/2003利用B/S网络安装客户端实现自动分发系统的原理及方法本站作品版权作者所有,其他网站或媒体如要转载请署名作者和出处!*/ 一.用VC++写一个动态链接库文件如Install.dll 实现功能: 1.自动更改IE的安全级别启用未签名的ActiveX控件为安装可执行exe文件做好准备; 2.自动判断浏览者受控端是否安装了客户端安装程序: 3.自动判断浏览者的操作系统,而转向相应的客户端程序安装界面: 4.自动判断受控端的客

网络安装linux系统(二)

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://navyaijm.blog.51cto.com/4647068/861640 之前有些过一篇关于从光驱启动实现网络安装的博文,今天写这篇网络安装的方法超级简单,超级方便使用,比网上其他方法简单多了,环境不到两分钟搭好,不像网上大多数方法,安装这个,安装那个的,麻烦,我这种方法什么都不需要安装,不罗嗦了,看步骤吧: 一.需求 公司新采购了50台dell R610服务器,统一都需要安

redhat或debian系统上软件安装和卸载的介绍

在使用redhat或debian系统中,经常会对软件进行安装和卸载,下面风信网针对Linux系统中的软件的安装和卸载方法进行一个总结,给大家参考使用. 以下示例以rpm包为准!没有安装debian系统,但方法差不多. 卸载一个软件包: rpm -e <package-http://www.aliyun.com/zixun/aggregation/11696.html">name> 示例: [root@localhost software]# rpm -e gnome-libs-

轻松搭建网络办公平台:71BASE-OFFICE网络办公系统v1.3

网络|网络办公 搭建网络办公平台1 [ 作者:孙成 转贴自:本站原创 点击数:60 更新时间:2003-12-11 文章录入:tjrao ] 局域网中轻松搭建网络办公平台 网络迅速发展的今天,电子商务.电子政务在企业和机关单位迅速普及,网络办公已经成为现代办公的主流,它不但提高了员工的工作效率,而且减少了办公费用的支出,这种以网络为媒介的办公就是我们常说的"无纸办公",所有的日常工作以及员工间的相互协作都是在网络中完成的,下面我们就使用"71BASE-OFFICE网络办公系统

浅谈网络防病毒系统的规划

计算机病毒形式及传播途径日趋多样化,网络防病毒工作已不再是简单的单台计算机病毒的检测及清除,需要建立多层次的.立体的病毒防护体系,而且要具备完善的管理系统来设置和维护病毒防护策略.这里的多层次病毒防护体系是指在企业的每台客户端计算机上安装防病毒系统,在服务器上安装基于服务器的防病毒系统,在Internet网关安装基于Internet网关的防病毒系统.对企业来说,防止病毒的攻击并不是保护某一台服务器或客户端计算机,而是从客户端计算机到服务器到网关以至于每台不同业务应用服务器的全面保护,这样才能保证

kickstart无人值守安装系统

一.使用yum安装dhcp tftp vsftpd system-config-kickstart软件包 1. 安装相关软件包 #yum -y install tftp dhcp vsftpd system-config-kickstart 二.配置dhcpd服务 cp /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample /etc/dhcpd.conf #vim /etc/dhcpd.conf  内容如下,当然也可以根据自己的需要灵活修改 ddns-updat