DNSmasq – 配置PXE

PXE(Preboot eXecution Environment)预启动执行环境提供了一种使用网络接口(Network Interface)启动计算机的引导方式。这种机制让计算机的启动可以不依赖本地数据存储设备(如硬盘)或本地已安装的操作系统。PXE server服务通过dhcp和tftp两个服务提供—DHCP Server来取得IP位址,通过TFTP来获得kernel image等文件。而PXE client通过PXE protocol和NBP(network bootstrap program)来完成通过网络的引导。

下面是使用PXE引导的流程(这部分内容来自linux下网路启动服务器安装和配置方法(pxe+tftp+dhcpd))
pxe-serv
下面是使用PXE引导的流程(这部分内容来自linux下网路启动服务器安装和配置方法(pxe+tftp+dhcpd))
上图启动流程说明如下:
a). PXE Client 向 UDP 67端口 广播 DHCPDDISCOVER 消息.
b). DHCP SERVER 或者 DHCP Proxy 收到广播消息后,发送DHCPOFFER(包含ip地址)消息 到 PXE Client的 68 端口.
c).PXE Client 发送 DHCPREQUEST 消息到 DHCP SERVER ,获取启动文件(boot file name).
d).DHCP SERVER 发送DHCPACK(包含Network Bootstrap Program file name)消息 到PXE Client.
e).PXE Client 向 Boot Server 获取 NBP(Network Bootstrap Program) 文件.
f).PXE Client 从TFTP SERVER 下载 NBP,然后在客户端执行NBP文件
注意: 在NBP执行初始化后,NBP会按照自己默认的方式从TFTP SERVER中下载其他所需的配置文件.
这个时候 PXE 启动流程已经完成了,剩下的工作都是有NBP来执行完成的.
例如: pxelinux.0(NBP) 他会下载 default 配置文件,来显示菜单,根据需要启动不同的kernel image。

配置tftp

DNSmasq提供了PXE和tftp的功能,配置也十分简单,在前配置好DHCP服务(DNSmasq – 配置DHCP和DNS)的基础上添加下面选项:

重启dnsmasq服务,tftp服务(udp 69)的监听已经启用。

安装syslinux

syslinux是一个功能强大的引导加载程序,而且兼容各种介质。SYSLINUX是一个小型的Linux操作系统,它的目的是简化首次安装Linux的时间,并建立修护或其它特殊用途的启动盘。安装完成后,使用rpm -ql syslinux来查看包中相关文件,可以看到启动所需要的文件已经放在了/usr/share/syslinux下。
首先将这些文件拷贝到TFTP服务的root目录中,检查启动所需的内核引导镜像文件。

创建配置文件目录tftp-root/pxelinux.cfg,拷贝isolinux.cfg为pxelinux.cfg/default,这是PXE默认配置文件的路径名。

接下来在客户端测试:
客户机在启动后,根据ROM中的PXE Client启动获得了IP地址、加载了pxelinux.0启动程序并读取了pxelinux.cfg/default配置,启动界面已经成功显示出来。
pxe-boot
到此为止,一个可用的PXE环境已经准备就绪。下一篇将使用kickstart安装和配置系统。
^^

Posted in Ops, Tools.
  1. Pingback: CentOS dnsmasq 功能外篇 | 香蕉与打火机