第3章 ネットワークの設定

それぞれのプロビジョニングタイプにはネットワーク設定が必要です。本章を参照して、Satellite Server 上に統合された Capsule でネットワークサービスを設定します。

新規ホストは、Capsule Server にアクセスできる必要があります。Capsule Server は、Satellite Server 上に統合された Capsule、または外部 Capsule Server のいずれかになります。必要なホストが分離したネットワーク上にあり、Satellite Server に直接接続できない場合、またはコンテンツと Capsule Server を同期している場合には、外部 Capsule Server からのホストのプロビジョニングを選択できます。また、外部 Capsule Server を使用したプロビジョニングは、ネットワークの帯域幅を節約できます。

Capsule Server の設定には、基本的な要件が 2 つあります。

  1. ネットワークサービスの設定には、以下が含まれます。

    • コンテンツ配信サービス
    • ネットワークサービス (DHCP、DNS、および TFTP)
    • Puppet 設定
  2. Satellite Server でネットワークリソースデータを定義し、新規ホストでのネットワークインターフェースの設定をサポートします。

以下の説明は、特定のネットワークを管理するスタンドアロンの Capsule の設定にも同様に当てはまります。Satellite が外部の DHCP、DNS および TFTP サービスを使用するように設定する方法は、『オンラインネットワークからの Satellite Server のインストール』の「外部サービスの設定」を参照してください。

3.1. ネットワークリソース

Satellite には、ホストの作成に必要なネットワークリソースが含まれます。Satellite には、以下のネットワークリソースが含まれます。

ドメイン
Satellite で管理するホストはすべてドメインに割り当てる必要があります。ドメインを使用して、Satellite は A、AAAA および PTR レコードを管理します。Satellite で DNS サーバーを管理しない場合でも、ドメイン 1 つ以上を作成して、関連付ける必要があります。ドメインは、Satellite がホストする命名規則に含めます。たとえば、example.com ドメインで名前が test123 のホストは、test123.example.com という完全修飾ドメイン名になります。
サブネット

Satellite が管理するホストはすべてサブネットに割り当てる必要があります。サブネットを使用することで、Satellite は IPv4 予約を管理できます。予約機能が統合されていない場合でも、最低でもサブネット 1 つを作成して関連付ける必要があります。Satellite でサブネットを管理すると、Satellite の外にあるサブネットの DHCP レコードを作成できません。Satellite では、IP Address Management (IPAM) を使用して、以下のオプションのいずれかで IP アドレスを管理できます。

  • DHCP: DHCP Capsule は、範囲の最初のアドレスから開始し、予約されているアドレスをすべて飛ばして、次に利用可能な IP アドレスを検索することで、IP アドレスの割り当てを管理します。Capsule は IP アドレスを割り当てる前に、ICMP と TCP に Ping を送信して、IP アドレスが使用中かどうかを確認します。ホストの電源がオフの場合または、ファイアウォールの設定で接続が無効な場合には、Satellite は IP アドレスが利用可能であると誤って判断します。このチェックは、電源がオフになっているホストでは機能しないので、DHCP オプションは Satellite が制御し、外部で作成されたホストが含まれていないサブネットでのみ利用できます。

    Capsule DHCP モジュールでは、提供された IP アドレスを短期間保持し、同時アクセス時の競合を回避するので、IP 範囲の IP アドレスによっては、一時的に未使用のままとなる場合があります。

  • 内部 DB: Satellite は、Satellite データベースからの IP アドレスを順番にすべて除外し、サブネットの範囲から次に利用可能な IP アドレスを検索します。主要なデータソースは、データベースで、DHCP 予約ではありません。複数のホストが並行して作成される場合には、この IPAM は安全ではないので、このような場合には、代わりに DHCP または Random DB IPAM を使用してください。
  • Random DB: Satellite は、Satellite データベースから無作為に全 IP アドレスを除外し、サブネットの範囲から次に利用可能な IP アドレスを検索します。 主要なデータソースは、データベースで、DHCP 予約ではありません。この IPAM は、IP アドレスは無作為な順に返されるので、同時にホストを作成する場合にも安全に使用でき、競合の可能性を最小限に抑えることができます。
  • EUI-64: 48 ビットの MAC アドレスを使用して、RFC2373 に準拠した Extended Unique Identifier (EUI) 64 ビット IPv6 アドレスの生成を取得します。
  • 外部 IPAM: Capsule 機能を使用して IPAM を外部システムに委譲します。Satellite は現在、外部の IPAM 実装機能hw同梱されていませんが、プラグインが複数、開発中です。
  • None: 各ホストの IP アドレスは手動で入力する必要があります。

    オプション DHCP、内部 DB、およびランダム DBは、外部で作成されたレコードとのサブネットで DHCP の競合を引き起こす可能性があります。これらのサブネットは、Satellite でのみ管理する必要があります。

    サブネットの追加に関する詳細は、「Satellite Server へのサブネットの追加」を参照してください。

