整理Kickstart+DHCP+PXE+Heartbeat资料

看了http://linux.chinaunix.net/bbs/thread-1008703-1-5.html
的RHEL4+Kickstart+NFS+DHCP +PXE全自动无人安装 ,我决定将我之前的研究 整理一下,现在基于RedHat的Kickstart网络安装技术较为成熟。
我的做法是在现今这种成熟的方法中加入Heartbeat 技术,网络安装服务器采用Vsftp或Http。
实验环境:两台安装服务器(均为双网卡),操作系统是RedHat9.0,客户端预装RedHat9.0
实验附件:交叉网线、串口交叉线
实验目标:网络安装过程中,一台服务器出现故障,自动切换到另一台进行安装,客户端机器的安装不会中断;被安装机器可同时从两台服务器安装
安装特点:安装服务器能够进行故障转移(主要是网络故障);具备两种安装服务器的负载均衡方法(基本配置文件和DNS服务)
测试:大规模网络安装没有测试,小规模安装测试通过
实用性:对大规模安装的益处有待考究
本配置只根据我的方法的特点描述与以往经典配置不同之处:
1.基本描述
安装服务器采用了双机集群系统,双机之间存在三条硬件链路:一对串口及交叉串口线、一对网络接口及交叉网线、局域网络连接。交叉线用于Heartbeat 软件在两台服务器之间传送心跳信息,局域网的接入一方面使两台机器之间可以通过网络通信,另一方面使服务器能够通过网络为结点提供安装。双机同时提供安装服务,除硬件相近外,各种软件设施和文件配置也相近。
结点在安装过程中会通过负载均衡算法分组,一种是有规则的根据IP奇偶分组,另一种是无规则的基于DNS分组。
引导服务器和安装服务器位于同一台机器上,安装服务采用Ftp。结点启动后,由server1向所有结点提供DHCP 服务,结点根据获得的IP地址或访问DNS服务器决定自己由哪台服务器安装。
如果采用IP奇偶分组,奇数IP的结点会映射到server1的Ftp服务,偶数IP的映射到server2的Ftp服务,server1和server2分别通过192.168.0.253和192.168.0.254对外提供Ftp服务。如果server1发生故障,DHCP 服务由server2提供,IP地址192.168.0.253被server2捕获,此时server2向结点提供安装服务,如果server2发生故障,192.168.0.254由server1捕获,server1负责所有结点。
DHCP 服务器由Heartbeat 控制开启和关闭,两台服务器均开机自动运行TFTP、DNS、Ftp服务,这些服务不受Heartbeat 控制,因为一台机器故障发生,Heartbeat 进行资源接管时启动相应的服务会占用一定时间,这影响了安装服务可用时间。
由于客户端对服务器无写操作,所以两台服务器不涉及复杂的数据同步。一个关键的问题是,服务器故障切换,IP重新绑定后连接的恢复。通过以上分析,有三方面能够保证达到这个效果,首先,Heartbeat 故 障切换后,能够在备份服务器上发送GARP广播,主动的通知客户端IP与MAC的对应关系发生变化,从而更新对应的缓存表;其次,客户端的缓存表是定时更 新的,客户端在一定时间间隔内会主动询问IP与MAC地址的对应关系,更新本地ARP表;再次,根据对Kickstart支持的协议分析以及FTP协议的 特性,连接是有可能恢复的,测试中证明了这一点。
2.故障切换的实现:
2.1Heartbeat 的安装与配置
传送心跳的接口IP地址分别设置成10.0.0.3和10.0.0.4。
主配置文件ha.cf关键内容如下:
logfile /var/log/ha-log # 日志文件,重要的参考信息可以辅助测试
nice_failback off #Heartbeat
支持形成共享负载的关键,使两个IP 分别由两台服务器捕获
node    server1 #
使用主机server1
node    server2 #
使用主机server2
respawn root /etc/init.d/vsftpd start #
如果Ftp 服务失败,将重启Ftp 服务
资 源文件haresource规定哪台服务器拥有哪些资源。与我们构建的集群部署密切相关的配置是在haresource中加入server1 192.168.0.253 dhcpd和server2 192.168.0.254两条语句。server1和server2是两台服务器的主机名(在/etc/hosts中必须进行配置),与ha.cf中指 定的一致;192.168.0.253和192.168.0.254是两台服务器分别需要捕捉的除自身IP以外的IP地址。通过这两个IP地址,两台服务 器同时对外提供服务。在同一局域网里不能有两个DHCP 服务,因此让Heartbeat 控制其中一台拥有dhcpd资源。
3.负载均衡的实现:
3.1基于基本配置文件的负载均衡
(1)引导服务器配置
①DHCP配置
subnet 192.168.0.0 netmask 255.255.255.0 {
  range  192.168.0.128 192.168.0.252;
  option routers 192.168.0.1;
   host cli128 {
filename "pxelinux.0";
next-server 192.168.0.254;//
偶结点TFTP 服务IP 地址
    hardware ethernet 00:0C:29:6D:1C:F7;//
偶节点MAC 地址
    fixed-address 192.168.0.128;//
偶结点IP 地址
  }
  host cli129 {
filename "pxelinux.0";
next-server 192.168.0.253;//
奇结点TFTP 服务IP 地址
    hardware ethernet 00:0C:29:6E:81:E8;//
奇结点MAC 地址
    fixed-address 192.168.0.129;//
奇结点IP 地址
  }
}

