二、PXE+Kickstart 无人值守批量部署操作系统;使用物理路由器的dhcp:ProxyDHCP+TFTP+HTTP+Kickstart应答文件(VMware测试环境)
前文不使用物理设备的 DHCP 选择自行安装 DHCP 服务进行的PXEKickstart 无人值守部署操作系统的方法难以适用于家庭或企业环境本文尝试一种使用物理设备家庭路由器、企业交换机的DHCP功能批量部署物理机操作系统的方案。建议前置阅读一、PXEKickstart 无人值守批量部署操作系统不使用物理设备的dhcp自行安装dhcp服务DHCPTFTPHTTPKickstart应答文件VMware测试环境前言一般来说普通设备的 DHCP 功能只为上网设计大概率不支持Option 66/67TFTP 服务器地址和启动文件因此客户端无法知道去哪里找 PXE 服务器。本文采取的方案是使用dnsmasq的proxy-dhcp功能补全 PXE启动需求。Option 66/67OptionRFC 名称作用示例值66TFTP Server Name指定 TFTP 服务器地址192.168.1.10或tftp.company.com67Bootfile Name指定启动文件名pxelinux.0(BIOS) 或grubx64.efi(UEFI)类比解释普通 DHCP 租房 ├─ 给你门牌号 (IP 地址) ├─ 告诉你小区大门在哪 (网关) └─ 告诉你快递站 DNS 在哪 (DNS 服务器) PXE DHCP 租房多了两个关键信息 ├─ 门牌号、大门、快递站... ├─ **Option 66**: 楼下仓库地址 (TFTP 服务器 IP) ← 去哪下载启动文件 └─ **Option 67**: 仓库里的具体箱子 (启动文件名 pxelinux.0) ← 下载哪个文件dnsmasq 的 proxy_dhcp模式 核心原理和功能dnsmasq 的 proxy_dhcp 功能可以再不改变原有网卡 DHCP 的基础下添加 PXE 启动所需的参数。其特点不分配 IP 地址不下发网关、DNS、租期只监听 PXE 客户端请求单独回复「PXE 专属扩展字段 Option 66/67」PXE 启动流程客户端开机 ↓ 网卡广播「我要 IP我还要 PXE 启动信息」 ↓ DHCP 服务器响应 ├─ IP: 192.168.1.50 ├─ 网关: 192.168.1.1 ├─ DNS: 8.8.8.8 ├─ **Option 66: 192.168.1.10** ← 去这个地址下载启动文件 └─ **Option 67: pxelinux.0** ← 下载这个文件 ↓ 客户端联系 192.168.1.10:69 (TFTP) 下载 pxelinux.0 → 执行 → 显示启动菜单 ↓ 继续下载 vmlinuz, initrd.img → 启动 Linux 安装检查你的路由器是否支持家用路由器小米/华为/TPLink 通常 不支持 自定义 DHCP 选项 需要刷 OpenWrt/DD-WRT 或换企业级路由器 企业级路由器/交换机 支持 next-server 和 filename 配置具体可以抓包判断物理 DHCP 是否支持 Option 66/67# 在 CentOS 测试客户端安装 tcpdumpyuminstall-ytcpdump# 抓 DHCP 包需要 rootens33 要换成对应的网卡名sudotcpdump-iens33-w~/dhcp.pcap udp# 重启网络或触发 DHCP ens33 要换成对应的网卡名sudodhclient-rens33dhclient-vens33# 停止抓包分析sudopkilltcpdump tcpdump-r~/dhcp.pcap-v-n# 关键看有没有这些字段Option66或 TFTP Server Name Option67或 Bootfile Name# 可以把抓包结果发给 AI 让其判断正文1.环境搭建VMware平台建议阅读 一、PXEKickstart 无人值守批量部署操作系统不使用物理设备的dhcp自行安装dhcp服务DHCPTFTPHTTPKickstart应答文件VMware测试环境 并根据其配置TFTPHTTPKickstart应答文件并将宿主机网卡由 Host-only 模式改为 bridge 模式之后进入nmtui将网卡的ip改为你物理网段的ip若不知道物理网段哪个ip没被使用也可先dhcp一个ip然后将其改为静态网关改为物理网段的网关重启。另外firewalld 和 SELinux 也要根据前文方法关闭。若之前完整部署并测试过前文中的方法切记将 Kickstart 应答文件和 tftp 引导文件里的 ip 改为你 bridge 后网卡的ip应和物理ip同网段2.关闭自建 DHCP若之前完整测试过 一、PXEKickstart 无人值守批量部署操作系统不使用物理设备的dhcp自行安装dhcp服务DHCPTFTPHTTPKickstart应答文件VMware测试环境需要关闭自建的 DHCP 服务systemctl stop dhcpd# 禁止自建 dhcp 自启动system disable dhcpd若没有安装过dhcpd可以省略该步。3.安装 dnsmasq 并配置 proxy_dhcp 参数yuminstall-ydnsmasq# 配置参数cat/etc/dnsmasq.confEOF #关闭DNS只做 DHCP Proxy port0 # 只监听 ens35物理网络对应的网卡我这里是bridge模式对应的网卡 interfaceens35 bind-interfaces # Proxy DHCP 模式不分配 IP只提供 PXE 信息注意改为物理网络的网段 dhcp-range10.10.100.0,proxy,255.255.255.0,1h # PXE 启动信息指向本机 TFTP pxe-servicex86PC,Install CentOS 7,pxelinux.0,10.10.100.45 EOF# 打开并设置 dnsmasq 自启动systemctl start dnsmasq systemctlenablednsmasq4.可能遇到的问题i.ss-tunap|grep-E:67|:69# 启动 dnsmasq 和 xinetd 的tftp 后应该看到udp UNCONN00*%ens35:67 *:* users:((dnsmasq,pid5468,fd4))udp UNCONN00*:69 *:* users:((xinetd,pid1077,fd5))# 0.0.0.0:67 dnsmasq (Proxy DHCP)# 0.0.0.0:69 xinetd (TFTP)# VMware 可能遇到的情况[rootlocalhost ~]ss-tunap|grep-E:67|:69udp UNCONN00*%ens35:67 *:* users:((dnsmasq,pid2712,fd4))udp UNCONN00*%virbr0:67 *:* users:((dnsmasq,pid1402,fd3))udp UNCONN00*:69 *:* users:((xinetd,pid1048,fd5))# 发现 dnsmasq 有两个实例在运行而且 virbr0 上的 dnsmasq 会干扰# 建议直接 kill 掉 virbr0 上的 dnsmasqkill-91402# 1402 替换为你的端口号ii.# VMware 新建测试机并使用 bridge 模式测试时发现# 测试机第一次获取 DHCP 后手动打断自行部署过程或者出现了其他问题未完成自动部署再次重启测试机测试机无法获取 DHCP。# 解决方案重启 dnsmasq 服务systemctl restart dnsmasq# 原因dnsmasq 默认缓存了客户端 MAC PXE 租期 / 绑定第一次 PXE 握手残留记录没清二次开机直接拒绝响应缓存冲突直接卡死必须重启清内存缓存。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2482798.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!