DHCP の範囲
Satellite Server では、検出されたシステムおよびプロビジョニングシステムの両方に同じ DHCP 範囲を定義することはできますが、各サービスに同じサブネット内の別の範囲を使用することを推奨します。

3.2. Satellite および DHCP オプション

Satellite は、DHCP Capsule で DHCP の予約を管理します。Satellite は next-server および filename DHCP オプションを設定します。

next-server オプション

next-server オプションでは、起動する TFTP サーバーの IP アドレスを提供します。このオプションはデフォルトでは設定されておらず、TFTP Capsule ごとに設定する必要があります。--foreman-proxy-tftp-servername オプションを指定して satellite-installer コマンドを使用して、/etc/foreman-proxy/settings.d/tftp.yml ファイルに TFTP サーバーを設定できます。

# satellite-installer --foreman-proxy-tftp-servername 1.2.3.4

次に 各 TFTP Capsule は API を使用してこの設定を報告して、DHCP レコードの作成時に、Satellite が設定情報を取得できるようになります。

PXE ローダーが none に設定されている場合には、Satellite は DHCP レコードに next-server オプションを追加しません。

next-server オプションが未定義の場合には、Satellite は逆引き DNS 検索を使用して、割り当てる TFTP サーバーのアドレスを検索しますが、以下の問題が発生する可能性があります。

  • プロビジョニング中の DNS タイムアウト
  • キャッシュではなく、AA (Authoritative Answer) など、不正な DNS サーバーのクエリー
  • PTR record was invalid など、TFTP サーバーの不正な IPアドレスに関するエラー

上記の問題が発生した場合には、特に PTR レコードの解決など、Satellite と Capsule の両方で DNS 設定を確認してください。

filename オプション

filename オプションには、プロビジョニング時に、ダウンロードして実行するファイルへの完全パスが含まれます。ホストまたはホストグループに選択した PXE ローダーは、使用する filename オプションを定義します。PXE ローダーが none に設定されている場合には Satellite は DHCP レコードに filename オプションを追加しません。PXE ローダーオプションによっては、filename が以下のように変更されます。

PXE ローダーオプションファイル名のエントリー注記

PXELinux BIOS

pxelinux.0

 

PXELinux UEFI

pxelinux.efi

 

iPXE Chain BIOS

undionly.kpxe

 

PXEGrub2 UEFI

grub2/grubx64.efi

x64 はアーキテクチャーにより異なる場合があります

iPXE UEFI HTTP

http://capsule.example.com:8000/httpboot/ipxe-x64.efi

httpboot 機能が必要で、完全な URL として filename をレンダリングします。ここでは capsule.example.com は、Satellite にある Capsule の既知のホスト名に置き換えます。

Grub2 UEFI HTTP

http://capsule.example.com:8000/httpboot/grub2/grubx64.efi

httpboot 機能が必要で、完全な URL として filename をレンダリングします。ここでは capsule.example.com は、Satellite にある Capsule の既知のホスト名に置き換えます。

3.3. Satellite で DHCP の問題をトラブルシューティングする手順

