linux批量安装系统后改ip,批量安装Linux操作系统之PXE

本文详细介绍了DHCP协议的工作流程,包括客户端请求、服务器响应以及IP分配策略。同时,讲解了Linux环境下DHCP服务的实现程序和配置文件路径。此外,还阐述了PXE预启动执行环境的概念,如何通过PXE网络启动Linux系统,以及PXE所需的服务如DHCP、TFTP和HTTP。最后,提供了通过PXE服务器安装Linux的步骤,包括环境准备、配置文件修改和系统镜像复制等。
摘要由CSDN通过智能技术生成

DHCP协议的工作方式:

客户端:

客户端广播查找DHCP服务器的UDP数据包,数据包的目标IP是255.255.255.255

服务器端:

服务器端在收到客户端广播的数据包后,会根据客户端的MAC地址与服务端的配置来进行操作:

1.查询服务端日志文件,如客户端之前使用过某IP,且该IP空闲,则提供该IP予客户端。

2.查询服务端配置文件,如配置文件对客户端MAC有提供特定的固定IP,则将该固定IP给予客户端。

3.如不符合上述俩项条件,则随机选取空闲的IP给予客户端,并记录

4.客户端选择接受DHCP服务器提供的网络参数,并发送一个广播数据包告知已经接受DHCP服务器的网络参数

5.服务器端向客户端回送确认的响应数据包,并告知客户端网络参数租约期限,开始租约计时间

客户端租约到期节约的俩种情况:

客户端脱机

关闭网络接口

重新启动

关机

客户端租约到期

DHCP服务器给予客户端的IP参数主要由俩种:

固定(Static)IP

动态(Dynamic)IP

Linux DHCP协议的实现程序:dhcp, dnsmasq

DHCP服务端的配置

主配置文件:

/etc/dhcp/dhcpd.conf (Centos6.x 配置文件位置,Centos5.x配置文件位于/etc/dhcpd.conf)

/usr/sbin/dhcpd

/etc/dhcp/dhcpd.conf --> /etc/rc.d/init.d/dhcpd (IPV4 配置文件)

/etc/dhcp/dhcpd6.conf --> /etc/rc.d/init.d/dhcpd6 (IPV6 配置文件)

/usr/sbin/dhcrelay

/etc/rc.d/init.d/dhcrelay dhcpvim中继器

dchpd和dhcrelay俩个进程同时只能启动一个

dhcp服务监听在udp的67号端口

dhclient: 68/udp

dhcpd.conf 范例文件:/usr/share/doc/dhcp*/dhcpd.conf.example

主配置文件/etc/dhcp/dhcpd.conf或/etc/dhcpd.conf 的语法

除了右括号")"后面之外,其他每一行配置最后都要以";"作为结尾。

某些配置项目必须以option来定义,基本形式为"option "

如需分配固定IP的化,需要知道设置成固定IP的那台计算机的MAC地址

全局设置:

allow booting;允许DHCP服务器给没有安装操作系统的服务器分配IP地址

default-lease-time xxx #默认租约时间

max-lease-time xxx #最大租约时间

option routers 默认网关的IP地址 #为客户端指定默认网关的的IP地址

option domain-name-servers xxx #为客户端指定DNS地址

IP分配设置:

subnet 网络地址 netmask 子网掩码 { 设定DHCP待分配地址的区域,subnet和netmask为是关键词

range IP1 IP2 ; #指定一个连续的IP地址段

host 主机名 { 指定固定IP对应到固定MAC的设置值

hardware etherent MAC地址;

fixed-address IP地址;

}

}

对于option 定义的某配置,如果同时存在于全局配置和IP分配设置中,则作用范围越小的配置越先生效。

其它配置选项:

filename: 指明引导文件名称;

next-server:提供引导文件的服务器IP地址;

范例;

filename "pxelinux.0";

next-server 172.16.100.67;

TFTP:

tftp:简单文件传输协议

监听在udp的69号端口

受xinetd服务管理

安装:

服务端 yum install tftp-server

客户端 yum install tftp

配置文件:

/etc/xinetd.d/tftp

文件访问根目录:

/var/lib/tftpboot

tftp受xinetd管理,配置文件是/etc/xinetd.d/tftp

