DHCPまたは動的ホスト構成プロトコルは、システムが他のネットワークデバイスとの通信に必要なネットワーク設定を起動時に自動的に取得できるネットワークで使用されるプロトコルです。構内でDHCPサーバーを使用すると、すべてのネットワークホストのネットワーク設定の管理が大幅に簡素化され、マシンのネットワーク構成の管理ポイントを一元化することもできます。 DHCPを使用することで、起動時にIP設定を構成する必要があるすべてのデスクトップマシン、携帯電話、またはその他のネットワークデバイスが、ネットワーク設定と同じ一連の構成を確実に受信できるようにすることもできます。
DHCP サーバーは、ネットワークにインタラクティブに参加するために必要なネットワーク設定の構成に関連する膨大な数のパラメーターとオプションを提供できます。 DHCPサーバーが提供できる通常の設定には、ネットワークに関連するIPアドレスと、所属するネットワークのブロードキャストアドレス、ネットワークのネットマスク、DNSネームサーバー、ネットワーク出口のIPアドレスなどの他の情報があります。ポイント、通常はゲートウェイルーター、ネットワークからのNTPサーバーのアドレス、デバイスが時刻を正確に同期するために必要なもの、およびその他のよりエキゾチックな設定。
管理するコンピューターが数台しかない場合(通常はデスクトップまたはラップトップ)、手動アドレス指定が推奨されます。しかし、現在、小規模なネットワークデバイスやモバイルデバイスの爆発的な増加に伴い、組み込みデバイスの場合、これらの各デバイスの静的/手動構成は、不可能ではないにしても、非常に困難であることが判明する可能性があります。これは、構内にDHCPサーバーをインストールして構成する際に考慮すべき主な要因です。 DHCPサーバーは、各ネットワーク関連デバイスを手動で構成するために投資する時間と労力を制限し、どのIPがどのデバイスに設定されているかを示すテーブルを維持できます。
ただし、構内にサーバーを展開する場合は、静的/手動のIPアドレスの割り当てが常に必要です。サーバーは常に静的IPアドレスで構成する必要があります。ただし、DHCPは、接続されたインターフェイスのMACアドレスに基づいてデバイスに同じIPアドレスを解放することにより、サーバーの静的IPアドレスを簡素化するように構成できます。
それでは、DHCPサーバーがネットワークでどのように動作するかを見てみましょう。 DHCPネゴシエーションは、以下の手順で説明されているように展開されます。
- ネットワークデバイス、または静的アドレスを割り当てる必要があるクライアントは、「DHCP検出」というメッセージを使用してネットワークにブロードキャストを送信します。送信されるメッセージには、クライアントデバイスのMACアドレスも含まれます。クライアントは、DHCPサーバーがネットワーク内のどこかにあるかどうかを識別するためにこのメッセージを送信し、これらのタイプの着信メッセージをリッスンします。
- リスニングDHCPサーバーはブロードキャストフレームを受信し、「DHCPオファー」メッセージでクライアントに応答します。オファーには、クライアントをネットワークに登録するために必要なネットワーク設定と、クライアント自身のIPアドレスが含まれています。オファーのソースを正しく識別するためのクライアント。通常、オファーには、ネットワークのIPアドレス、サブネットマスク、デフォルトゲートウェイ、およびその他のパラメーターが含まれます。構内に複数のDHCPサーバーが構成されている場合は、クライアントがオファーを受信できるようにブロードキャストメッセージが送信されます。
- オファーを受け取った後、クライアントは受け取った設定に満足すると、「DHCP要求」メッセージをDHCPサーバーに送り返し、提供された正式なネットワーク設定に同意することを通知します。オファーの記録が含まれているため、オファーを送信したサーバーのみが要求されたIPアドレスを確保します。この場合も、クライアントが提供されたIPアドレスの割り当てを正式に開始していないために、応答した可能性のある他のすべてのDHCPサーバーにブロードキャストとして要求が送信されます。
- 最後に、DHCPサーバーは「DHCPACK」ユニキャストメッセージで応答します。この段階では、IPアドレスと他のすべてのネットワークパラメータは、クライアントによる使用が承認されているため、クライアントデバイスに送信されます。 ACKメッセージはユニキャストとして送信されますが、代わりにブロードキャストされる場合があります。
Internet Software Consortiumは、Linuxで最も使用されているDHCPサーバー(通常はISC DHCPサーバー)の主な作成者および開発者です。 Debian 9では、一致するバイナリパッケージは isc-dhcp-serverと呼ばれます 。さらに、このチュートリアルでは、Debian9にDHCPサーバーをインストールして構成する方法を学習します。
- Debian9のフレッシュインストール。
- DHCPサーバーがリッスンするネットワークインターフェイス用に構成された静的IPアドレス。
- root権限を持つアカウントまたはrootアカウントへの直接アクセス。
Debian9にISCDHCPサーバーをインストールするには、まず、以下のコマンドを発行して、パッケージツリーが最新のソフトウェアバージョンであることを確認する必要があります。
sudo apt-get update
次に、ローカルパッケージツリーがリモートソースと同期した後、次のスクリーンショットに示すように、ISC DHCPソフトウェアで利用可能なすべてのコンパイル済みパッケージを検索するために、以下のコマンドを発行します。
sudo apt search isc-dhcp
ISCDHCPサーバーをインストールする
これで、ISC DHCPサーバーで使用可能なすべてのパッケージのリストが得られたので、以下のコマンドを発行してISCDHCPサーバーをインストールします。
sudo apt install isc-dhcp-server
DHCPサーバーのメイン構成ファイルはdhcpd.conf 、 / etc / dhcp /にあります ディレクトリ。構成ファイルには、先頭のハッシュマーク(#)で示される多くのコメントが含まれます。コメントされていない他のすべての行は、パラメータのいずれかです。 DHCPサーバー(dhcpdデーモンの一般的な構成機能に使用)または宣言 、サーバーがクライアントデバイスに送信できるネットワークIP範囲とIPアドレスまたはその他のネットワーク値を記述します。
新しい空の構成ファイルの編集を実際に開始する前に、以下のコマンドを発行して元のファイルをバックアップしてください。
cp /etc/dhcp/dhcpd.conf{,.backup}
cat /dev/null > /etc/dhcp/dhcpd.conf
DHCPの構成
次に、以下の抜粋に示すように、dhcp構成ファイルの編集を開始します。
nano /etc/dhcp/dhcpd.conf
dhcpd.confファイルの抜粋:
ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;
#ping true;
option domain-name-servers 172.27.15.2, 10.72.81.2;
option domain-name "example.com";
authorative;
log-facility local7;
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.50 192.168.1.115;
option subnet-mask 255.255.255.0;
option domain-name-servers 192.168.1.254, 10.128.254.254;
option domain-name “example.com”;
option routers 192.168.1.1;
option netbios-name-servers 192.168.1.3;
option netbios-node-type 8;
get-lease-hostnames true;
use-host-decl-names true;
default-lease-time 600;
max-lease-time 7200;
}
DHCP構成パラメーターの説明:
dhcp構成ファイルでは、すべてのパラメーター行がセミコロン(;)で終わります。 domain-name-servers など、一部のパラメータには複数の値が含まれる場合があります 2つのIPアドレスがコンマで区切られています。ハッシュタグ#で始まる行はコメントであり、DHCPサーバーによって解析されません。
いくつかの一般的なDHCPサーバーパラメータ:
- default-lease-time =デフォルトのリース時間を秒単位で設定する整数。
- 最大リース時間 =最大リース時間を秒単位で設定する整数
- ping =ブール値をチェックtrueの場合、サーバーはそのアドレスのリースをクライアントに割り当てる前にアドレスにpingを実行します。
- option domain-name–servers =クライアントが使用する可能性のある1つまたは複数のDNSサーバーのアドレス。
- オプションドメイン名 =クライアントに使用を許可するドメインの名前。
- 権威 =サーバーは信頼できます。このDHCPサーバーは、誤って構成されたクライアントにDHCPNAKメッセージを送信する必要があります
- log-facility local7 =ログをsyslogファシリティlocal7に送信する
- サブネット192.168.1.0ネットマスク255.255.255.0 {ここに含まれるもの} 192.168.1.10ネットワークのサブネット宣言
- 範囲192.168.1.50192.168.1.115 =サーバーがIPをリースするIPアドレス範囲を定義します。
- オプションルーター =ゲートウェイまたはネットワーク出口点のIPアドレスを定義します。
- option netbios-name-servers = Windows上でファイルを共有するためにSMB/CIFSプロトコルによって使用されるNetBIOSネームサービス(NBNS)サーバーまたはWindowsインターネットネームサービス(WINS)サーバーのIPアドレス。
- option netbios-node-type = NetBIOSクライアントが名前解決を試みる方法のコード。値は、1はブロードキャストを使用し、2はWINSサーバーを使用し、4は最初にブロードキャストを試行してからWINSサーバーを試行し、8はWINSサーバーを最初に試行してからブロードキャストを試行します。
提示された値を、独自のネットワークに固有のパラメータに置き換える必要があります。
メインの構成ファイルを編集して独自のIP範囲を宣言したら、 / etc / default / isc-dhcp-serverを開きます。 ファイルを作成してINTERFACESv4を置き換えます 次の図に示すように、ネットワークに構成されるネットワークインターフェイスの名前を持つパラメーター。 ipを使用する またはifconfig すべてのネットワークインターフェイスを一覧表示するコマンド。
INTERFACESv4="ens33"
最後に、すべての変更を行った後、dhcpサーバーを再起動して新しい構成を適用し、以下のコマンドを発行してサービスステータスを確認します。
systemctl restart isc-dhcp-server
systemctl status isc-dhcp-server
これで、クライアントはdhcpサーバーからIPリースの受信を開始するはずです。クライアントに付与されたアドレスをリアルタイムで一覧表示するには、以下に示すように、tailコマンドを発行してログファイルの内容を検査する必要があります。
tail -f /var/log/syslog
予約済みIPアドレスを配信するようにDHCPサーバーを構成する
サーバーなどのネットワークからの特別なネットワークデバイスに固定IPアドレスを割り当てるようにDHCPサーバーを構成するために、固定IPアドレスを付与するホストの名前とメディアアクセス制御(MAC)を含む宣言を使用しますネットワークへのネットワークインターフェイスプラグインのアドレス。予約されたIPアドレスは、クライアントが起動するたびにクライアントに割り当てられます。 DHCPサーバーでネットワーク用に宣言したIP範囲外から固定IPアドレスを予約する必要があります。固定IPアドレスの宣言は、ネットワーク範囲に対して宣言した行で囲む必要があり、以下に示すように、次の内容が含まれている必要があります。ただし、予約済みのIPアドレスエントリは、サブネット宣言の後に追加することもできます。
nano /etc/dhcp/dhcpd.conf
修正されたIP宣言のサンプル:
subnet 192.168.1.0 netmask 255.255.255.0 {
range declarations….
host WIN-SERVER {
hardware ethernet 00:0c:19:bc:2e:e1;
fixed-address 192.168.1.7;}
}
固定IPアドレスの行を追加したら、次のコマンドを発行して、変更を適用するためにDHCPサーバーを再起動します。
systemctl restart isc-dhcp-server
それで全部です!構内のDebian9にDHCPサーバーを正常にインストールして構成しました。