Satellite は内部または外部の DHCP Capsule で ISC DHCP サーバーを管理し、DHCP 予約およびリースを表示、作成、削除できます。ただし、場合によっては問題が発生する可能性があります。

PXE ローダーオプションの変更

PXE のローダーオプションが既存のホスト用に変更された場合には、DHCP の競合が発生します。この回避策として、DHCP エントリーを上書きしてください。

DHCP ファイルでのの不正なパーミッション

オペレーティングシステムを更新すると、dhcpd パッケージが更新される場合があり、重要なディレクトリーやファイルのパーミッションがリセットされて、DHCP Capsule が必要な情報を読み取ることができなってしまいます。

詳細は、Red Hat ナレッジベースの「DHCP error while provisioning host from Satellite server Error ERF12-6899 ProxyAPI::ProxyException: Unable to set DHCP entry RestClient::ResourceNotFound 404 Resource Not Found」を参照してください。

DHCP Capsule エントリーの変更

Satellite は、DHCP Capsule セットが含まれるサブネットに割り当てられたホストの DHCP レコードのみを管理します。ホストを作成して、DHCP Capsule を消去または変更した場合に、ホストを削除しようとすると、削除のアクションに失敗します。

DHCP Capsule を設定せずにホストを作成してから DHCP Capsule を設定しようとすると、DHCP の競合が発生します。

dhcpd.leases ファイルで削除済みのホストエントリー

DHCP リースに対する変更は、dhcpd.leases ファイルの最後に追加されます。エントリーがこのファイルに追加されるので、dhcpd.leases ファイルに、同時に同じリースのエントリーが 2 つ以上存在する可能性があります。同じリースのエントリーが 2 つ以上ある場合には、ファイルの最後のエントリーが優先されます。リースファイルのグループ、サブグループ、ホストの宣言も、同じ方法で処理されます。リースが削除されると、{ deleted; } が宣言に追加されます。

3.4. イメージベースのプロビジョニングの要件

ブート後の設定方法

finish ブート後設定スクリプトを使用するイメージは、Satellite の 統合 Capsule または外部 Capsule など、管理された DHCP サーバーが必要です。ホストは DHCP Capsule と関連付けられたサブネットで作成する必要があり、ホストの IP アドレスは、DHCP 範囲の有効な IP アドレスでなければなりません。

外部の DHCP サービスを使用することは可能ですが、IP アドレスは手動で入力する必要があります。イメージの設定に対応する SSH 認証情報は、ブート後の設定を実行できるように Satellite に設定しなければなりません。

設定後スクリプトに依存するイメージからブートした仮想マシンをトラブルシューティングする場合には、以下の項目を確認する必要があります。

  • ホストには、Satellite Server に割り当てられたサブネットがあること。
  • サブネットには、Satellite Server に割り当てられた DHCP Capsule があること。
  • ホストには、Satellite Server に割り当てられた有効な IP アドレスがあること。
  • DHCP を使用した仮想マシンが取得した IP アドレスは、Satellite Server に設定されたアドレスと一致すること。
  • イメージから作成された仮想マシンは、SSH リクエストに応答すること。
  • イメージから作成された仮想マシンは、SSH を介して、デプロイされたイメージと関連付けられている、ユーザーとパスワードを承認すること。
  • Satellite Server で SSH キーを使用して仮想マシンにアクセスできること。これは、仮想マシンが Satellite Server から設定後のスクリプトを受信するために必要です。

ブート前の初期化の設定方法

cloud-init スクリプトを使用するイメージは通常、イメージに IP アドレスを含むことを回避するため、DHCP サーバーを必要とします。管理された DHCP Capsule が推奨されます。イメージは、システムがブートされた時に開始し、設定完了時に使用するスクリプトまたは設定データを取得するための cloud-init サービスを設定する必要があります。

イメージに含まれる初期スクリプトに依存するイメージからブートした仮想マシンをトラブルシューティングする場合には、以下の項目を確認する必要があります。

  • サブネット上に DHCP サーバーがあること。
  • 仮想マシンには cloud-init サービスがインストールされ、有効化されていること。