该配置文件不但确立了MAC地址与分配IP的对应关系,而且指定了结点对应的TFTP服务器地址。确定这种对应关系才能方便地进行负载均衡,获得IP地址的PXE客户端会根据DHCP 配置文件指定的TFTP地址获得一些启动需要的文件;启动后会根据Kickstart配置文件找到负责自己的安装服务器。DHCP 服务由Heartbeat 启动。
②TFTP的配置
在 TFTP的主目录/tftpboot/的pxelinux.cfg下为每个结点生成引导配置文件。这些配置文件的名称是结点被分配的IP地址的16进制表 示,如C0A80080对应IP地址为192.168.0.128的结点。安装过程中结点从TFTP获得并执行pxelinux.0 时,pxelinux.0会读取对应结点IP的配置文件。在pxelinux.cfg下可以放置一个名为default的配置文件,如果结点找不到对应 IP地址的配置文件,则默认使用default。
奇数IP地址的引导配置文件内容示例如下:
DEFAULT vsftpd # 对应下面的LABEL 选项
DISPLAY message.txt#
引导之前显示的提示信息
PROMPT 1
TIMEOUT 50#50ms
后自动加载内核
LABEL vsftpd
KERNEL vmlinuz #
内核名字
APPEND ks=ftp://192.168.0.253/pub/rh9/ks129.cfg initrd=initrd.img root=/dev/ram ramdisk_size=8192 #
指定了内核参数,包括Kickstart 配置文件,文件系统initrd.img 和使用的虚拟磁盘
偶 数IP地址的结点对应的引导配置文件与上述文件的差别在于APPEND选项的ks=ftp://192.168.0.254/pub/rh9 /ks128.cfg,通过对Kickstart配置文件位置的指定可以使结点从不同的安装服务器获取Kickstart配置文件,达到负载均衡的目的。
(2)安装服务器配置
安装包放在/var/ftp/pub/rh9下,Kickstart配置文件也放在此目录下,我们准备了两种配置文件,他们指定了不同的安装服务器的位置,一种文件中的一行为url --url ftp://192.168.0.253/pub/rh9 ,另一种文件中的一行为url --url ftp://192.168.0.254/pub/rh9 。
(3)负载均衡特点
不同的MAC地址对应特定的IP地址,进而对应引导配置文件,其中指明了对应的Kickstart配置文件,该文件指明了安装服务器IP地址,最终将结点定向到了某台安装服务器。
这 里的负载均衡是一种通过IP地址奇偶性分割待安装结点的静态负载均衡方法。负载的大小由结点的数量和安装包大小决定,两台安装服务器分别负责一半结点。从 结点角度来说,安装包只由一台服务器提供,除非提供安装的服务器发生故障,剩余的安装包才由另一台服务器提供。由于待安装结点之间可能存在处理能力、体系 结构以及所需安装包大小和版本等差别,更加复杂、灵活的动态或动静结合的负载均衡手段,可以通过修改配置文件,在本负载均衡方法基础上进行,并且容易扩展 到多台安装服务器上加以实现。
除了安装服务器的负载均衡,TFTP服务器因为DHCP 的指定也达到了负载均衡的效果,整体上部署服务器实现了负载均衡。
3.2基于DNS的负载均衡
(1)引导服务器配置
①DHCP配置
next-server ftp.youyuanyin.org;// 安装服务器的域名(主机名)
subnet 192.168.0.0 netmask 255.255.255.0 {
  range  192.168.0.128 192.168.0.252;
  option domain-name "youyuanyin.org";//
域名(后缀)
  option domain-name-servers 192.168.0.253,192.168.0.254;//
指定域名服务器IP  
}

与上一种负载均衡方法中的配置不同的是以上几行,此处TFTP服务器以域名的形式指定,同时指定域名服务器。这样TFTP服务器的负载均衡由DNS支撑,解析出什么IP就访问其上的TFTP服务获取与启动相关的文件。
②TFTP的配置
   TFTP与上一中负载方法不同的也只是在引导配置文件上,如下:
APPEND ks=ftp://ftp.youyuanyin.org/pub/rh9/ks129.cfg initrd=initrd.img root=/dev/ram ramdisk_size=8192
Kickstart配置文件的位置由域名指定,这样结点可以从某台服务器获得Kickstart配置文件,而不是固定从某台服务器获得。
(2)DNS服务器配置
这 里DNS有两个用途,一个是需要配合Sendmail实现域名解析,顺利发送邮件到Internet;另一个用途是将安装服务器域名解析成两个不同的 IP,实现负载均衡。Linux下DNS服务器通常使用开源软件Bind(Berkeley Internet Name Domain Service)实现。在这里我们配置主要名称服务器,首先在Bind的主配置文件/etc/named.conf中,建立主区域如下
zone "youyuanyin.org" {
        type master;
        file "youyuanyin.org.zone";
        allow-transfer { none; };
};

file "youyuanyin.org.zone";这一行指定了对应的区域文件,在youyuanyin.org.zone文件中加入
ftp     IN      A       192.168.0.253
ftp     IN      A       192.168.0.254

