以CentOS7为例,TFTP服务及PXE(预启动执行环境)

TFTP服务

TFTP:Trivial File Transfer Protocol ,是一种用于传输文件的简单高级协议,是文件传输协议(FTP)的简化版本。用来传输比文件传输协议(FTP)更易于使用但功能较少的文件

FTP和TFTP的区别

1、安全性区别
	FTP支持登录安全,具有适当的身份验证和加密协议,在建立连接期间需要与FTP身份验证通信
	TFTP是一种开放协议,缺乏安全性,没有加密机制,与TFTP通信时不需要认证
2、传输层协议的区别
	FTP使用TCP作为传输层协议,TFTP使用UDP作为传输层协议
3、使用端口的区别
	FTP使用2个端口:TCP端口21,是个侦听端口;TCP端口20或更高		TCP端口1024以上用于源连接
	TFTP仅使用一个具有停止和等待模式的端口:端口69/udp
4、RFC的区别
	FTP是基于RFC 959文档,带有其他RFC涵盖安全措施;TFTP基于RFC 1350文档
5、执行命令的区别
	FTP有许多可以执行的命令(get,put,ls,dir,lcd)并且可以列出目录等
	TFTP只有5个指令可以执行(rrq,wrq,data,ack,error)

PXE介绍

PXE:

Preboot Excution Environment 预启动执行环境
Intel公司研发
基于Client/Server的网络模式,支持远程主机通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统
PXE可以引导和安装Windows,linux等多种操作系统

PXE工作原理

在这里插入图片描述
1.Client向PXE Server上的DHCP发送IP地址请求消息,DHCP检测Client是否合法(主要是检测Client的网卡MAC地址),如果合法则返回Client的IP地址,同时将启动文件pxelinux.0的位置信息一并传送给Client
2.Client向PXE Server上的TFTP发送获取pxelinux.0请求消息,TFTP接收到消息之后再向Client发送pxelinux.0大小信息,试探Client是否满意,当TFTP收到Client发回的同意大小信息之后,正式向Client发送pxelinux.0
3.Client执行接收到的pxelinux.0文件
4.Client向TFTP Server发送针对本机的配置信息文件(在TFTP 服务的pxelinux.cfg目录下),TFTP将配置文件发回Client,继而Client根据配置文件执行后续操作。
5.Client向TFTP发送Linux内核请求信息,TFTP接收到消息之后将内核文件发送给Client
6.Client向TFTP发送根文件请求信息,TFTP接收到消息之后返回Linux根文件系统
7.Client启动Linux内核
8.Client下载安装源文件,读取自动化安装脚本

PXE自动化安装CentOS 7

  1. 安装前准备:关闭防火墙和SELINUX,DHCP服务器静态IP
  2. 安装软件包
    httpd tftp-server dhcp syslinux system-config-kickstart
  3. 配置文件共享服务:
    systemctl enable httpd
    systemctl start httpd
    mkdir /var/www/html/centos/7
    mount /dev/sr0 /var/www/html/centos/7
  4. 准备kickstart文件
    /var/www/html/ks/centos7.cfg 注意:权限
  5. 配置tftp服务
    systemctl enable tftp.socket
    systemctl start tftp.socket
  6. 配置DHCP服务
    vim /etc/dhcp/dhcpd.conf
     option domain-name "example.com";
     default-lease-time 600;
     max-lease-time 7200;
     subnet 192.168.100.0 netmask 255.255.255.0 {
     range 192.168.100.1 192.168.100.200;
     filename "pxelinux.0";
     next-server 192.168.100.100;
     }
    
    systemctl enable dhcpd
    systemctl start dhcpd

7. 准备相关文件

 mkdir /var/lib/tftpboot/pxelinux.cfg/
 cp /usr/share/syslinux/{pxelinux.0,menu.c32} 		/var/lib/tftpboot/
 cp /misc/cd/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/
 cp /misc/cd/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
文件列表如下:
/var/lib/tftpboot/
├── initrd.img
├── menu.c32
├── pxelinux.0
├── pxelinux.cfg
│ └── default
└── vmlinuz

目前CentOS8.0需多copy文件,有依赖文件。区别如下(如图):
在这里插入图片描述
8. 准备启动菜单
Vim /var/lib/tftpboot/pxelinux.cfg/default
default menu.c32
timeout 600
menu title PXE INSTALL MENU
label auto
menu label Auto Install CentOS 7
kernel vmlinuz
append initrd=initrd.img ks=http://192.168.100.100/ks/centos7.cfg
label manual
menu label Manual Install CentOS 7
kernel vmlinuz
append initrd=initrd.img inst.repo=http://192.168.100.100/centos/7
label local
menu default
menu label ^Boot from local drive
localboot 0xffff

发布了39 篇原创文章 · 获赞 2 · 访问量 1049

猜你喜欢

转载自blog.csdn.net/weixin_45341507/article/details/103047233