仮想マシンイメージの finish および finish スクリプトに対する異なるレベルのサポートに関する詳細は、Red Hat カスタマーポータルの Red Hat ナレッジベースソリューション「What are the supported compute resources for the finish and cloud-init scripts」を参照してください。

3.5. ネットワークサービスの設定

一部のプロビジョニング方法では Capsule Server サービスを使用します。たとえば、ネットワークで Capsule Server を DHCP サーバーとして機能させる必要がある場合があります。また、ネットワークで PXE ブートサービスを使用して、新規ホストにオペレーティングシステムをインストールすることも可能です。この場合には、主な PXE ブートサービスである DHCP、DNS および TFTP を使用できるように Capsule Server を設定する必要があります。

上記のオプションを指定して satellite-installer コマンドを実行し、Satellite Server でこれらのサービスを設定します。

外部の Capsule Server にこれらのサービスを設定するには、satellite-installer --scenario capsule を実行します。

Satellite Server は、Red Hat の CDN への接続など、外部との通信に eth0 を使用します。

手順

Satellite の統合 Capsule でネットワークサービスを設定するには、以下の手順を行います。

  1. satellite-installer コマンドを入力し、必要なネットワークサービスを設定します。

    # satellite-installer --foreman-proxy-dhcp true \
    --foreman-proxy-dhcp-managed true \
    --foreman-proxy-dhcp-gateway "192.168.140.1" \
    --foreman-proxy-dhcp-interface "eth1" \
    --foreman-proxy-dhcp-nameservers "192.168.140.2" \
    --foreman-proxy-dhcp-range "192.168.140.10 192.168.140.110" \
    --foreman-proxy-dhcp-server "192.168.140.2" \
    --foreman-proxy-dns true \
    --foreman-proxy-dns-managed true \
    --foreman-proxy-dns-forwarders "8.8.8.8; 8.8.4.4" \
    --foreman-proxy-dns-interface "eth1" \
    --foreman-proxy-dns-reverse "140.168.192.in-addr.arpa" \
    --foreman-proxy-dns-server "127.0.0.1" \
    --foreman-proxy-dns-zone "example.com" \
    --foreman-proxy-tftp true \
    --foreman-proxy-tftp-managed true
  2. 設定する Capsule Server を検索します。

    # hammer proxy list
  3. Capsule Server の機能をリフレッシュして変更を表示します。

    # hammer proxy refresh-features --name "satellite.example.com"
  4. Capsule Server に設定されたサービスを確認します。

    # hammer proxy info --name "satellite.example.com"

3.5.1. ネットワーク設定の DHCP、DNS および TFTP オプション

DHCP オプション

--foreman-proxy-dhcp
DHCP サービスを有効にします。このオプションは、true または false に設定します。
--foreman-proxy-dhcp-managed
DHCP サービスを管理するため Foreman を有効にします。このオプションを true または false に設定します。
--foreman-proxy-dhcp-gateway
DHCP プールのゲートウェイ。これは、プライベートネットワークにあるホスト用の外部ゲートウェイのアドレスに指定します。
--foreman-proxy-dhcp-interface
要求をリッスンするために DHCP サービスのインターフェースを設定します。これは、eth1 に設定します。
--foreman-proxy-dhcp-nameservers
DHCP でクライアントに提供されたネームサーバーのアドレスを設定します。これは、eth1 の Satellite Server のアドレスに設定します。
--foreman-proxy-dhcp-range
Discovered および Unmanaged サービスのスペース区切りの DHCP プール範囲
--foreman-proxy-dhcp-server
管理する DHCP サーバーのアドレスを設定します。

DNS オプション

