redhat网络安装系统 之一

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介: 1、原理部分 许多管理人员在网络管理中,非常头疼的问题就是为用户进行安装操作系统。许多企业的客户端配置基本上很少有带cd-rom,也不可能所有客户端都有操作系统安装光盘。

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
相关文章
|
1月前
|
机器学习/深度学习 数据采集 人工智能
未来的守护神:AI驱动的网络安全之盾,如何用智慧的光芒驱散网络黑暗势力?揭秘高科技防御系统背后的惊天秘密!
【10月更文挑战第3天】随着网络技术的发展,网络安全问题日益严峻,传统防御手段已显不足。本文探讨了构建AI驱动的自适应网络安全防御系统的必要性及其关键环节:数据采集、行为分析、威胁识别、响应决策和执行。通过Python库(如scapy、scikit-learn和TensorFlow)的应用实例,展示了如何利用AI技术提升网络安全防护水平。这种系统能够实时监控、智能分析并自动化响应,显著提高防护效率与准确性,为数字世界提供更强大的安全保障。
57 2
|
10天前
|
监控 安全 测试技术
网络信息系统的整个生命周期
网络信息系统规划、设计、集成与实现、运行维护及废弃各阶段介绍。从企业需求出发,经过可行性研究和技术评估,详细设计系统架构,完成设备安装调试和系统集成测试,确保稳定运行,最终安全退役。
23 1
网络信息系统的整个生命周期
|
10天前
|
机器学习/深度学习 存储 运维
图神经网络在复杂系统中的应用
图神经网络(Graph Neural Networks, GNNs)是一类专门处理图结构数据的深度学习模型,近年来在复杂系统的研究和应用中展现了强大的潜力。复杂系统通常涉及多个相互关联的组件,其行为和特性难以通过传统方法进行建模和分析。
34 3
|
10天前
|
编解码 安全 Linux
网络空间安全之一个WH的超前沿全栈技术深入学习之路(10-2):保姆级别教会你如何搭建白帽黑客渗透测试系统环境Kali——Liinux-Debian:就怕你学成黑客啦!)作者——LJS
保姆级别教会你如何搭建白帽黑客渗透测试系统环境Kali以及常见的报错及对应解决方案、常用Kali功能简便化以及详解如何具体实现
|
12天前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
35 2
|
13天前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
24 3
|
2月前
|
机器学习/深度学习 人工智能 算法
植物病害识别系统Python+卷积神经网络算法+图像识别+人工智能项目+深度学习项目+计算机课设项目+Django网页界面
植物病害识别系统。本系统使用Python作为主要编程语言,通过收集水稻常见的四种叶片病害图片('细菌性叶枯病', '稻瘟病', '褐斑病', '稻瘟条纹病毒病')作为后面模型训练用到的数据集。然后使用TensorFlow搭建卷积神经网络算法模型,并进行多轮迭代训练,最后得到一个识别精度较高的算法模型,然后将其保存为h5格式的本地模型文件。再使用Django搭建Web网页平台操作界面,实现用户上传一张测试图片识别其名称。
116 22
植物病害识别系统Python+卷积神经网络算法+图像识别+人工智能项目+深度学习项目+计算机课设项目+Django网页界面
|
2月前
|
机器学习/深度学习 算法 TensorFlow
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
交通标志识别系统。本系统使用Python作为主要编程语言,在交通标志图像识别功能实现中,基于TensorFlow搭建卷积神经网络算法模型,通过对收集到的58种常见的交通标志图像作为数据集,进行迭代训练最后得到一个识别精度较高的模型文件,然后保存为本地的h5格式文件。再使用Django开发Web网页端操作界面,实现用户上传一张交通标志图片,识别其名称。
96 6
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
|
2月前
|
机器学习/深度学习 人工智能 算法
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
文本分类识别系统。本系统使用Python作为主要开发语言,首先收集了10种中文文本数据集("体育类", "财经类", "房产类", "家居类", "教育类", "科技类", "时尚类", "时政类", "游戏类", "娱乐类"),然后基于TensorFlow搭建CNN卷积神经网络算法模型。通过对数据集进行多轮迭代训练,最后得到一个识别精度较高的模型,并保存为本地的h5格式。然后使用Django开发Web网页端操作界面,实现用户上传一段文本识别其所属的类别。
87 1
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
|
1月前
|
域名解析 缓存 网络协议
【网络】DNS,域名解析系统
【网络】DNS,域名解析系统
85 1

热门文章

最新文章