web-dev-qa-db-ja.com

DnsMasq、DHCPプロキシ、UEFIクライアントのPXEに関する問題

Dnsmasqをdhcp-proxyとして使用してPXEサーバーをセットアップしようとしています。

これはclient-Arch = 0(x86レガシークライアント)でうまく機能しますが、UEFIクライアントはPXEサーバーとのDHCPパケット交換を終了することすらなく、pxe-Prompt(dnsmasqで設定)さえこれらの新しいクライアントに表示されません。

Wiresharkを使用してPXEサーバーとクライアント間のDHCPダイアログのダンプを作成しましたが、いくつかの違いがありますが、レガシークライアントのみがサーバーに正常に接続する理由がわかりません。

PXEサーバーとレガシーBIOSクライアント間のDHCPメッセージのダンプ (機能する!)

PXEサーバーとUEFIクライアント間のDHCPメッセージのダンプ (機能しません:()

オンラインで動作する構成を見つけることができませんでした。多くの例に従って、UEFIシステムが最終的なREQUEST/ACKをPXEサーバーと交換しないことがわかります。

Dnsmasq設定:

port=0
interface=bond
log-dhcp
dhcp-range=192.168.1.200,proxy,255.255.255.0
dhcp-no-override

dhcp-option=vendor:,6,2b

pxe-Prompt="Press any key for boot menu", 5

dhcp-match=set:x86PC, option:client-Arch, 0
dhcp-match=set:BC_EFI, option:client-Arch, 7

pxe-service=tag:x86PC,x86PC, "Legacy BIOS PXE", bios/pxelinux
pxe-service=tag:BC_EFI,BC_EFI, "UEFI PXE", efi64/syslinux.efi

dhcp-boot=tag:x86PC, bios/pxelinux.0
dhcp-boot=tag:BC_EFI, efi64/syslinux.efi

解決策はありますか?

編集:私はUEFIサポート付きのバージョン2.76を使用しています(公式サイトの変更ログを参照)。

EDIT2:私のUEFIクライアントはPXEClient:Arch:00007として分類されています(したがって、BC_EFIは正しいdnsmasq Archタグです)。

2

DnsMasq proxyDHCPはUEFI環境では機能しません。

http://lists.thekelleys.org.uk/pipermail/dnsmasq-discuss/2015q4/009907.html

EDIT_1 UEFIサポートで新しいDnsMasqを使用している場合は、不足しているアーキテクチャを追加してください9

 dhcp-match=set:EFI_ x86-64, option:client-Arch, 9

UEFI 64クライアントも9をアーキテクチャとして使用します。

EDIT_2

これに基づいて設定を行ってください

# Don't function as a DNS server:
port=0

# Log lots of extra information about DHCP transactions.
log-dhcp

# Set the root directory for files available via FTP.
tftp-root=/tftpboot

# Disable re-use of the DHCP servername and filename fields as extra
# option space. That's to avoid confusing some old or broken DHCP clients.
dhcp-no-override

# The boot filename, Server name, Server Ip Address
dhcp-boot=bios/pxelinux,,192.168.1.200

# PXE menu.  The first part is the text displayed to the user.  The second is the timeout, in seconds.
# pxe-Prompt="Booting PXE Client", 1

# The known types are x86PC, PC98, IA64_EFI, Alpha, Arc_x86,
# Intel_Lean_Client, IA32_EFI, ARM_EFI, BC_EFI, Xscale_EFI and X86-64_EFI
# This option is first and will be the default if there is no input from the user.

# PXEClient:Arch:00000
pxe-service=X86PC, "Boot BIOS PXE", bios/pxelinux

# PXEClient:Arch:00007
pxe-service=BC_EFI, "Boot UEFI PXE-BC", efi64/syslinux.efi

# PXEClient:Arch:00009
pxe-service=X86-64_EFI, "Boot UEFI PXE-64", efi64/syslinux.efi

dhcp-range=192.168.1.200,proxy,255.255.255.0

ソース https://wiki.fogproject.org/wiki/index.php?title=ProxyDHCP_with_dnsmasq (基本スクリプトへのUEFIサポートの追加)

2
Pat