--foreman-proxy-dns
DNS サービスを有効にします。このオプションは、true または false に設定します。
--foreman-proxy-dns-managed
DNS サービスを管理するため Foreman を有効にします。このオプションを true または false に設定します。
--foreman-proxy-dns-forwarders
DNS フォワーダーを設定します。これは、お使いの DNS サーバーに設定します。
--foreman-proxy-dns-interface
DNS 要求をリッスンするためのインターフェースを設定します。これは、eth1 に設定します。
--foreman-proxy-dns-reverse
DNS 逆引きゾーン名です。
--foreman-proxy-dns-server
管理する DNS サーバーのアドレスを設定します。
--foreman-proxy-dns-zone
DNS ゾーン名に設定します。

TFTP オプション

--foreman-proxy-tftp
TFTP サービスを有効にします。このオプションは、true または false に設定します。
--foreman-proxy-tftp-managed
TFTP サービスを管理するため Foreman を有効にします。このオプションを true または false に設定します。
--foreman-proxy-tftp-servername
使用する TFTP サーバーを設定します。Capsule Server の IP アドレスを使用していることを確認してください。

satellite-installer --help を実行し、DHCP、DNS、TFTP その他の Satellite Capsule サービスに関するオプションを表示します。

3.5.2. NAT 経由での TFTPサービスの使用

NAT 経由で Satellite TFTP サービスを使用できます。これには、全 NAT ルートまたはファイアウォールで、UDP のポート番号 69 の TFTP サービスを有効にし、TFTP の状態追跡機能も有効にする必要があります。詳細情報は、お使いの NAT デバイスのドキュメントを参照してください。

Red Hat Enterprise Linux 7 で NAT を使用する場合:

以下のコマンドを使用して、UDP のポート番号 69 で TFTP サービスを許可し、カーネルの TFTP 状態追跡モジュールを読み込んで、変更を永続化します。

# firewall-cmd --add-service=tftp && firewall-cmd --runtime-to-permanent

Red Hat Enterprise Linux 6 で NAT を実行する場合:

  1. UDP のポート番号 69 で TFTP サービスを許可するように、ファイアウォールを設定します。

    # iptables -A OUTPUT -i eth0 -p udp --sport 69 -m state \
    --state ESTABLISHED -j ACCEPT
    # service iptables save
  2. ip_conntrack_tftp カーネルの TFTP 状態モジュールを読み込みます。/etc/sysconfig/iptables-config ファイルで、IPTABLES_MODULES の場所を特定して以下のように ip_conntrack_tftp を追加します。

    IPTABLES_MODULES="ip_conntrack_tftp"

3.6. Satellite Server へのドメインの追加

Satellite Server はネットワーク上の各ホストのドメイン名を定義します。Satellite Server には、ドメイン名を割り当てる Capsule Server とドメインに関する情報が必要です。

既存のドメインの確認

Satellite Server には、Satellite Server のインストールの一環として関連するドメインがすでに作成されている可能性があります。コンテキストを 任意の組織 および 任意のロケーション に切り替えてから、ドメインの一覧でこれが存在するかどうかを確認します。

DNS サーバー設定の考慮事項

DNS レコードの作成時に、Satellite は競合する DNS を検索して、ホスト名が使用されていないことを確認します。これにより、以下の DNS サーバーの 1 つに対する実行がチェックされます。

  • システム全体のリゾルバー (Adminster > Settings > Query local nameserverstrue に設定されている場合)
  • ホストに関連付けられたサブネットで定義されているネームサーバー
  • ホストに関連付けられたドメイン名から SOA に照会される信頼できる NS レコード

DNS 競合の解決時にタイムアウトが発生した場合は、次の設定を確認してください。

  • サブネットネームサーバーは、Satellite Server から到達可能である必要があります。
  • ドメイン名には、Satellite Server から入手できる Start of Authority (SOA) レコードが必要です。
  • `/etc/resolv.conf` ファイルのシステムリゾルバ−には有効で、機能する設定が必要です。

手順

