DHCP(動的ホスト構成プロトコルの略)は、一意のIPアドレスおよびその他の情報をクライアントシステムに動的に割り当てます。 DHCPによって割り当てられる情報には、ホスト名、ドメイン名、デフォルトゲートウェイおよびDNSサーバーのIPアドレスなどが含まれます。これにより、システム管理者は、各クライアントシステムにIPアドレスと関連情報を手動で割り当てる手間を省くことができます。通常、家庭や中小企業のセットアップでは、ルーターはDHCPサーバーの役割を果たします。ただし、大規模なセットアップでは、DHCPサーバーとして機能する専用サーバーを構成する必要があります。 Linuxでは、DHCPサーバーを簡単にセットアップし、クライアントにIPアドレスを割り当てることができます。
このチュートリアルでは、クライアントにIPアドレスを自動的に割り当てるようにLinuxでDHCPを構成する方法を示します。
DHCPのしくみ
DHCPがどのように機能するかについて少し説明しましょう:
クライアントとDHCPサーバーが同じ有線ネットワークに接続されているシナリオを考えてみましょう。
- クライアントマシンの電源がオンになると、ブロードキャストメッセージ DHCPDISCOVERが送信されます。 ネットワーク上のすべてのデバイスに。
- このメッセージがDHCPサーバーに到達すると、 DHCPOFFERが返送されます。 クライアントへのIPアドレスを含むメッセージ。
- 次に、クライアントは DHCPREQUESTを送信します DHCPサーバーに送信して、このIPアドレスを要求します。
- DHCPサーバーはDHCPACKを送信します リクエストを確認し、クライアントにIPアドレスを付与します。
前提条件
- 最低2台のLinuxマシン(DHCPサーバーとクライアント用)
- sudo権限を持つユーザー
- DHCPサーバーで構成された静的IP
注:
デモンストレーションの目的で、同じLAN上にある3台のLinuxマシンを使用しました。それらはすべて、スイッチを介して相互に接続されていると考えることができます。
DHCPサーバー
DHCPサーバーには、以下を使用しました:
- 静的IP「192.168.9.1」とホスト名「ubuntu」のUbuntu20.04LTS
DHCPクライアント
DHCPクライアントの場合、2台のマシンを使用しました:
- ホスト名「mypc」のUbuntu20.04
- ホスト名が「mint」のMint20
DHCPサーバーのインストール
まず、システムのシステムリポジトリインデックスを更新します。これを行うには、ターミナルで次のコマンドを発行します。
$ sudo apt update
次に、ターミナルで次のコマンドを発行してDHCPサーバーをインストールします。
$ sudo apt-get install isc-dhcp-server -y
DHCPサーバーの構成
LinuxシステムをDHCPサーバーとして構成する前に、クライアントが簡単に接続できるように、静的IPアドレスが構成されていることを確認してください。そうしないと、クライアントが接続するDHCPサーバーを見つけるのが困難になります。
/ etc / default / isc-dhcp-server ファイルの場合、DHCPサーバーがリッスンするインターフェイスを指定する必要があります。このファイルを編集するには、ターミナルで次のコマンドを発行します。
$ sudo nano /etc/default/isc-dhcp-server
INTERFACESv4 e ntryで、DHCPサーバーがリッスンするインターフェイス(ens33、eth0、eth1など)を指定します。
INTERFACESv4="interface_name"
このシナリオでは、インターフェースは ens33 、したがって、エントリは次のように変更されます:
INTERFACESv4="ens33"
ファイルを設定したら、保存して閉じます。
次に、/etc/dhcp/dhcpd.confにあるデフォルトの構成ファイルを使用してDHCPサーバーを構成します。 。
/etc/dhcp/dhcpd.confを編集します 次のようにファイルします:
$ sudo nano /etc/dhcp/dhcpd.conf
#を削除して、次の行のコメントを解除します その前の記号。
authoritative;
また、ファイルに次の行を追加します。
default-lease-time 600; max-lease-time 7200; # subnet subnet 192.168.9.0 netmask 255.255.255.0 { # range of subnet range 192.168.9.5 192.168.9.15; # gateway address option routers 192.168.9.1; # DNS server address option domain-name-servers 8.8.8.8, 8.8.4.4; }
ファイルを設定したら、保存して閉じます。
DHCPサーバーからクライアントに静的IPアドレスを割り当てます
DHCPサーバーは、デフォルトでクライアントに動的IPアドレスを発行します。ただし、クライアントに固定または静的IPアドレスを割り当てるように構成することもできます。プリンタやルーターなどの一部のネットワークデバイス、または外部からデバイスをリモート接続する必要がある場合は、固定アドレスが必要です。静的IPアドレスを特定のマシンに割り当てるには、そのMACアドレスが必要です。
クライアントにMACアドレス00:0c:29:c1:d5:d4を割り当てたいとします。 固定IP192.168.1.13 毎回。
/etc/dhcp/dhcpd.confを編集します クライアントのMACアドレスとクライアントに割り当てる固定IPアドレスを含むホストエントリをファイルして追加します。
host mint { hardware ethernet 00:0c:29:c1:d5:d4; fixed-address 192.168.9.13; }
注: 固定IPアドレスは、動的IP範囲の範囲からのものであってはなりません。
これで、一致するMACアドレス(00:0c:29:c1:d5:d4)を持つクライアントがDHCPDISCOVERメッセージをDHCPサーバーに送信するたびに、同じIPアドレス192.168.9.13を受信します。
DHCPサービスを再開します
構成が完了したら、DHCPサーバーサービスを再起動します。これを行うには、ターミナルで次のコマンドを発行します。
$ sudo systemctl restart isc-dhcp-server.service
次に、次のコマンドを使用してDHCPサーバーのステータスを確認します。
$ sudo systemctl status isc-dhcp-server.service
次の出力は、DHCPサービスがアクティブであり、エラーなしで正常に実行されていることを示しています。
DHCPクライアント構成
次に、2台のクライアントマシンを構成します。 1つのクライアントには、構成ファイルで定義されたサブネット範囲からランダムなIPが割り当てられます。他のクライアントには静的IPが割り当てられます。
デフォルトでは、動的IPアドレスはUbuntuOSで構成されています。ただし、静的IPアドレスを使用している場合は、DHCPサーバーからIPアドレスを取得するように構成できます。
クライアント1-DHCPサーバーから動的IPアドレスを取得する
まず、次のコマンドを使用してネットワークインターフェイス名を見つけます。
$ ifconfig
インターフェイス名を見つけたら、ターミナルで次のコマンドを発行してネットワークインターフェイスを構成します。
$ sudo nano /etc/network/interfaces
以下の行をファイルに挿入します:
auto <interface_name> iface <interface_name>inet dhcp
この場合、次のようになります。
auto ens33 iface ens33 inet dhcp
ファイルを保存して閉じ、ターミナルで次のコマンドを使用してnetwork-managerサービスを再起動します。
$ sudo systemctl restart network-manager.service
次に、ifconfigコマンドを実行して、クライアントのIPアドレスを確認します。
$ ifconfig
次の出力で、クライアントがDHCPサーバー構成で定義されたサブネット範囲からのIPアドレス192.168.9.5を受信したことがわかります。
DHCPサーバーのIPアドレスを見つけるには、ターミナルで次のコマンドを発行します。
$ sudo grep -R “DHCPOFFER” /var/sys/log
出力から、DHCPサーバーのIPアドレスである192.168.9.1によってIPアドレスが割り当てられていることを確認できます。
クライアントマシンがDHCPサーバーからIPアドレスを取得していない場合は、次のコマンドを使用してIPアドレスを解放/更新します。
$ sudo dhclient -r
$ sudo dhclient -v
次に、 ifconfigを実行します クライアントのIPアドレスを確認するコマンド。今回は、クライアントがDHCPサーバーからIPアドレスを受け取ることを願っています。
クライアント2-DHCPサーバーから静的IPアドレスを取得する
2番目のクライアントマシンでは、DHCPサーバー構成ファイルに静的/固定IPアドレスエントリを追加しました。クライアントマシンで、最初にDHCPサーバーからIPアドレスを取得するようにインターフェイスを構成します。
次のコマンドを使用して、ネットワークインターフェイス名を見つけます。
$ ifconfig
インターフェイス名を見つけたら、ターミナルで次のコマンドを発行してネットワークインターフェイスを構成します。
$ sudo nano /etc/network/interfaces
以下の行をファイルに挿入します:
auto <interface_name>
iface <interface_name>inet dhcp
この場合、次のようになります。
auto ens33
iface ens33 inet dhcp
次に、ファイルを保存して閉じ、ターミナルで次のコマンドを使用してnetwork-managerサービスを再起動します。
$ sudo systemctl restart network-manager.service
次に、ifconfigコマンドを実行して、クライアントのIPアドレスを確認します。
$ ifconfig
次の出力で、クライアントがDHCPサーバーから固定IPアドレス192.168.9.13を受信したことがわかります。これは、DHCP構成ファイルに追加したものと同じ固定IPアドレスです。
DHCPサーバーのIPアドレスを見つけるには、ターミナルで次のコマンドを発行します。
$ sudo grep -R “DHCPOFFER” /var/sys/log
出力から、DHCPサーバーである192.168.9.1によってIPアドレスが割り当てられていることを確認できます。
クライアントマシンがDHCPサーバーからIPアドレスを取得していない場合は、次のコマンドを使用してIPアドレスを解放/更新します。
$ sudo dhclient –r -v
$ sudo dhclient -v
次に、 ifconfigを実行します クライアントのIPアドレスを確認するコマンド。今回は、クライアントがDHCPサーバーからIPアドレスを受け取ることを願っています。
DHCPサーバーによって割り当てられたIPアドレスを表示する
DHCPサーバーから、DHCPサーバーによってクライアントに割り当てられた動的アドレスを確認することもできます。
DHCPサーバーマシンで、ターミナルで次のコマンドを実行して、DHCPサーバーによって割り当てられたアドレスを一覧表示します。
$ dhcp-lease-list
次の出力では、DHCPサーバーによってクライアントに動的に割り当てられたIPアドレスのみが表示されます。 DHCPサーバーによって発行された静的IPアドレスは一覧表示されないことに注意してください。
この記事では、LinuxシステムにDHCPサーバーをインストールして構成し、動的および固定IPアドレスをクライアントに割り当てる方法を学習しました。 LinuxマシンでDHCPサーバーを構成するには、いくつかの簡単な手順が必要です。構成が完了すると、割り当てられているIPアドレスと関連情報がネットワーク上の各マシンに自動的に割り当てられます。