このドキュメントで説明するソフトウェアは、Extended SupportまたはSustaining Supportのいずれかにあります。 詳細は、https://www.oracle.com/us/support/library/enterprise-linux-support-policies-069172.pdfを参照してください。
Oracleでは、このドキュメントに記載されているソフトウェアをできるだけ早くアップグレードすることをお薦めします。

機械翻訳について

1.4.10 iPXEクライアントをサポートするためのDHCPの構成

iPXEは、次のような多くの点でPXEの機能を拡張しています。

  • iPXEクライアントは、HTTP、iSCSI、AoEおよびFCoEを使用してブートできます。

  • スクリプトを使用してブート・プロセスを制御できます。

  • DNSルックアップが使用可能です。

  • ワイド・エリア・ネットワークやインターネットにわたるブートが可能です。

gpxelinux.0ブート・ローダーは、いくつかのiPXE機能(DNSルックアップやHTTPファイル転送など)を提供するもので、syslinuxパッケージ内にあります。 iPXEコマンドやスクリプトはサポートしていません。

レガシー・モードではgpxelinux.0をBIOSベースのPXEクライアントおよびUEFIベースのクライアントと組み合せて使用できますが、UEFIモードではできません。

iPXEクライアントをサポートするようにDHCPサービスを構成するには:

  1. /etc/dhcp/dhcpd.confを編集します。

    1. 次の行を追加して、DHCPに対してiPXEオプションを定義します。

      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.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;
      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;
    2. プロキシDHCPサーバーを使用しない場合は、次の行を指定して、DHCPサーバーとのネゴシエーションを高速化します。

      option ipxe.no-pxedhcp 1;
    3. 次の行を追加して、user-classオプションを定義します。

      option user-class code 77 = string;
    4. 次の例のように、DHCPサーバーを構成して、iPXEクライアントがドメイン名をIPアドレスに解決するために使用できるネーム・サーバーのIPアドレスを指定します。

      option domain-name-servers 10.0.0.1, 10.0.0.4, 10.0.0.8;
    5. 次の例のように、DHCPを構成して、iPXE以外のクライアントにはgpxelinux.0ブート・ローダー、iPXEクライアントにはブート・スクリプトのURIを指定します。

      if exists user-class and option user-class = "iPXE" {
            filename "http://web.mydom.com/pxeboot.php";
        } else {
            filename "gpxelinux.0";
        }

      この例では、純粋なiPXEクライアントがHTTP提供のブート・スクリプトpxeboot.phpを実行します。

      iPXEクライアント用のブート・スクリプトの例を次に示します。

      #!ipxe
      
      dhcp
      kernel http://web.mydom.com/OSimage/OL6.6/isolinux/vmlinuz
      initrd http://web.mydom.com/OSimage/OL6.6/isolinux/initrd.img
      boot vmlinuz initrd=initrd.img ksdevice=eth0 kssendmac \
       ks=http://web.mydom.com/ksfiles/ol6u6_cfg.ks

      dhcpは、クライアントのネットワーク・インタフェースを構成します。

      kernelは、インストール・カーネルをダウンロードします。

      initrdは、初期RAMディスク・イメージ・ファイルをダウンロードします。

      bootは、ダウンロード済のインストール・カーネルをブートします。 最初のRAMディスク・ファイルの名前やキックスタート・ファイルのロケーションなどのブート・ライン・パラメータは、追加の引数として指定されます。 \行継続文字を使用しないでください。 例の中のこの文字は、印刷用に長い行を改行するために使用されています。 bootコマンドおよびそのすべての引数は、同じ行に指定する必要があります。

      詳細は、https://ipxe.org/scriptingおよびhttps://ipxe.org/cmdを参照してください。

      iPXE以外のクライアントは、gpelinux.0を使用してブートします。 1.4.9項「ブート・ローダー構成ファイルについて」で説明しているように、gpxelinux.0の構成ファイルの名前はpxelinux.0と同様の方法で付けられます。 pxelinux.0の場合とは異なり、HTTPを使用してインストール・カーネルと初期RAMディスク・イメージのファイルにアクセスできます。

      gpxelinux.0の構成ファイルの例を次に示します。

      prompt 0
      default ol6u6
      timeout 0
      
      label ol6u6
      kernel http://websvr.mydom.com/OSimage/OL6.6/isolinux/vmlinuz
      append initrd=http://websvr.mydom.com/OSimage/OL6.6/isolinux/initrd.img \
       ksdevice=eth0 kssendmac ks=http://web.mydom.com/ksfiles/ol6u6_cfg.ks

      \行継続文字を使用しないでください。 例の中のこの文字は、印刷用に長い行を改行するために使用されています。 appendキーワードおよびそのすべての引数は、同じ行に指定する必要があります。

  2. DHCPサービスを再起動します。

    # service dhcpd restart

    /etc/dhcp/dhcpd.confに変更を加えた場合は、dhcpdサービスを再起動してください。 ブート・ローダー構成ファイルの内容を変更した場合、サービスを再起動する必要はありません。