Satellite にドメインを追加するには、以下の手順を行います。

  1. Satellite Web UI で、インフラストラクチャー > ドメイン に移動して、ドメインの作成 をクリックします。
  2. DNS ドメイン フィールドに、完全な DNS ドメイン名を入力します。
  3. フルネーム フィールドで、プレーンテキストのドメイン名を入力します。
  4. パラメーター タブでは、任意のドメインレベルのパラメーターを設定し、このドメインに割り当てられたホストに適用します。たとえば、テンプレートで使用するユーザー定義ブール値またはストリングパラメーターなどです。
  5. パラメーターの追加 をクリックし、名前 および フィールドに入力します。
  6. ロケーション タブをクリックして、ドメインがある場所を追加します。
  7. 組織 タブをクリックして、ドメインが属する組織を追加します。
  8. 送信 をクリックして変更を保存します。

CLI をご利用の場合

hammer domain create コマンドを使用して、ドメインを作成します。

# hammer domain create --name "domain_name.com" \
--description "My example domain" --dns-id 1 \
--locations "My_Location" --organizations "My_Organization"

この例では --dns-id オプションは 1 を使用しています。1 は、Satellite Server 上の 統合 Capsule ID です。

3.7. Satellite Server へのサブネットの追加

Satellite は、新規ホストのインターフェースを設定するので、サブネットごとの情報を Satellite Server に追加する必要があります。インターフェースを設定するには、Satellite Server には、これらのインターフェースを接続するネットワークに関する全情報を含める必要があります。

手順

Satellite Server にサブネットを追加するには、以下の手順を行います。

  1. Satellite Web UI で、インフラストラクチャー > サブネット に移動して、サブネットウィンドウで サブネットの作成 をクリックします。
  2. 名前 フィールドに、サブネットの名前を入力します。
  3. 説明 フィールドには、サブネットの説明を入力します。
  4. ネットワークアドレス フィールドには、サブネットのネットワークアドレスを入力します。
  5. ネットワークのプレフィックス フィールドには、サブネットのネットワークプレフィックスを入力します。
  6. ネットワークマスク フィールドには、サブネットのネットワークマスクを入力します。
  7. ゲートウェイアドレス フィールドには、サブネットの外部ゲートウェイを入力します。
  8. プライマリー DNS サーバー フィールドには、サブネットのプライマリー DNS を入力します。
  9. セカンダリー DNS サーバー には、、サブネットのセカンダリー DNS を入力します。
  10. IPAM には、IP アドレス管理 (IPAM) に使用するメソッドを選択します。IPAM の詳細は、「ネットワークリソース」を参照してください。
  11. 選択した IPAM メソッドの情報を入力します。リモート実行 タブをクリックして、リモート実行を制御する Capsule を選択します。
  12. ドメイン タブをクリックして、このサブネットに適用するドメインを選択します。
  13. Capsule タブをクリックして、DHCP、TFTP、および逆引き DNS サービスなど、サブネットの各サービスに適用するカプセルを選択します。
  14. パラメーター タブをクリックして、任意のサブネットレベルのパラメーターを設定し、このサブネットに割り当てられたホストに適用します。たとえば、テンプレートで使用できるユーザー定義ブール値またはストリングパラメーターなどです。
  15. ロケーション タブをクリックして、この Capsule を使用するロケーションを選択します。
  16. 組織 タブをクリックして、この Capsule を使用する組織を選択します。
  17. 送信 をクリックしてサブネットの情報を保存します。

CLI をご利用の場合

以下のコマンドでサブネットを作成します。

# hammer subnet create --name "My_Network" \
--description "your_description" \
--network "192.168.140.0" --mask "255.255.255.0" \
--gateway "192.168.140.1" --dns-primary "192.168.140.2" \
--dns-secondary "8.8.8.8" --ipam "DHCP" \
--from "192.168.140.111" --to "192.168.140.250" --boot-mode "DHCP" \
--domains "example.com" --dhcp-id 1 --dns-id 1 --tftp-id 1 \
--locations "My_Location" --organizations "My_Organization"
注記

この例では、--dhcp-id--dns-id、および --tftp-id オプションは 1 を使用します。1 は Satellite Server の統合 Capsule の ID です。