第25章 DHCP

目次

25.1. YaSTによるDHCPサーバの設定
25.2. DHCPソフトウェアパッケージ
25.3. DHCPサーバdhcpd
25.4. 詳細情報

概要

DHCP(Dynamic Host Configuration Protocol)の目的は、ネットワーク設定を各ワークステーションでローカルに行うのではなく、(サーバから)一元的に割り当てることです。DHCPを使用するように設定されたクライアントは、自身の静的アドレスを制御できません。サーバからの指示に従って、すべてが自動的に設定されるからです。クライアント側でNetworkManagerを使用する場合は、クライアントを設定する必要はありません。これは、環境を変更し、一度に1つのインタフェースしかない場合に便利です。DHCPサーバが実行しているマシン上ではNetworkManagerを使用しないでください。

[Tip]IBM System z:DHCPサポート

IBM System zプラットフォーム上では、OSAおよびOSA Expressネットワークカードを使用しているインタフェースに対してのみDHCPを使用できます。DHCPの自動環境設定機能に必要なMACアドレスを持つのは、これらのカードだけです。

DHCPサーバの設定方法の1つとして、ネットワークカードのハードウェアアドレス(ほとんどの場合、固定)を使用して各クライアントを識別し、そのクライアントがサーバに接続するたびに同じ設定を提供する方法があります。DHCPはサーバが用意したアドレスプールから、アドレスを各関連クライアントに動的に割り当てるように設定することもできます。後者の場合、DHCPサーバは要求を受信するたびに、接続が長期にわたる場合でも、クライアントに同じアドレスを割り当てようと試みます。これは、ネットワークにアドレス以上のクライアントが存在しない場合にのみ機能します。

DHCPは、システム管理者の負担を軽減します。サーバの環境設定ファイルを編集して、アドレスに関するあらゆる変更(大きな変更であっても)と一般的なネットワークの環境設定を一元的に実装できます。これは、多数のワークステーションをいちいち再設定するのに比べてはるかに簡単です。また、特に新しいコンピュータをネットワークに統合する場合、IPアドレスをプールから割り当てられるので、作業が楽になります。適切なネットワークの環境設定をDHCPサーバから取得する方法は、日常的に、ラップトップをさまざまなネットワークで使用する場合に特に便利です。

この章では、192.168.2.1をゲートウェイとし、DHCPサーバをワークステーション192.168.2.0/24と同じサブネットで実行します。このサーバは、固定IPアドレス192.168.2.254を持ち、2つのアドレス範囲(192.168.2.10192.168.2.20および192.168.2.100192.168.2.200)を操作対象とします。

DHCPサーバは、クライアントが使用するIPアドレスとネットマスクを供給するだけでなく、ホスト名、ドメイン名、ゲートウェイ、およびネームサーバアドレスも供給します。この他にも、DHCPを使用して一元的に設定できるパラメータがあり、たとえば、クライアントが現在時刻をポーリングするタイムサーバやプリントサーバも設定可能です。

25.1. YaSTによるDHCPサーバの設定

DNSサーバをインストールするには、YaSTを起動して、ソフトウェア+ソフトウェア管理の順に選択します。フィルタ+パターンの順に選択してから、DHCPおよびDNSサーバを選択します。依存関係のあるパッケージのインストールを確認して、インストールプロセスを完了します。

[Important]LDAPのサポート

SUSE® Linux Enterprise DHCPモジュールは、サーバ設定をローカルに(DHCPサーバを実行するホスト上に)保存するか、その設定データをLDAPサーバに管理させるように、セットアップできます。LDAPを使用するには、LDAP環境を設定してからDHCPサーバを設定してください。

LDAPの詳細については、第4章 LDAP—A Directory Service (↑Security Guide (セキュリティガイド))を参照してください。

YaSTのDHCPモジュール(yast2-dhcp-server)を使用すると、ローカルネットワーク用に独自のDHCPサーバをセットアップできます。このモジュールは、ウィザードモードまたはエキスパート設定モードで実行できます。

25.1.1. 初期設定(ウィザード)