因为我们使用了两台内容相同的安装服务器更同承担结点的安装,他们的在Heartbeat 软 件的作用下分别使用了IP地址192.168.0.253和192.168.0.254,在这里他们使用同一个域名 ftp.youyuanyin.org,即一个主机名对应两条A资源记录。当有域名查询请求到达时,DNS服务器会轮询这两条资源记录,以随机的顺序响应 结点的解析请求,从而实现了在两台安装服务器之间分担结点访问。
(3)安装服务器配置
基于DNS的负载均衡,只需要制作一种Kickstart配置文件,在文件中加入安装源地址为--url ftp://ftp.youyuanyin.org/pub/rh9 ,也就是不使用直接的IP指定安装源。ftp.youyuanyin.org是安装服务器的域名,和DNS服务器配置文件中的对应。
由于在Kickstart的配置文件中可以指定安装源为url --url ftp://ftp.youyuanyin.org/pub/rh9 ,而结点通过DHCP 获得IP的同时还能够获得DNS服务器的IP地址,当它获得以域名方式给出的安装源地址时会通过DNS服务器解析出为其提供安装包的服务器IP地址。上一小节中的DHCP 配置文件中option domain-name-servers 192.168.0.253,192.168.0.254;这一行指定了DNS服务器的IP地址。DNS服务器的地址也可以在Kickstart配置文件中指定:
network --bootproto=static --device=eth0 --ip=192.168.0.128 --netmask=255.255.255.0 --gateway=192.168.0.1 --nameserver=192.168.0.253 --hostname=cli128
--nameserver=192.168.0.253即指定了DNS服务器的地址,这个指定将覆盖DHCP 服务器中的指定。Kickstart配置文件的制作以及安装源的准备方法与上一小节相同。
(4)负载均衡的特点
在 DNS服务器上,ftp.youyuanyin.org会由DNS内部的负载均衡算法从youyuanyin.org.zone区域文件中解析出 192.168.0.253或192.168.0.254,从而达到负载均衡的目的。这里只需要一种Kickstart配置文件,并在文件中通过域名指定 安装源地址,DNS将域名轮询解析为192.168.0.253和192.168.0.254。对应关系或者说是结点组的划分不再取决于结点的IP地址, 而是DNS内部的负载均衡机制对两个服务器IP地址的轮询。
基于DNS的负载均衡安装原理图如4.9所示。这里的负载均衡实质上是DNS的负载均衡,依赖于DNS内部的负载均衡算法。同时必须有DHCP 服 务器的支持或者在Kickstart文件中指定,使结点获得DNS服务器的IP地址。更重要的是Kickstart的安装程序Anaconda支持域名形 式的安装源地址,访问DNS寻求域名解析。结点在开始安装之前和安装过程的一系列活动中还访问了DNS服务器。更重要的一点是,结点每次获取安装包,都要 查询域名服务器获得IP地址,之后才能从服务器获取数据,这也是该种负载均衡的缺点,频繁访问DNS服务器占用了一定的网络带宽。
4.测试
我 们使用Vmware虚拟机和真实机器作为结点分别进行了安装测试。采用虚拟机可以方便进行重启操作,截取结点机屏幕,录制整个安装过程结点屏幕信息,保存 机器状态,通过宿主机测试网络连通性等。在一台服务器上打开多个终端对两台服务器进行监视和命令操作,用tcpdump工具捕捉并分析了安装过程的数据 包。
4.1 故障转移特性测试
目前测试得出基于Kickstart安装方式,采用NFS协议安装时只能做到负载均衡,当服务器出现故障时,因为NFS服务器和结点采用UTP进行通信,一旦出现故障,不会进行重新连接;采用Ftp和Http能够同时做到故障处理以及负载均衡。
通过service heartbeat stop命令模拟故障,然后比对两台服务器上的Heartbeat 日志计算出处理服务器故障的时间延迟为4秒钟左右,而不进行故障处理时结点在1到3分钟才会弹出错误提示页面,4秒钟的故障时间不会造成安装失败。server1关闭heartbeat 进程后,/var/log/ha-log中的一段日志如下:
heartbeat: 2007/12/24_19:37:21 info: Heartbeat shutdown in progress. (667
heartbeat: 2007/12/24_19:37:21 info: Giving up all HA resources.
heartbeat: 2007/12/24_19:37:21 info: Releasing resource group: server1 192.168.0.253 dhcpd
heartbeat: 2007/12/24_19:37:21 info: Running /etc/init.d/dhcpd  stop
heartbeat: 2007/12/24_19:37:21 info: Running /etc/ha.d/resource.d/IPaddr 192.168.0.253 stop
heartbeat: 2007/12/24_19:37:21 info: /sbin/route -n del -host 192.168.0.253
heartbeat: 2007/12/24_19:37:21 info: /sbin/ifconfig eth0:0 down
heartbeat: 2007/12/24_19:37:21 info: IP Address 192.168.0.253 released
heartbeat: 2007/12/24_19:37:21 info: All HA resources relinquished.
heartbeat: 2007/12/24_19:37:22 info: control process Received SIGQUIT
heartbeat: 2007/12/24_19:37:22 info: Core process 6672 exited. 7 remaining
heartbeat: 2007/12/24_19:37:22 info: Core process 6673 exited. 6 remaining
heartbeat: 2007/12/24_19:37:22 info: Core process 6674 exited. 5 remaining
heartbeat: 2007/12/24_19:37:22 info: Core process 6675 exited. 4 remaining
heartbeat: 2007/12/24_19:37:22 info: Core process 6676 exited. 3 remaining
heartbeat: 2007/12/24_19:37:22 info: Core process 6677 exited. 2 remaining
heartbeat: 2007/12/24_19:37:22 info: Core process 6678 exited. 1 remaining
heartbeat: 2007/12/24_19:37:22 info: Heartbeat shutdown complete.

这是server1上从关闭heartbeat 到完全释放资源时记录的日志。对应的server2端会记录heartbeat 接管资源的一系列信息。同样/var/log/messages会记录heartbeat 进程的信息。
    IP接管后,接管IP的安装服务器会通过GARP广播更新客户端的ARP表,进而重新建立连接,继续进行安装。GARP广播使得结点与Heartbeat 控制的IP地址能够在失去连接之后重新建立连接;Ftp协议是基于TCP/IP协议的,TCP/IP协议的可靠性和重传机制使得存在故障切换的情况下,并未丢包,结点获得安装包仍为2.7G大小。
也可以通过tcpdump工具监控数据流进行测试,但没有观察heartbeat 日志方便,因为日志中记录了heartbeat 服务的状态,包括何时关闭、启动等。通过tcpdump监控数据流可以观察到,当故障发生后,一台服务器上的相关数据流停止,而出现在另一台服务器上,备份服务器此时提供所有结点的安装。
4.2 负载均衡特性测试
在两台服务器上分别用tcpdump host 192.168.0.253和tcpdump host 192.168.0.254命令确认负载在两台服务器之间进行了分配。
尤其对于基于DNS的负载均衡,可以观察到,一个结点会先访问DNS服务器,然后从某个部署服务器获得安装数据包,安装包由两台服务器共同提供。由tcpdump在DNS服务器上截获的数据包如下:
13:40:15.551497 ftp.youyuanyin.org.domain > cli128.youyuanyin.org.32769:  23015* 2/1/1 A ftp.youyuanyin.org, (102) (DF)
13:40:15.551950 cli128.youyuanyin.org.33175 > ftp.youyuanyin.org.ftp: S 1618371400:1618371400(0) win 5840 (DF)
13:40:15.551967 ftp.youyuanyin.org.ftp > cli128.youyuanyin.org.33175: S 161667834:161667834(0) ack 1618371401 win 5792 (DF)
13:40:15.552206 cli128.youyuanyin.org.33175 > ftp.youyuanyin.org.ftp: . ack 1 win 5840 (DF)
13:40:15.553275 ftp.youyuanyin.org.ftp > cli128.youyuanyin.org.33175: P 1:21(20) ack 1 win 5792 (DF)
13:40:15.553617 cli128.youyuanyin.org.33175 > ftp.youyuanyin.org.ftp: . ack 21 win 5840 (DF)

除了结点与FTP服务器的通信(.ftp的行),还存在结点与DNS的通信(.domain等行)。基于基本配置文件的负载均衡只存在与FTP服务器的通信。
5参考文献
【1】冯钰,刘亚.基于网络的 Red Hat 无人值守安装[EB/OL].http://www.ibm.com/developerworks/cn/linux/l-autoinstl/index.html ,2006.10.19.
【2】邱建新,马世霞.Linux网络安装的自动化原理剖析及应用[J].微计算机应用,2005.11,6(26):760-764
【3】 W.Richard Stevens.TCP/IP详解[M].北京:机械工业出版社,2002.
【4】林慧琛,刘殊,尤国君.Red Hat Linux服务器配置与应用[M].北京:人民邮电出版社,2006.1.
【5】Behrouz A.Forouzan,Sophia Chung Fegan著,谢希仁等译.TCP/IP协议族[M].第3版,北京:清华大学出版社,2006.5.
【6】Karl Kopper著,沈金河,李秋霞等译.Linux企业集群——用商用硬件和免费软件构建高可用集群[M].北京:中国水利水电出版社,2007.1.
【7】http://www.linux-ha.org/

Red hat linux9.0下(安装时已将所有软件包选取--完全安装):

一、所需软件包:

1、heartbeat-1.0.4-2.rh.9.um.1.i386.rpm

2、heartbeat-pils-1.0.4-2.rh.9.um.1.i386.rpm

3、heartbeat-stonith-1.0.4-2.rh.9.um.1.i386.rpm

4、net-snmp-5.0.6-17.i386.rpm

其中前3个可到www.ultramonkey.org下载,最后一个系统自带

二、按顺序安装

1、heartbeat-pils-1.0.4-2.rh.9.um.1.i386.rpm

rpm -ivh heartbeat-pils-1.0.4-2.rh.9.um.1.i386.rpm

2、heartbeat-stonith-1.0.4-2.rh.9.um.1.i386.rpm

rpm -ivh heartbeat-stonith-1.0.4-2.rh.9.um.1.i386.rpm

3、heartbeat-1.0.4-2.rh.9.um.1.i386.rpm

rpm -ivh heartbeat-1.0.4-2.rh.9.um.1.i386.rpm

如果需要安装net-snmp-5.0.6-17.i386.rpm,应该第二个进行安装

三、配置主服务器

用rpm安装之后不会产生配置文件,需要

cp /usr/share/doc/heartbeat-1.0.4/ha.cf /etc/ha.d

cp /usr/share/doc/heartbeat-1.0.4/authkeys /etc/ha.d

cp /usr/share/doc/heartbeat-1.0.4/haresources /etc/ha.d

ha.cf是heartbeat的主要配置文件;

authkeys是heartbeat的安全配置文件;

haresource文件是heartbeat的资源文件

各文件内容及说明如下:

1、ha.cf

# File to write debug messages to (heartbeat的debug信息记录文件)

debugfile /var/log/ha-debug

# File to write other messages to(日志文件)

logfile /var/log/ha-log

# Facility to use for syslog()/logger(记录日志在syslog中(可选项))

logfacility local0

# keepalive: how long between heartbeats?(每3s发送一次keepalive消息)

keepalive 3

# deadtime: how long-to-declare-host-dead?(如果15秒没有收到keeplive消息将会认为节点已经失效)

deadtime 15

# warntime: how long before issuing "late heartbeat" warning?

#在日志中记录最后心跳last heartbeat-best 前的警告时间

warntime 10

#节点重启后,留给启动资源的时间

initdead 60

#如果主节点失效重新恢复后,再次成为主节点,而不等当前主节点失效,设置为on时正相反

nice_failback off

#组播或广播通信的UDP端口

udpport 694

# What interfaces to broadcast heartbeats over?

#使用eth1广播心跳

bcast eth1 # Linux

#使用组播IP225.0.0.22,端口694发送keeplive消息

mcast eth1 225.0.0.22 694 1 0

#如果一分钟过去都没有心跳,机器将重启

watchdog /dev/watchdog

#设定主从节点(前者为主节点,它们必须是节点的主机名,可能涉及/etc/hosts文件,以找到主机名--IP地址对儿)

node youzi

node sea

2、authkeys

auth 3 #指定加密方法(的行号)(应该类似于标号,而不是真正的行号,需要验证一下)

#1 crc

#2 sha1 HI!

3 md5 Hello! #使用md5加密,密码是Hello!

chmod 600 /etc/ha.d/authkeys(增加安全性,使root只读)不进行此步骤,heartbeat会启动失败

3、haresource

youzi 192.168.1.254/24/eth0/192.168.1.255 httpd #定义主节点使用的公网IP(即集群对外地址)、掩码、接口名称、广播地址和随主结点heartbeat服务启动的服务

具体情况具体分析,两节点的heartbeat配置(ha.cf、authkeys、haresources)必须一样,才能启动heartbeat服务

四、同步系统时间

六、启动heartbeat:

/etc/rc.d/init.d/heartbeat start [stop|restart]或service命令

七、测试

八、注意

heartbeat在haresource设置拥有的资源开机时不能由系统自己启动,因为heartbeat会按资源文件探测自己是否所有资源。

主机和备机要进行较时

两台机器都要关闭防火请,否则会阻止信息,或者开放694端口

ip route add default via 209.100.100.254 src 209.100.100.3 dev eth0

/etc/hosts必须配置

基于heartbeat的高可用网络安装环境配置

1服务器配置

1.1DHCP服务器配置

1.1.1dhcp服务负责给从网络启动的pxe客户端分配IP地址,从而使得客户机在安装过程中用IP地址与安装(源)服务器进行通信。

1.1.2配置文件[1]

1.1.3注意事项

1.1.3.1网络中要保证一个机器开启dhcp服务,且其他机器不能开启PXE服务;

1.1.3.2 配置文件中filename "pxelinux.0"的位置如果放在host 之内则只对一台客户机生效,如果放在host之外group之内则对一组客户机生效,放在group之外则在全局生效

1.2TFTP服务器配置

1.2.1 配置TFTP的目的是为了给客户端传送"pxelinux.0"这个文件,进而"pxelinux.0"在客户端负责从tftp服务器加载 vmliuz(内核映像文件)和initrd.img(根文件系统文件),在内存中构建了一个微型操作系统负责进一步与安装服务器通信。

1.2.2配置文件[1]

值得关注的是default文件中的几项:

timeout 3(单位是ms)//提示停留的时间

PROMPT 1//boot:提示,如果没有设置timeout则停在boot:处;如果timeout和PROMPT都没设置,则直接进入默认安装

APPEND ks=ftp://192.168.0.4/pub/rh9/ks.cfg initrd=initrd.img ramdisk_size=8192

// 指定kickstart配置文件的位置,此处为采用ftp服务的格式。nfs的格式为:APPEND ks=nfs:192.168.0.4:/mnt/nfs/rh9inst/ks.cfg initrd=initrd.img,但是nfs服务不能配合heartbeat使用;采用http服务的格式为:APPEND ks=http://192.168.0.4/rh9/ks.cfg initrd=initrd.img ramdisk_size=8192);其中ramdisk_size=8192,是在内存中虚拟磁盘的大小,用于内核执行以及文件系统的驻留。

1.2.4service xinetd start

1.2.5注意事项

1.2.5.1 default中指定的ftp或http都必须是相对路径,在本实例中实际的绝对路径分别是/var/ftp/anon和/var/www/html,均为系统默认; nfs目录是绝对路径。

1.2.5.2防火墙会影响tftp服务

关闭服务器上的防火墙service iptabeles stop或iptables -F或开放iptables -I INPUT -p udp --dport 69 -j ACCEPT端口则可正常提供tftp服务

1.3FTP或HTTP服务配置

1.3.1vsftp配置

1.3.1.1配置文件[2]

1.3.1.2service vsftpd start

1.3.2HTTP服务的配置(Apache)

1.3.2.1配置文件[3]

该配置文件较大,配置项较多,体现出apache功能的强大。对于采用http服务进行网络安装,默认的配置文件即可;配置文件中有一项是DocumentRoot "/var/www/html",我们的安装源就存放于此。

1.3.2.2service httpd start

1.4 HEARTBEAT服务配置

1.4.1配置文件、安全文件、资源文件[4]

应该注意的是在本实验中,资源文件中设置hearbeat监管的资源是dhcpd

1.5kickstart配置[1]

注意采用ftp或http服务进行安装时,用kickstart图形工具生成或手写的ks.cfg中,ftp或http的路径设置。本实验中为ftp://192.168.0.4/pub/rh9,如果是http则为http://192.168.0.4/pub/rh9

对于ftp

图形界面:192.168.0.4

pub/rh9

ks.cfg手写:url --url ftp://192.168.0.4/pub/rh9

对于http

图形界面:192.168.0.4

pub/rh9

ks.cfg:url --url http://192.168.0.4/pub/rh9

2安装源准备

在RedHat9上,对于安装时采用的几种服务有如下表格

安装协议 支持安装源格式 能否与heartbeat配合

nfs ISO、原始安装树 否

ftp 原始安装树、原始安装盘 能

http 原始安装树、原始安装盘 能

原始安装树的制作比较简单,对所有安装光盘的.iso执行

mount -o loop 映像文件.iso /mnt/cdrom

cp -arv /mnt/cdrom/* /var/ftp/pub/rh9

(会提示覆盖?)

或直接从光盘进行cp操作

3为一些服务设置开机自启动

命令ntsysv

4客户端设置

开启网络启动功能即可,一般默认不须进行任何设置,只要有足够的磁盘空间。

5参考文献及配置文档

[1]ks(kickstart网络无人值守安装)

[2]vsftp服务器配置与应用

[3]http服务器配置与应用

[4]heartbeat服务配置与应用

[5]http://www-128.ibm.com/developerworks/cn/linux/es-linux-pservers/

附录:服务涉及的目录结构

/etc/dhcpd.conf

/etc/ha.d/authkeys

/etc/ha.d/ha.cf

/etc/ha.d/haresources

/etc/httpd/conf/httpd.conf

/etc/httpd/conf.d/perl.conf

/etc/httpd/conf.d/php.conf

/etc/httpd/logs/access_log

/etc/httpd/logs/error_log

/var/www/html

/var/www/cgi-bin

/var/www/error

/var/www/icons

/var/www/mrtg

/etc/vsftpd/vsftpd.conf

/var/ftp/pub

/tftpboot/initrd.img

/tftpboot/pxelinux.0

/tftpboot/vmlinuz

/tftpboot/pxelinux.cfg/default

/tftpboot/pxelinux.cfg/list

DHCP服务器配置与应用

1、DHCP简介

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个简化主机IP地址分配管理的TCP/IP协议,使用DHCP,不仅可以大大减轻网络管理员管理和维护的负担,还可以解决IP地址不够用的问题。

2、DHCP服务的安装

用以下命令检查系统是否已经安装DHCP服务

rpm -q dhcp

如果没有安装,可从第2张安装光盘中获得

3、DHCP服务的配置

①编辑/etc/dhcpd.conf文件进行配置或者将/usr/share/doc/dhcp-3.0pl1/dhcpd.conf.sample复制为/etc/dhcpd.conf

配置文件的格式如下:

选项/参数; #全局

声明{

选项/参数; #局部

}

②一个例子,配置文件内容如下

ddns-update-style interim; #定义所支持的DNS动态更新类型(必选)

ignore client-updates; #忽略客户机更新DNS记录

subnet 192.168.0.0 netmask 255.255.255.0{ #定义作用域(IP子网)

range 192.168.0.11 192.168.0.200; #定义作用域(IP子网)范围

option routers 192.168.0.1; #为客户端指定网关

option subnet-mask 255.255.255.0; #为客户端指定子网掩码

option domain-name "dpgroup.net"; #为客户端指定DNS域名

option domain-name-servers 210.47.208.8; #为客户端指定DNS服务器的IP地址

option broadcast-address 192.168.0.255; #为客户端指定广播地址

default-lease-time 86400; #指定默认的租约期限

max-lease-time 172800; #指定最大租约期限

host node4{ #为某台客户机定义保留地址

hardware Ethernet 00:03:FF:25:5d:a3; #客户机的网卡物理地址

fixed-address 192.168.0.27; #分配给客户机的一个固定IP地址

}

}

4、启动和停止DHCP服务

①启动

/etc/init.d/dhcp start或service dhcpd start

②重新启动

/etc/init.d/dhcpd restart或service dhcpd restart

③停止

/etc/init.d/dhcpd stop或service dhcp stop

④开机自动启动

Ntsysv

找到"dhcpd"服务,在七千面打上"*","Ok"即可

5、客户端的配置

①Linux客户端

⑴vi /etc/sysconfig/network-scripts/ifcfg-eth0

将"BOOTPROTO"值设置成"dhcp"

⑵重启网卡

ifdown eth0

ifup eth0

ifconfig eth0 down

ifconfig eth0 up

或者干脆充启网络服务

service network restart

⑶查看该客户端是否已经配置好

ifconfig eth0

②Windwos客户端的配置

⑴右键单击"网上邻居"--〉"属性"--〉右击"本地连接"--〉"属性"--〉双击"Internet协议(TCP/IP)"--〉"自动获得IP地址"和"自动获得DNS服务器地址"--"确定"

⑵"开始"--〉"运行"--〉输入"cmd"--〉"ipconfig/all"查看设置情况

Web服务的配置与应用

本实验环境为Centos-4<=>RHELAS4,内核版本为2.6.9-34.EL,Apache的配置在Linux的各个发行版中差别不大

1, Apache服务器

Apache是应用最为广泛的web服务器,UNIX、Linux和Windows上都有其相应版本,功能十分强大,最为重要和可贵的是它是开放源代码的服务器。

2, 安装

Linux系统安装都会默认安装Apache,使用rpm -qa|grep http显示如下:

httpd-manual-2.0.52-22.ent.centos4

httpd-devel-2.0.52-22.ent.centos4

httpd-2.0.52-22.ent.centos4

system-config-httpd-1.3.1-1

httpd-suexec-2.0.52-22.ent.centos4

3, 配置文件及说明

3.1http配置文件

#######基本配置###############

DocumentRoot "/var/www/html" # Apache服务器主目录

Options Indexes FollowSymLinks ExecCGI#目录权限设置:允许目录浏览,可以使用符号链接,允许执行CGI脚本

AddHandler cgi-script .cgi .pl #表明已.cgi或.pl结尾的文件是CGI程序

DirectoryIndex index.html index.html.var #默认显示的网页

Listen 80 #默认监听80端口的客户请求

ServerRoot "/etc/httpd" #相对根目录,其下包括conf、conf.d、logs、modules、run目录;设置此项则可减少以此项为前缀的目录的书写,如以下 Errorlog logs/err_log等价于Errorlog /etc/httpd/logs/error_log

Errorlog logs/error_log #错误日志的记录位置

CustomLog logs/access_log combined #访问日志存放位置,combined指定日志格式

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

LogFormat "%h %l %u %t \"%r\" %>s %b" common

ServerAdmin [email protected] #访问错误时页面显示的网络管理员的E-mail地址

ServerName 192.168.0.150:80 #服务器主机名称

AddDefaultCharset ISO-8859-1 #设置默认字符集

Include conf.d/*.conf #将/etc/httpd/conf.d/下所有配置文件包含到httpd.conf中

#########虚拟目录##########

Alias /icons/ "/var/www/icons"#默认存在的虚拟目录,图标的存放位置" /var/www/icons"

Options Indexes MultiViews #目录特性,Indexes为允许目录浏览,MultiViews为允许内容协商

AllowOverride None #禁止使用.htaccess

Order allow,deny #设置访问权限与Allow和Deny语句的处理顺序

Allow from all #允许所有客户机的访问

Alias /youzi "/mnt/helix" #自定义虚拟目录

AuthType Basic #用户认证类型

AuthName "This is youyuanyin's private directory:welcome:" #认证时对话框的内容

AuthUserFile /etc/httpd/password #口令文件路径,命令htpasswd -c /etc/httpd/password you,为"you"这个用户建立口令

Require you yuan yin #允许的用户(名)

#############虚拟主机##############

ServerName 192.168.0.150:80

ServerAdmin [email protected]

DocumentRoot "/var/www/html1"

DirectoryIndex index.html

ErrorLog logs/html1/error_log

CustomLog logs/html1/access_log combined

ServerName 192.168.0.190:80

ServerAdmin [email protected]

DocumentRoot "/var/www/html2"

DirectoryIndex index.html

ErrorLog logs/html2/error_log

CustomLog logs/html2/access_log combined

3.2php配置文件php.conf

LoadModule php4_modules/libphp4.so #加载php4的动态链接库

AddType application/x-httpd-php .php .php3 #告诉服务器以.php结尾的或.php3结尾的程序是php程序

DirectoryIndex index.php #默认的php文件

4, tomcat

4.1安装J2DK(支持tomcat解析JSP)

chmod +x jdk-1_5_0_05-linux-i586-rpm.bin

./jdk-1_5_0_05-linux-i586-rpm.bin

ln -s /usr/java/jdk1.5.0_05/usr/jdk

4.2安装tomcat

tar xzvf Jakarta-tomcat-5.5.9.tar.gz -C /usr/local/

ln -s /usr/local/Jakarta-tomcat-5.5.9/ /usr/local/tomcat

4.3tomcat的启动和停止

在/usr/local/tomcat/bin/startup.sh和/usr/local/tomcat/bin/shutdown.sh中的"#-----------------"后加入

export JAVA_HOME=/usr/jdk

export PATH=$PATH:$JAVA_HOME/bin

export CLASSPATH=$JAVA_HOME/lib

从而设置系统的环境变量

/usr/local/tomcat/bin/startup.sh

5,注意:

虚拟主机和原始主机名冲突问题

welcome.conf文件屏蔽Indexes文件设置

一个VSFTP配置

1、vsftp(Very Secure FTP Daemon,非常安全的FTP服务器)

2、配置文件/etc/vsftpd/vsftpd.conf

在修改vsftp.conf之前最好备份一下

仅用默认的配置文件,可保证匿名用户下载

下面是一个配置文件的内容:

###############################################################################

anonymous_enable=YES#允许匿名(用户)登录

local_enable=YES#允许本地用户登录FTP,可以设置"VIP"用户,有自己的使用区域--文件夹,区别于普通的匿名用户

write_enable=YES#允许写(允许任何格式的ftp写命令)

local_umask=022#本地用户掩码

anon_upload_enable=YES#允许匿名(用户)上传

anon_mkdir_write_enable=YES#允许匿名用户建立文件夹

dirmessage_enable=YES#切换目录时,显示目录下的.message的内容,这样可进行个性化提示

xferlog_enable=YES#对用户的上传/下载进行写日志

connect_from_port_20=YES#从20端口进行ftp-data传输*

xferlog_file=/var/log/vsftpd.log#指定日志文件

xferlog_std_format=YES#使用标准的ftp日志文件格式

idle_session_timeout=600#指定一个空闲的会话连接超时时间(s).

data_connection_timeout=120#数据传输超时

#允许ASCII模式上传下载,这种方式消耗I/O资源

ascii_upload_enable=YES

ascii_download_enable=YES

ftpd_banner=Welcome to youyuanyin's FTP service.#ftp服务器登录问候语

pam_service_name=vsftpd#验证方式(/etc/pam.d/vsftpd)*

listen=yes#独立的VSFTPD服务器*

###############################################################################

3、另外:ftp服务本地文件夹/var/ftp/pub也要修改权限

chmod -R 777 pub,开启完全权限

4、ftp和anonymous都代表匿名用户

DNS服务的配置与应用

1、主要名称服务器的配置

一、DNS(Domain Name System,域名系统)

DNS服务器的DNS数据库记录着主机名(域名)和IP地址的对应关系,为客户端主机提供域名解析服务。

二、所需软件

1、Bind(Berkeley Internet Name Domain Service)

2、chroot

三、配置文件

1、named.conf

Bind主配置文件,包含Bind的基本配置和用户定义的一些区域

注意:配置文件语句必须以分号结尾

options {

directory "/var/named"; //named读写文件路径

dump-file "/var/named/data/cache_dump.db";//服务器存放数据的路径

statistics-file "/var/named/data/named_stats.txt";//服务器统计信息文件的路径

version "4.9.11";//指定假版本,迷惑黑客

};

controls {

inet 127.0.0.1 allow { localhost; } keys { rndckey; };

};

//根区域

zone "." IN {

type hint;//服务器启动时能找到根DNS服务器并得到DNS服务器的最新列表

file "named.ca";//根服务器列表文件

};

//主区域

zone "youyuanyin.org" {//主区域的名称

type master;//类型为主区域

file "youyuanyin.org.zone";//主区域文件名

allow-transfer { none; };

};

zone "0.168.192.in-addr.arpa" {

type master;

file "192.168.0.arpa";

allow-transfer { none; };

};

include "/etc/rndc.key";

四、区域文件

1、区域文件

保存着某个区域的数据信息

$ttl 38400//允许客户缓存来自查询的数据的默认时间

// 设置起始授权机构SOA资源记录:youyuanyin.org.定义了当前SOA所管辖的域名,可以用@代替;IN表示Internet类(格式固定不 可变);dns.youyuanyin.org定义了负责该区域的名称解析的主机名,同时该主机名在区域文件中必须有一个A资源记 录;admin.youyuanyin.org定义了负责该区域的网络管理员E-mail地址(估计:存在邮件服务器时好用)

youyuanyin.org. IN SOA dns.youyuanyin.org. admin.youyuanyin.org. (

//序列号:通常格式是年月日+修改次数,当然也可从0等开始计数,标示该区域的数据是否有更新,当辅助名称服务器需要与主要名称服务器进行区域复制(即同步辅助名称服务器的DNS数据)时,会比较这个数。所以每次修改完主区域文件后都应该增加序列号的值

2007103019

//更新间隔:辅助名称服务器隔多久与主要名称服务器进行一次区域复制

10800

重试间隔:辅助名称服务器在更新间隔到期后,仍然无法语主要名称服务器取得联系时,重试区域复制的间隔。通常该间隔应小于更新间隔

3600

//过期时间:辅助名称服务器在该时间内一直不能与主要名称服务器取得联系时,则放弃重试并丢弃这个区域的数据(因为这些数据有可能会失效或错误)

604800

//设置最小TTL值:允许辅助名称服务器缓存查询数据的默认时间,如果文件开头没有$ttl选项,则以此值为准

36000 )

//名称服务器NS资源记录:定义了该域名由哪个DNS服务器负责解析,NS资源记录定义的服务器成为区域权威名称服务器

youyuanyin.org. IN NS dns.youyuanyin.org.

//设置主机地址A资源记录

dns IN A 192.168.0.189//这里dns使用的是相对名称

//直接解析域名

youyuanyin.org. IN A 192.168.0.189//youyuanyini.org.可用@代替

//范域名解析

*.youyuanyin.org. IN A 192.168.0.4//或直接用*代替*.youyuanyin.org.

www.youyuanyin.org. IN A 192.168.0.189

mail1.youyuanyin.org. IN A 192.168.0.189

mail2.youyuanyin.org. IN A 192.168.0.189

mail3.youyuanyin.org. IN A 192.168.0.189

//以下三条实现负载均衡(使用ping测试,会发现IP地址的变化)

ftp IN A 192.168.0.10

ftp IN A 192.168.0.11

ftp IN A 192.168.0.12

//设置别名CNAME资源记录:将多个名称映射到一台机器上(可理解为此台机器可能多功能为一身)

rhel4 IN CNAME dns//dns的别名rhel4

bbs IN CNAME www//bbs与samba是www的别名

samba IN CNAME www

//设置邮件交换器MX资源记录:MX资源记录指向一个邮件服务器,用于电子邮件系统发邮件时根据收信人邮件地址后缀来定位邮件服务器。

youyuanyin.org. IN MX 10 mail1.youyuanyin.org.

youyuanyin.org. IN MX 11 mail2.youyuanyin.org.

youyuanyin.org. IN MX 12 mail3.youyuanyin.org.

2、反向解析区域文件

用于反向查找IP的对应域名

$ttl 36000

0.168.192.in-addr.arpa. IN SOA dns.youyuanyin.org. admin.youyuanyin.org. (

2007103019

10800

3600

604800

36000 )

0.168.192.in-addr.arpa. IN NS dns.youyuanyin.org.

//PTR资源记录只能在反向解析区域文件中出现,和A资源记录正好相反,将IP解析为域名

189.0.168.192.in-addr.arpa. IN PTR dns.youyuanyin.org.

4 IN PTR mail.youyuanyin.org.

五、配置名称服务器

1、主要名称服务器

用于存放区域文件中设定的数据

2、辅助名称服务器

从其它服务器获得数据提供服务

3、缓存Cache-only服务器

转发查询到其它服务器

六、提供DNS服务

1、启动

service named start

2、停止

service named stop

3、重启

service named restart

再修改配置文件以及区域文件时都需要重启DNS服务才能读取(生效)

4、开机自启动

ntsysv

5、防火墙设置(两种选择)

⑴关闭防火墙

service iptables stop或iptables –F

这样做存在严重的安全问题

⑵开放端口

DNS服务通常使用UDP端口53(数据传输量<=512K)和TCP端口53(数据传输量>512K),

iptables –I INPUT –p udp –dport 53 –j ACCEPT

iptables –I INPUT –p tcp –dport 53 –j ACCEPT

注:可以设置防火墙,使得只允许大批量数据或只允许小数据传输

七、测试

1、 nslookup

nslookup www.youzi.org

2、 dig

3、 host

4、rndc工具

八、DNS客户端配置

1、Linux客户端

vi /etc/resolv.conf

#####################

nameserver 192.168.0.150

nameserver 210.47.208.8

#####################

可以指定多达3台服务器,多于三台则只有前三个有效。客户端按照顺序进行查询

九、注意

(1) 本实验是在CentOS4上进行的,如在RedHat9.0上会有差别。/var/named/目录下的文件均为/var/named/chroot /var/nmed/下的实际文件的链接文件。实际的区域文件均存放在/var/named/chroot/var/nmed/下。所以建立文件时先在 /var/named/chroot/var/nmed/下创建实际文件,之后在/var/named/下建立其链接

(2)注意主机与外网的连通,否则影响Internet域名解析

(3)区域文件中最容易遗漏域名后的“.”,这将影响正向解析或反解析

(4)区域文件修改后也要重启DNS服务

十、全国附录ADNS服务器地址列表

省份/城市

DNS服务器域名

DNS服务器IP地址

澳门

vassun2.macau.ctm.net

202.175.3.8

澳门

dns.macau.ctm.net

202.175.3.3

北京

ns.bta.net.cn

202.96.0.113

北京

ns.spt.net.cn

202.96.199.133

北京

nc.cn.net

202.97.16.195

北京

ns4.bta.net.cn

202.106.0.20

成都

ns.sccdptt.net.cn

202.98.96.68

重庆

ns1.ns.cq.cn

61.186.251.3

重庆

ns2.ns.cq.cn

61.186.252.146

福建

dns.fz.fj.cn

202.101.98.55

广东

ns.guangzhou.gd.cn

202.96.128.143

广东

dns.guangzhou.gd.cn

202.96.128.68

广东

tempdns2.guangzhou.gd.cn

61.144.56.101

广西

ns.nn.gx.cn

202.103.224.70

广西

ns1.nn.gx.cn

202.103.224.68

河北

ns.hesjptt.net.cn

202.99.160.68

河南

ns1.hazzptt.net.cn

202.102.224.68

河南

ns2.hazzptt.net.cn

202.102.224.74

湖南

ns.hncsptt.net.cn

202.103.96.68

湖南

ns2.hncsptt.net.cn

202.103.96.112

吉林

ns.jlccptt.net.cn

202.98.0.68

江苏

pub.jsinfo.net

202.102.29.3

江苏

ns.jsinfo.net

221.228.255.2

江西

ns.jxncptt.net.cn

202.101.224.68

辽宁

ns.dcb.in.cn

202.96.75.68

山东

dns-jn.sd.cninfo.net

202.102.152.3

山西

ns.sxyzptt.net.cn

202.99.198.6

陕西

ns.snnic.com

202.100.13.11

上海

ns.sta.net.cn

202.96.199.133

深圳

ns.shenzhen.gd.cn

202.96.134.133

四川

ns.sc.cninfo.net

61.139.2.69

台湾

dns.seed.net.tw

139.175.55.244

天津

ns.tpt.net.cn

202.99.96.68

天津

dns1.ctnt.com.cn

219.150.32.132

天津

dns2.ctnt.com.cn

219.146.0.130

武汉

ns.wuhan.net.cn

202.103.24.68

武汉

ns1.hbwhptt.net.cn

202.103.0.117

西安

ns.online.xa.sn.cn

202.100.4.15

香港

ns1.netvigator.com

205.252.144.228

新疆

dns.xj.cninfo.net

61.128.97.73

云南

ns.ynkmptt.net.cn

202.98.160.68

浙江

dns.zj.cninfo.net

202.96.102.3

浙江

ns.zjhzptt.net.cn

202.96.96.68

附录B主要名称服务器的配置文件及区域文件实例

/etc/named.conf

options {

directory "/var/named"; #named读写文件的默认路径

};

controls {

inet 127.0.0.1 allow { localhost; } keys { rndckey; };

};

zone "." IN {#根区域

type hint; #从根服务器得到DNS服务器最新列表

file "named.ca"; #根服务器列表文件

};

zone "localdomain" IN {

type master;

file "localdomain.zone";

allow-update { none; };

};

zone "localhost" IN {

type master;

file "localhost.zone";

allow-update { none; };

};

zone "0.0.127.in-addr.arpa" IN {

type master;

file "named.local";

allow-update { none; };

};

zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {

type master;

file "named.ip6.local";

allow-update { none; };

};

zone "255.in-addr.arpa" IN {

type master;

file "named.broadcast";

allow-update { none; };

};

zone "0.in-addr.arpa" IN {

type master;

file "named.zero";

allow-update { none; };

};

zone "youzi.org" IN {#主区域

type master;#区域类型为master

file "youzi.org.zone";

};

/*zone "yuan.org" IN {

type master;

file "yuan.org.zone";

};

*/

include "/etc/rndc.key"; #包含共享密钥文件

/var/named/youzi.org.zone

$ttl 86400

yuan.org. IN SOA you140.yuan.org. admin.yuan.org. (

2005090503

28800

7200

604800

36000

)

yuan.org. IN NS you140.yuan.org.

you140 IN A 192.168.0.150

www.yuan.org. IN A 192.168.0.150

cn.yuan.org. IN A 192.168.0.150

www.youzi.org. IN A 192.168.0.150

mail.youzi.org. IN A 192.168.0.130

ftp.youzi.org. IN A 192.168.0.150

附录C名词

DNS(Domain Name System,域名系统)

SOA(Start of Authority,起始授权机构)

chroot(Change Root)

IN(Internet)

FQDN(Fully Qualified Domain Name,全规范域名)

CNAME(Canonical Name,规范名字)

MX(Mail eXchanger)邮件交换器

InterNIC(国际互联网络信息中心)

NS(Name Server,名称服务器)

你可能感兴趣的:(linux)