配置文件内容如下:

service tftp

{

socket_type = dgram

protocol = udp

wait = yes

user = root

server = /usr/sbin/in.tftpd

server_args = -s /var/lib/tftpboot

disable = no #此项值要改为no 启动tftp

per_source = 11

cps = 100 2

flags = IPv4

}

~

修改后重启xinetd服务:

systemctl restart xinetd

PXE:预启动执行环境

工作于C/S的网络模式

Client通过网络从Server下载映像,并通过网络启动操作系统

PXE 依赖于dhcp,tftp,文件服务

PXE(Pre-boot Execution Environment)是由Intel设计的协议,它可以使计算机通过网络启动。协议分为client和server两端,PXE client在网卡的ROM中,当计算机引导时,BIOS把PXE client调入内存执行,并显示出命令菜单,经用户选择后,PXE client将放置在远端的操作系统通过网络下载到本地运行。

PXE协议的成功运行需要解决以下两个问题:

既然是通过网络传输,那么计算机在启动时,它的IP地址由谁来配置;

通过什么协议下载Linux内核和根文件系统

对于第一个问题,可以通过DHCP Server解决,由DHCP server来给PXE client分配一个IP地址,DHCP Server是用来给DHCP Client动态分配IP地址的协议,不过由于这里是给PXE Client分配IP地址,所以在配置DHCP Server时,需要增加相应的PXE特有配置。

至于第二个问题,在PXE client所在的ROM中,已经存在了TFTP Client。PXE Client使用TFTP Client,通过TFTP协议到TFTP Server上下载所需的文件。

PXE client在工作过程中,需要三个二进制文件:bootstrap、Linux 内核和Linux根文件系统。Bootstrap文件是可执行程序,它向用户提供简单的控制界面,并根据用户的选择,下载合适的Linux内核以及Linux根文件系统。

syslinux :提供网络引导文件,启动加载器

通过PXE安装Linux:(使用PXE服务器安装时,默认生成的配置文件的安装文件情况下)

环境准备:

yum install dhcp tftp-server xinetd -y

yum install syslinux -y

yum install httpd -y

将当前系统(PXE服务器)root用户家目录下的anaconda-ks.cfg文件复制到httpd的根目录中,并重命名为ks.cfg

cp anaconda-ks.cfg /var/www/html/

更改ks.cfg文件的属主属组:

chown apache:apache ks.cfg

将系统镜像下的所有文件复制到/var/www/html目录下:

修改ks.cfg文件,将cdrom 这行内容改为url -url=http://192.168.1.22/

cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot

将系统镜像中images/pxeboot目录下的vmlinuz,initrd.img 复制到tftp根目录中

cp vmlinuz initrd.img /var/lib/tftpboot/

将系统镜像中isolinux目录下的boot.msg,vesamenu.c32,splash.png复制到tftp根目录中

cp boot.msg vesamenu.c32 splash.png /var/lib/tftpboot/

在tftp根目录中创建pxelinux.cfg目录

mkdir /var/lib/tftpboot/pxelinux.cfg

将系统镜像中isolinux目录下的isolinux.cfg文件复制到tftp根目录下pxelinux.cfg目录中,并重命名为default

cp isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

修改/var/lib/tftpboot/pxelinux.cfg/default文件,将default vesamenu.c32这行注释,并添加default linux 这行内容

(default linux 表示默认安装 label linux 指定的系统)

找到如下内容:

label linux

menu label ^Install CentOS 7

kernel vmlinuz

append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quiet

将append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quiet这行注释,添加以下内容:

append initrd=initrd.img ks=http://192.168.1.22/ks.cfg

pxelinux.0 :引导文件

vmlinuz: 内核

initrd.img :

boot.msg :开机画面文件()

配置dhcp服务:

范例如下:

allow booting;

allow bootp

option domain-name-servers 192.168.1.1;

default-lease-time 3600;

max-lease-time 7200;

log-facility local7;

subnet 192.168.1.0 netmask 255.255.255.0 {

range 192.168.1.100 192.168.1.199 ;

option routers 192.168.1.108 ;

filename "pxelinux.0";

next-server 192.168.1.22; #PXE服务器地址

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值