このモジュールを初めて起動すると、ウィザードが開始して、サーバ管理に関していくつかの基本的な事項を決定するように要求されます。この初期セットアップを完了すると、必要最低限の機能が設定された基本的なサーバ設定が生成されます。エキスパートモードは、さらに高度な設定タスクを行う場合に使用できます。次の手順に従います。

  1. そのリストから、DHCPサーバがリスンするインタフェースを選択し、選択をクリックします。この後、選択したインタフェースのファイアウォールを開くを選択して、このインタフェース用のファイアウォールを開き、次へをクリックします。詳細については、図25.1「DHCPサーバ:カードの選択」を参照してください。

    図25.1 DHCPサーバ:カードの選択

    DHCPサーバ:カードの選択

  2. チェックボックスを使って、LDAPサーバがDHCP設定を自動的に格納する必要があるかどうかを指定します。エントリフィールドに、DHCPサーバで管理する全クライアントのネットワークを指定します。この指定には、ドメイン名、タイムサーバのアドレス、プライマリネームサーバとセカンダリネームサーバのアドレス、印刷サーバとWINSサーバのアドレス(WindowsクライアントとLinuxクライアントの両方が混在するネットワークを使用する場合)、ゲートウェイアドレスおよびリース期間が含まれます。詳細については、図25.2「DHCPサーバ:グローバル設定」を参照してください。

    図25.2 DHCPサーバ:グローバル設定

    DHCPサーバ:グローバル設定

  3. クライアントに対する動的IPアドレスの割り当て方法を設定します。そのためには、サーバがDHCPクライアントに割当て可能なIPアドレスの範囲を指定します。これらのアドレスは、すべて同じネットマスクを使用する必要があります。また、クライアントがリースの延長を要求せずにIPアドレスを維持できるリース期間も指定します。必要に応じて、最大リース期間、つまりサーバが特定のクライアントのIPアドレスを保持する期間を指定します。詳細については、図25.3「DHCPサーバ:ダイナミックDHCP」を参照してください。

    図25.3 DHCPサーバ:ダイナミックDHCP

    DHCPサーバ:ダイナミックDHCP

  4. DHCPサーバ開始方法を定義します。システムのブート時にDHCPサーバを自動的に起動するか、必要に応じて(たとえば、テスト目的で)手動で起動するか指定します。完了をクリックして、サーバの環境設定を完了します。詳細については、図25.4「DHCPサーバ:起動」を参照してください。

    図25.4 DHCPサーバ:起動

    DHCPサーバ:起動

  5. 前のステップで説明した方法で動的DHCPを使用するかわりに、アドレスを疑似静的方式で割り当てるようにサーバを設定することもできます。下部のエントリフィールドを使用して、この方法で管理するホストのリストを指定します。具体的には、[ 名前 と[ IPアドレス に、この種のクライアントに与える名前とIPアドレスを指定し、さらに[ ハードウェアアドレス と[ ネットワークタイプ (トークンリングまたはイーサネット)を指定します。上部に表示されるクライアントリストを修正するには、[ 追加 、[ 編集 、および[ 削除 を使用します。詳細については、図25.5「DHCPサーバ:ホスト管理」を参照してください。

    図25.5 DHCPサーバ:ホスト管理

    DHCPサーバ:ホスト管理

25.1.2. DHCPサーバ設定(エキスパート)

前述の環境設定方法に加えて、DHCPサーバのセットアップを詳細に変更できるようにエキスパート設定モードが用意されています。エキスパート環境設定を開始するには、[スタートアップ]ダイアログの[DHCPサーバエキスパート環境設定]をクリックします(図25.4「DHCPサーバ:起動」を参照)。

chroot環境と宣言

この最初のダイアログでDHCPサーバの起動を選択し、既存の環境設定を編集可能にします。DHCPサーバの動作のうち、重要なのはchroot環境またはchroot jailで動作してサーバホストを保護する機能です。DHCPサーバが外部からの攻撃にさらされるとしても、攻撃者はchroot jailの中にとどまるためシステムの残りの部分には進入できません。ダイアログの下部には、定義済みの宣言を示すツリービューが表示されます。これらの修正には、追加削除、および編集を使用します。詳細を選択すると、上級者用のダイアログが追加表示されます。図25.6「DHCPサーバ:Chroot Jailと宣言」を参照してください。 追加を選択後、追加する宣言の種類を定義します。詳細から、サーバのログファイルの表示、TSIGキー管理の設定、およびDHCPサーバのセットアップに応じたファイアウォール設定の調整を行うことができます。

図25.6 DHCPサーバ:Chroot Jailと宣言

DHCPサーバ:Chroot Jailと宣言

宣言タイプの選択

DHCPサーバのグローバルオプションは、多数の宣言で構成されています。このダイアログでは、宣言タイプサブネットホスト共有ネットワークグループアドレスプール、およびクラスを設定できます。この例は、新しいサブネットワークの選択を示しています(図25.7「DHCPサーバ:宣言タイプの選択」を参照)。

図25.7 DHCPサーバ:宣言タイプの選択

DHCPサーバ:宣言タイプの選択

サブネットの設定

このダイアログでは、IPアドレスとネットマスクを使用して新しいサブネットを指定できます。ダイアログの中央部分で追加編集、および削除を使用して、選択したサブネットのDHCPサーバ起動オプションを変更します。サブネットのダイナミックDNSを設定するには、ダイナミックDNSを選択します。

図25.8 DHCPサーバ:サブネットの設定

DHCPサーバ:サブネットの設定

TSIGキー管理

前のダイアログでダイナミックDNSを設定するように選択した場合は、セキュアゾーン転送用のキー管理を設定できます。OKを選択すると別のダイアログが表示され、ダイナミックDNSのインタフェースを設定できます(図25.10「DHCPサーバ:ダイナミックDNS用のインタフェースの設定」を参照)。

図25.9 DHCPサーバ:TSIGの設定

DHCPサーバ:TSIGの設定

ダイナミックDNS:インタフェースの設定

ここでは、このサブネットでダイナミックDNSを有効にするを選択して、サブネットのダイナミックDNSを有効化できます。その後、ドロップダウンリストを使用して正引きゾーンと逆引きゾーン両方のTSIGキーを選択し、そのキーがDNSとDHCPサーバに共通であることを確認します。グローバルダイナミックDNS設定の更新を使用すると、ダイナミックDNS環境に従ってグローバルDHCPサーバ設定を自動的に更新および調整できます。最後に、ダイナミックDNSに従って更新する正引きゾーンと逆引きゾーンについて、プライマリネームサーバの名前を個別に指定し、この2つのゾーンを定義します。OKを選択すると、サブネットの設定ダイアログに戻ります(図25.8「DHCPサーバ:サブネットの設定」を参照)。[ OK を選択すると、エキスパート設定ダイアログに戻ります

図25.10 DHCPサーバ:ダイナミックDNS用のインタフェースの設定

DHCPサーバ:ダイナミックDNS用のインタフェースの設定

ネットワークインタフェースの環境設定

DHCPサーバがリスンするインタフェースを定義し、ファイアウォール設定を調整するには、[エキスパート環境設定]ダイアログで詳細+インタフェースの設定の順に選択します。表示されるインタフェースリストから、DHCPサーバがリッスンするインタフェースを1つ以上選択します。すべてのサブネット内のクライアントがサーバと通信できるようにする必要があり、サーバホストでもファイアウォールを実行する場合は、ファイアウォールを適宜調整してください。調整するには、Adapt Firewall Settings(ファイアウォール設定の調整)を選択します。設定を完了した後、OKをクリックして元のダイアログに戻ると、YaSTがSuSEfirewall2のルールを、新しい条件に調整します(図25.11「DHCPサーバ:ネットワークインタフェースとファイアウォール」を参照)。

図25.11 DHCPサーバ:ネットワークインタフェースとファイアウォール

DHCPサーバ:ネットワークインタフェースとファイアウォール

設定ステップをすべて完了した後、OKを選択してダイアログを閉じます。これでサーバは新規環境設定に従って起動します。

25.2. DHCPソフトウェアパッケージ

お使いの製品では、DHCPサーバとDHCPクライアントのどちらも利用できます。用意されているDHCPサーバは、Internet Systems Consortiumによって公開されたdhcpdです。クライアント側で、dhcp-client(ISCから)またはdhcpcdパッケージにあるDHCPクライアントデーモンの、いずれかのDHCPクライアントプログラムを選択します。

デフォルトでは、dhcpcdがインストールされています。このプログラムは非常に扱いやすく、システムブート時に自動的に起動して、DHCPサーバを監視します。環境設定ファイルは必要ありません。標準的な設定であればほとんどの場合、そのまま使用できます。複雑な状況で使用する場合は、環境設定ファイル/etc/dhclient.confによって制御されるISC dhcp-clientを使用します。

25.3. DHCPサーバdhcpd

DHCPシステムの中核には、動的ホスト環境設定プロトコルデーモンがあります。このサーバは、環境設定ファイル/etc/dhcpd.confに定義された設定に従ってアドレスを「リース」し、その使用状況を監視します。システム管理者は、このファイルのパラメータと値を変更して、プログラムの動作をさまざまな方法で調整できます。例25.1「環境設定ファイル/etc/dhcpd.conf」で、/etc/dhcpd.confファイルの基本的な例を見てみましょう。

例25.1 環境設定ファイル/etc/dhcpd.conf

default-lease-time 600;         # 10 minutes
max-lease-time 7200;            # 2  hours

option domain-name "example.com";
option domain-name-servers 192.168.1.116;
option broadcast-address 192.168.2.255;
option routers 192.168.2.1;
option subnet-mask 255.255.255.0;

subnet 192.168.2.0 netmask 255.255.255.0
 {
  range 192.168.2.10 192.168.2.20;
  range 192.168.2.100 192.168.2.200;
 }

DHCPサーバを用いてネットワーク内でIPアドレスを割り当てるには、このサンプルのような環境設定ファイルを用意すれば十分です。各行の末尾にセミコロンが付いていることに注意してください。これがなければ、dhcpdは起動しません。

サンプルファイルは、3つのセクションに分けられます。最初のセクションは、要求側クライアントにIPアドレスがリースされた場合に、デフォルトで最大何秒間経過すればリースの更新が必要になるか(デフォルトリース時間)が定義されます。このセクションには、DHCPサーバがコンピュータにIPアドレスを割り当てた場合に、コンピュータが更新を求めずにそのIPアドレスを保持できる最大時間(max-lease-time)も指定されています。

2つ目のセクションでは、基本的なネットワークパラメータがグローバルレベルで定義されています。

  • option domain-nameの行は、ネットワークのデフォルトドメインを定義してます。

  • option domain-name-serversエントリには、IPアドレスをホスト名(また逆方向に)に解決するためのDNSサーバを最高3つを指定します。ネームサーバは、DHCPをセットアップする前に、使用しているマシン上またはネットワーク上のどこか他の場所で設定するのが理想的です。ネームサーバではまた、各ダイナミックアドレスに対してホスト名を定義し、またその逆も定義する必要があります。独自のネームサーバを設定する方法については、第24章 ドメインネームシステムを参照してください。

  • option broadcast-addressの行は、要求しているクライアントで使用されるブロードキャストアドレスを定義します。

  • option routersの行では、ローカルネットワークでホストに配信できないデータパケットの送信先を(指定されたソース/ターゲットホストアドレスおよびサブネットに応じて)が指定されます。ほとんどの場合、特に小規模ネットワークでは、このルータはインターネットゲートウェイと同一です。

  • option subnet-maskでは、クライアントに割り当てるネットマスクを指定します。

ファイルの最後のセクションでは、サブネットマスクを含め、ネットワークを定義します。最後に、DHCPが対象のクライアントにIPアドレスを割り当てるために使用するアドレス範囲を指定します。例25.1「環境設定ファイル/etc/dhcpd.conf」では、クライアントに、192.168.2.10192.168.2.20の間および192.168.2.100192.168.2.200の間の任意のアドレスを与えることができます。

これら数行を編集すると、rcdhcpdstartコマンドを使用してDHCPデーモンを有効にできるようになります。DHCPデーモンはすぐに使用できます。rcdhcpd check-syntaxコマンドを使用すると、簡単な構文チェックを実行できます。サーバでエラーが発生して中断する、起動時にdoneが返されないなど、環境設定に関して予期しない問題が発生した場合は、メインシステムログ/var/log/messagesまたはコンソール 10 (Ctrl+Alt+F10)で情報を探せば、原因が突き止められます。

デフォルトのSUSE Linux Enterprise Serverシステムでは、セキュリティ上の理由から、chroot環境でDHCPデーモンを起動します。デーモンが見つけられるように、環境設定ファイルは、chroot環境にコピーします。このファイルは、rcdhcpd startコマンドによって自動的にこのファイルがコピーされるので、通常は、手動でコピーする必要はありません。

25.3.1. 固定IPアドレスを持つホスト

DHCPは、事前定義の静的アドレスを特定のクライアントに割り当てる場合にも使用できます。明示的に割り当てられるアドレスは、プールから割り当てられる動的アドレスに常に優先します。たとえばアドレスが不足していて、サーバがクライアント間でアドレスを再配布する必要がある場合でも、静的アドレスは動的アドレスと違って期限切れになりません。

静的アドレスを使用して設定されるクライアントを識別するために、dhcpdは、ハードウェアアドレス(6つのオクテットペアから成るグローバルにユニークな固定数値コード)を使用して、すべてのネットワークデバイスを識別します(たとえば、00:30:6E:08:EC:80)。たとえば、例25.2「環境設定ファイルへの追加」のような数行を例25.1「環境設定ファイル/etc/dhcpd.conf」に示す環境設定ファイルに追加すると、DHCPデーモンはあらゆる状況で、対応するホストに同じデータのセットを割り当てます。

例25.2 環境設定ファイルへの追加

host jupiter {
hardware ethernet 00:30:6E:08:EC:80;
fixed-address 192.168.2.100;
}

クライアントの名前を1行目に(hosthostname(ここではjupiterに置き換わる))、MACアドレスを2行目に入力します。LinuxホストでMACアドレスを確認するには、ip link showコマンドの後にネットワークデバイス(たとえば、eth0)を指定して実行します。出力例を次に示します。

link/ether 00:30:6E:08:EC:80

上の例では、MACアドレス00:30:6E:08:EC:80のネットワークカードが搭載されたクライアントに、IPアドレス192.168.2.100とホスト名jupiterが自動的に割り当てられます。指定するハードウェアの種類は、ほとんどの場合ethernetですが、IBMシステムでよく使用されるtoken-ringもサポートされています。

25.3.2. SUSE Linux Enterprise Serverバージョン

セキュリティ向上のため、ISC DHCPサーバのSUSE Linux Enterprise Serverバージョンは、Ari Edelkind氏開発の非root/chrootパッチが適用されて出荷されます。これにより、dhcpdをユーザID nobodyで実行したり、chroot環境で実行したりできます(/var/lib/dhcp)。これの機能を使用するには、環境設定ファイルdhcpd.conf/var/lib/dhcp/etcに存在する必要があります。initスクリプトは、起動時に環境設定ファイルをこのディレクトリに自動的にコピーします。

この機能に関するサーバの動作は、環境設定ファイル/etc/sysconfig/dhcpdのエントリを使用して制御できます。非chroot環境でdhcpdを実行するには、/etc/sysconfig/dhcpd内の変数DHCPD_RUN_CHROOTEDnoに設定します。

chroot環境内であっても、dhcpdを有効にしてホスト名を解決するには、次のような他の環境設定ファイルをコピーする必要があります。

  • /etc/localtime

  • /etc/host.conf

  • /etc/hosts

  • /etc/resolv.conf

これらのファイルは、initスクリプトの起動時に、/var/lib/dhcp/etc/にコピーされます。コピーされたファイルが/etc/ppp/ip-upのようなスクリプトによって動的に変更されている場合は、必要な変更箇所がないか注意する必要があります。ただし、環境設定ファイルに(ホスト名でなく) IPアドレスだけを指定している場合は、これについて考える必要はありません。

環境設定の中に、chroot環境にコピーすべき追加ファイルが存在する場合は、etc/sysconfig/dhcpdファイルのDHCPD_CONF_INCLUDE_FILES変数で、これらのファイルを設定します。syslog-ngデーモンの再起動後もDHCPロギング機能が継続して動作するようにするには、/etc/sysconfig/syslogファイル内のSYSLOGD_ADDITIONAL_SOCKET_DHCPエントリを指定します。

25.4. 詳細情報

DHCPの詳細については、Internet Systems ConsortiumのWebサイト(http://www.isc.org/products/DHCP/)を参照してください。また、dhcpddhcpd.confdhcpd.leases、およびdhcp-optionsのマニュアルページにも詳細が記載されています。


SUSE Linux Enterprise Server 管理ガイド 11 SP3