DHCPサーバーを備えた既存のLANがすでにIPアドレスを提供しています。
さまざまな理由で、そのサーバーを置き換えることができないため、IPアドレスをディッシュする必要があります。
プロキシモードでDnsmasqを試して、PXEブートファイル名を提供してきました。これで、DnsmasqチェーンロードiPXEは正常になりましたが、Dnsmasqの問題は、プロキシモードではDHCPオプションが送信されないことです。そのため、iSCSISANを起動するためのオプション17を送信できないようです。
ソースコードで有効になっていないことをどこかで読みました。そうですね、おそらくISC DHCPD(Ubuntuではデフォルトのバージョン4)を試してみるべきだと思いましたが、プロキシとして機能する構成例が見つかりません。
ネットブート後に表示したいもの(menu.c32、vesamenu.c32、pxelinuxなど)をチェーンロードする埋め込みipxeスクリプトを使用してカスタムiPXEイメージを構築することを検討するかもしれません。良い点は、iPXEが渡されたDHCPオプション(オプション66や67など)をまったく必要としないことです。代わりに、ipxeスクリプトに埋め込まれているものが使用されます。 IPを割り当てるにはDHCPが必要です。
このアプローチの潜在的な欠点は、CDから起動する(ipxeイメージISOを作成できる)か、ISOをVM)内にマウントして起動するか、または既存のPXEブートサーバーがあり、pxelinuxやmenu.c32/vesamenu.c32などを使用している場合、ipxeビルドプロセスが生成するUNDIイメージを配置できます。ipxeのUNDIバージョンは、pxelinuxおよびおそらく他のブートローダー。
私はまだdnsmasqをproxyDHCPサーバーとして使用する方法を自分で理解しようとしています。 proxyDHCPを介してipxeイメージを起動するように取得できますが、ロード後にipxeにDHCPIPアドレスを取得させることができません。これは、iPXE DHCPクライアントがDHCPサーバーとしてproxyDHCPを優先しているためです(それが理にかなっている場合)。これは、proxyDHCPサーバーの目的を考えると奇妙に思えます。つまり、DHCPサーバーを必要としないということです。
編集:これはdnsmasqの機能的なproxydhcpセットアップです(最終的にそれを理解しました):
メインの/etc/dnsmasq.conf構成からインクルードされた/etc/dnsmasq.d/proxydhcp.confファイル(例:構成行conf-dir =/etc/dnsmasq.d):
port=0
log-dhcp
dhcp-match=ipxe,175
dhcp-option=175,8:1:1
dhcp-boot=net:ipxe,http://mynetbootserver.domain.com/boot/ipxeboot/${net0/mac}
dhcp-boot=tag:!Iipxe,ipxe.0
enable-tftp
tftp-root=/tftpboot
dhcp-range=192.168.0.0,proxy,255.255.0.0
dhcp-range=10.0.0.0,proxy,255.0.0.0
dhcp-range=172.16.0.0,proxy,255.255.0.0
pxe-service=net:#ipxe,x86PC,"My Cool Netboot Processes",ipxe-native
ネットワーク内の別のDHCPサーバーとうまく連携します。私のVMは、DHCPクライアントに渡されたproxyDHCPオプションを取得して起動しますが、クライアントがDHCPサーバーからPXE関連の起動オプション(66、67など)を取得するように構成されている場合は、それを選択すると思います(おそらく間違っていますか?)それらのオプションを提供します。
委任勧誘状ですべてのRFC1918IPスペースが使用されていることに注意してください。これを行うのに問題はないようです。つまり、これはサブネットの権限のあるDHCPサーバーではなく、単なるプロキシであるため、既存のDHCPサーバーとの目に見える干渉はありません。また、proxedhcpをサポートするためにipxeオプションは特に必要ではありませんが、私がどのように使用するかを選択した例にすぎません。つまり、proxydhcpを使用してipxe bootstrap情報を渡します。
つまり、proxyDHCPは、環境で実行されているDHCPサーバーを技術的または管理的に変更できない環境でPXEネットブートを非侵襲的に実装するための非常に優れた方法です。
この目的のためにdnsmasq
(バージョン> = 2.48)を使用できます。
詳細はこちら: https://help.ubuntu.com/community/UbuntuLTSP/ProxyDHCP
いいえ、ISCDHCPDサーバーはProxyDHCPモードをサポートしていません。しばらくの間、iPXEコミュニティでGSoCプロジェクトを実装するというアイデアがありましたが、まだそのタスクを引き受ける学生はいません。一方、dnsmasqはProxyDHCPモードで動作するように構成できますが、その構成は純粋に静的です。今年のGSoCはdnsmasqを拡張して、ロジックを処理できるWebサーバーにDHCP要求を送信し、dnsmasqに応答を送り返すことができるようにするという考えがあります。これにより、これがProxyDHCPクライアントに中継されます。これについて詳しくは、このページをご覧ください: http://ipxe.org/gsoc