跳转至

Premature

关于本页

期望的长期名称

请不要链接到这个未完成的页面

使用 dnsmasq

dnsmasq 为小型网络提供网络基础设施:DNS、DHCP、路由器通告和网络启动。它可以配置为支持 iPXE。

dnsmasq 使用文件 /etc/dnsmasq.conf 进行配置。你可以使用 dhcp-boot 指令指示 iPXE 启动:

  dhcp-boot=pxelinux.0

  dhcp-boot=http://boot.ipxe.org/demo/boot.php

TFTP 服务器

要启用 TFTP 服务器,设置:

  # Enable dnsmasq's built-in TFTP server
  enable-tftp

  # Set the root directory for files availble via FTP.
  tftp-root=/var/lib/tftpboot/

PXE 链式加载

A chain

要使用 PXE 链式加载,你需要设置 dnsmasq 向传统 PXE 客户端分发 undionly.kpxe,然后只向 iPXE 客户端分发"真正的"启动配置。你可以通过告诉 dnsmasq 根据 DHCP 用户类使用不同的配置来做到这一点:

  dhcp-boot=undionly.kpxe
  dhcp-match=set:iPXE,175
  dhcp-boot=tag:iPXE,http://my.web.server/real_boot_script.php

这将确保 iPXE 镜像(undionly.kpxe)只在 DHCP 请求来自传统 PXE 客户端时分发。一旦 iPXE 被加载,DHCP 服务器将引导它从 http://my.web.server/real_boot_script.php 启动。你应该把 filename "http://my.web.server/real_boot_script.php" 替换为你希望 iPXE 启动的任何内容。

iPXE 特有的选项

有几个 DHCP 选项是 iPXE 特有的,标准的 ISC dhcpd 安装无法识别它们。要添加对这些选项的支持,请把以下内容放在你的 /etc/dhcpd.conf 的开头:

dnsmasq 可以使用配置项 dhcp-option 进行"封装"

Work in progress WIP FIXME text to REMOVE

ISC dhcpd 语法:

  option space ipxe;
  option ipxe-encap-opts code 175 = encapsulate ipxe;
  option ipxe.priority code 1 = signed integer 8;
  option ipxe.keep-san code 8 = unsigned integer 8;
  option ipxe.skip-san-boot code 9 = unsigned integer 8;
  option ipxe.syslogs code 85 = string;
  option ipxe.cert code 91 = string;
  option ipxe.privkey code 92 = string;
  option ipxe.crosscert code 93 = string;
  option ipxe.no-pxedhcp code 176 = unsigned integer 8;
  option ipxe.bus-id code 177 = string;
  option ipxe.san-filename code 188 = string;
  option ipxe.bios-drive code 189 = unsigned integer 8;
  option ipxe.username code 190 = string;
  option ipxe.password code 191 = string;
  option ipxe.reverse-username code 192 = string;
  option ipxe.reverse-password code 193 = string;
  option ipxe.version code 235 = string;
  option iscsi-initiator-iqn code 203 = string;
  # Feature indicators
  option ipxe.pxeext code 16 = unsigned integer 8;
  option ipxe.iscsi code 17 = unsigned integer 8;
  option ipxe.aoe code 18 = unsigned integer 8;
  option ipxe.http code 19 = unsigned integer 8;
  option ipxe.https code 20 = unsigned integer 8;
  option ipxe.tftp code 21 = unsigned integer 8;
  option ipxe.ftp code 22 = unsigned integer 8;
  option ipxe.dns code 23 = unsigned integer 8;
  option ipxe.bzimage code 24 = unsigned integer 8;
  option ipxe.multiboot code 25 = unsigned integer 8;
  option ipxe.slam code 26 = unsigned integer 8;
  option ipxe.srp code 27 = unsigned integer 8;
  option ipxe.nbi code 32 = unsigned integer 8;
  option ipxe.pxe code 33 = unsigned integer 8;
  option ipxe.elf code 34 = unsigned integer 8;
  option ipxe.comboot code 35 = unsigned integer 8;
  option ipxe.efi code 36 = unsigned integer 8;
  option ipxe.fcoe code 37 = unsigned integer 8;
  option ipxe.vlan code 38 = unsigned integer 8;
  option ipxe.menu code 39 = unsigned integer 8;
  option ipxe.sdi code 40 = unsigned integer 8;
  option ipxe.nfs code 41 = unsigned integer 8;

Work in progress WIP FIXME text to REMOVE

代理 DHCP

Work in progress WIP FIXME text to ADD

  dhcp-range=proxy

加快 DHCP 速度

Work in progress WIP FIXME

注意这是又一次:dnsmasq 能否在选项 175 中封装更多选项?

PXE 规范要求 iPXE 在启动前等待 ProxyDHCP 服务器的回复。如果你没有使用 ProxyDHCP 服务器,这会造成几秒钟的不必要延迟。你可以使用以下命令消除这种延迟:

  option ipxe.no-pxedhcp 1;    FIXME

(如果你正在使用 ProxyDHCP 服务器,请不要这样做;这将导致 iPXE 忽略 ProxyDHCP 服务器发送的任何内容!)

测试特定特性

FIXME

注意又一个封装选项……

你可以使用特性指示选项来确定 iPXE 是否支持特定特性。例如,

  if exists ipxe.fcoe {
      option root-path "fcp:20:00:52:54:00:aa:b7:01:0";
  }

只会向启用了 FCoE 支持的 iPXE 客户端分发 FCoE 根路径。