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

機械翻訳について

1.4.8 PXEクライアントをサポートするためのdnsmasqの構成

dnsmasqは、小規模なネットワークでDNSフォワーダ、DHCPサーバーおよびTFTPサーバーとして機能するように設計されています。 dnsmasqを使用すると、DHCPサービスとTFTPサービスを個別に構成する必要がありません。 dnsmasqの詳細は、dnsmasq(8)マニュアル・ページ、/usr/share/doc/dnsmasq-versionおよびhttp://www.thekelleys.org.uk/dnsmasq/doc.htmlを参照してください。

PXEクライアント・インストール・リクエストに対してdnsmasqを構成するには:

  1. dnsmasqパッケージをインストールします。

    # yum install dnsmasq
  2. /etc/dnsmasq.confを編集し、次の例のように、ネットワーク上のPXEクライアントおよび他のシステムに対するエントリを構成します。

    interface=eth1
    dhcp-range=10.0.0.101,10.0.0.200,6h
    dhcp-host=80:00:27:c6:a1:16,10.0.0.253,svr1,infinite
    dhcp-boot=pxelinux/pxelinux.0
    enable-tftp
    tftp-root=/var/lib/tftpboot

    サンプルの構成ファイル内の行により、次の処理が行われます。

    interface=eth1

    インタフェースeth1のみの受信クライアント・リクエストをリスニングします。

    dhcp-range=10.0.0.101,10.0.0.200,6h

    6時間のリースで、10.0.0/24サブネット上に10.0.0.101から10.0.0.200までの範囲で、一般に使用可能なIPアドレスのプールを予約します。

    ノート

    dhcp-rangeの設定は、dnsmasqが提供するDHCPサービスを有効にするために必要です。 静的アドレスは構成するがアドレス・プールは構成しない場合、次の例のように、静的ネットワーク・アドレスとキーワードstaticおよびinfiniteを指定してください。

    dhcp-range=10.0.0.253,static,infinite
    dhcp-host=80:00:27:c6:a1:16,10.0.0.253,svr1,infinite

    svr1に対して無期限のリース時間でIPアドレス10.0.0.253を予約します(これはMACアドレス08:00:27:c6:a1:16で識別されます)。

    dhcp-boot=pxelinux/pxelinux.0

    PXEクライアントに必要なブート・ローダー・ファイルの場所を指定します。 この例では、BIOSベースのPXEクライアントをサポートしています。 UEFIベースのクライアントをサポートするエントリは、次の形式で指定できます。

    dhcp-boot=efi/BOOTX64.efi

    dnsmasqではなく個別のTFTPサーバーを使用する場合は、次の例のように、ブート・ローダー・パスの後にそのIPアドレスを指定します。

    dhcp-boot=pxelinux/pxelinux.0,10.0.0.11
    enable-tftp

    dnsmasqが提供するTFTPサービスを有効にします。

    tftp-root=/var/lib/tftpboot

    TFTPが提供するファイルのルート・ディレクトリを指定します。 クライアントがホスト上のファイルにアクセスできないように、dnsmasqは、パス要素として..を指定するリクエストを拒否します。

  3. TFTPサービスを提供するようにdnsmasqを構成するには、次の手順を実行します。

    1. 次の例のように、TFTPサーバー・ディレクトリを作成します。

      # mkdir -p /var/lib/tftpboot/pxelinux/pxelinux.cfg
    2. 次の例のように、インストール・カーネルとRAMディスク・イメージのファイルをTFTPサーバー・ディレクトリ階層にコピーします。

      # wget http://10.0.0.11/OSimage/OL6.6/isolinux/vmlinuz \
        -O /var/lib/tftpboot/pxelinux/vmlinuz
      # wget http://10.0.0.11/OSimage/OL6.6/isolinux/initrd.img \
        -O /var/lib/tftpboot/pxelinux/initrd.img

      この例では、HTTPを使用してインストール・サーバーからファイルを取得します。

    3. BIOSベースのPXEクライアントをサポートする場合は、syslinuxパッケージをインストールし、pxelinux.0ブート・ローダーをTFTPサーバー・ディレクトリ階層にコピーします。

      # yum install syslinux
      # cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/pxelinux/pxelinux.0

      UEFIベースのPXEクライアントをサポートする場合は、次の例のように、BOOTX64.efiブート・ローダーとスプラッシュ・イメージのファイルをTFTPサーバー・ディレクトリ階層にコピーします。

      # wget http://10.0.0.11/OSimage/OL6.6/EFI/BOOT/BOOTX64.efi \
        -O /var/lib/tftpboot/efi/BOOTX64.efi
      # wget http://10.0.0.11/OSimage/OL6.6/EFI/BOOT/splash.xpm.gz \
        -O /var/lib/tftpboot/efi/splash.xpm.gz
    4. デフォルトのブート・ローダー構成ファイル(efi/efidefaultpxelinux/pxelinux.cfg/defaultなど)を作成します。

      詳細は、1.4.9項「ブート・ローダー構成ファイルについて」を参照してください。

    5. システムでSELinuxがenforcingモードで有効になっている場合、次の例のように、semanageコマンドを使用してTFTPサーバー・ディレクトリ階層のデフォルト・ファイル・タイプをtftpdir_tとして定義してから、restoreconコマンドを使用してファイル・タイプをディレクトリ階層全体に適用します。

      # /usr/sbin/semanage fcontext -a -t tftpdir_t "/var/lib/tftpboot(/.*)?"
      # /sbin/restorecon -R -v /var/lib/tftpboot
      ノート

      semanageおよび「restoreconコマンドは、policycoreutils-pythonおよびpolicycoreutilsパッケージで提供されます。

  4. dnsmasqをキャッシング専用のネーム・サーバーとして設定する場合は、他のネーム・サーバー・エントリより前に、127.0.0.1のネーム・サーバー・エントリを構成してください。

    dnsmasqは、127.0.0.1エントリを無視して、DNS問合せをリスト内の他のネーム・サーバーに転送します。 NetworkManagerサービスが有効になっている場合、グラフィカル・アプレット、nm-connection-editorユーティリティまたはsystem-config-networkユーティリティを使用して、ネーム・サービス・エントリを構成できます。 あるいは、次の例のように、/etc/resolv.conf内に直接ネーム・サーバー・エントリを構成することもできます。

    nameserver 127.0.0.1
    nameserver 10.0.0.8
    nameserver 10.0.0.4

  5. dnsmasqサービスを起動して、リブート後に起動するように構成します。

    # service dnsmasq start
    # chkconfig dnsmasq on

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

  6. ファイアウォールを構成します。

    1. 次の例のように、DHCPリクエストによるアクセスを許可します。

      # iptables -I INPUT -i eth1 -p udp --dport 67:68 --sport 67:68 -j ACCEPT

      この例では、サーバーはインタフェースeth1でリクエストを受信することを予期します。

    2. dnsmasqでTFTPを有効にした場合は、TFTPリクエストによるアクセスを許可します。

      # iptables -I INPUT -i eth1 -p udp --dport 69 -j ACCEPT
    3. dnsmasqをキャッシング専用のネーム・サーバーとして設定する場合は、DNSリクエストによるアクセスを許可します。

      # iptables -I INPUT -i eth1 -p tcp -m state --state NEW -m tcp --dport 53 -j ACCEPT
      # iptables -I INPUT -i eth1 -p udp -m udp --dport 53 -j ACCEPT
    4. 構成を保存します。

      # service iptables save

自動インストールを実行するためにキックスタートを構成および使用する方法については、第3章、「キックスタートを使ってOracle Linuxをインストール」を参照してください。