このチュートリアルでは、Ubuntuで独自のDHCPサーバーをセットアップしました。 Dynamic Host Configuration Protocol(DHCP)は、ネットワーク上のクライアントにIPアドレスを自動的に割り当てるためのネットワークサービスです。 これは、クライアントがIPアドレスを取得するためにDHCPサーバーを要求するサーバクライアントアーキテクチャに従います。 ほとんどのルーターにはDHCPサーバーが内蔵されていますが、独自のDHCPサーバーも使用できます。
目次
DHCPはどのように機能しますか?
コンピュータが起動すると、IPアドレスがありません(静的IPアドレスが設定されていないと仮定し、ほとんどのマシンにはありません)。 DHCP Discoverと呼ばれるブロードキャスト(すべてのFのMACアドレス)を送信します。 DHCPサーバーは、このようなブロードキャストに応答するように設計されています。
次に、DHCPオファーと呼ばれるユニキャストトラフィックを要求元のクライアントに送信します。 通常、このDHCPオファーには、割り当てられたIPアドレス、デフォルトゲートウェイのIPアドレス、およびDNSサーバーのIPアドレスが含まれます。
オファーを受信したクライアントは、サーバーによって与えられた情報を受け入れたことを確認するDHCP要求をDHCPサーバーに送信します。
DHCPサーバーは、割り当てられたIPアドレスの記録を保持して、二重割り当てやIPアドレスの衝突を防ぎます。
DHCPサーバーはブロードキャストに応答するため、ローカルネットワーク上に存在する必要があり、ローカルネットワーク上には1つ以上のDHCPサーバーが存在してはな
DHCPの割り当て方法
DHCPサーバーの割り当て方法は次のとおりです:
- マニュアル: この方法では、IPアドレスはMACアドレスに基づいて与えられます。 これにより、IPアドレスがMACアドレスに接続されるため、特定のマシンが固定IPアドレスを取得することが保証されます。 DHCPサーバーは、このタイプの割り当てのMACアドレスに応じて、一定の構成をクライアントに送信します。
- 自動:この方法では、IPアドレスはアドレスのプールから先着順にDHCPサーバーによって自動的に割り当てられます。 Ipアドレスがクライアントに割り当てられている時間であるリース時間に基づいて、さらに2つのカテゴリに分けることができます。
- 固定リース時間:DHCPクライアントが指定された期間ネットワーク上にない場合、構成は期限切れになり、他のDHCPクライアントが使用するためにアドレスプール クライアントは、以前のIPアドレスを保持するために再交渉する必要があります。
- 無限のリース時間:これは、クライアントにIPアドレスを永続的に割り当てる効果があります。
UbuntuでDHCPサーバーをセットアップする手順
ここで、UbuntuでDHCPサーバーをセットアップする方法を見ていきます。
1. Dhcpサーバーのインストール
次のようにaptコマンドを使用してDHCPサーバーをインストールできます:
sudo apt install isc-dhcp-server
注:Ubuntuのサーバー版ではなく、デスクトップ版にもDHCPサーバーをインストールできます。 デスクトップ版とサーバー版がどのように異なる/類似しているかについては、このStackOverflowの回答を参照してください。
2. ISC DHCPサーバの主な設定ファイルは/etc/dhcp/dhcpd.conf
です。
元の設定ファイルをバックアップする
元の設定ファイルをバックアップすることは常に良い考えです。 何か問題が発生した場合は、元の構成を簡単に復元できます。 Cpコマンドまたはmvコマンドを使用してバックアップを作成できます。
sudo mv /etc/dhcp/dhcpd.conf{,.backup}#Expands to sudo mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.backup
上記のコマンドは、bashの{}
拡張機能を使用してdhcpd.conf.backup
ファイルを作成します。
新しい設定ファイルの作成と編集
任意のエディタを使用できます。 私はnanoエディタを使用します:
sudo nano /etc/dhcp/dhcpd.conf
構成ファイル内のオプションは、ネットワークの複雑さによって異なります。
プールからランダムなIPアドレスを割り当てる
DHCPサーバーが行う最も一般的なことは、アドレスをランダムに割り当てることです。 同じものの設定は次のようになります:
# a simple /etc/dhcp/dhcpd.confdefault-lease-time 600;max-lease-time 7200;authoritative;subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.100 192.168.1.200; option routers 192.168.1.254; option domain-name-servers 192.168.1.1, 192.168.1.2;#option domain-name "mydomain.example";}
この構成によると:
- クライアントのデフォルトのリース時間は10分(600秒)で、最大リース時間は2時間(7200秒)です。
- このDHCPサーバはローカルネットワークの公式サーバです。 (
authoritative
で示される)。サーバは192.168.1.100から192.168.1.200の範囲のIPアドレスを引き渡す。 - サーバーはまた、デフォルトゲートウェイとして192.168.1.254を使用し、DNSサーバーとして192.168.1.1と192.168.1.2を使用するようにクライアントに”助言”します。
ドメイン名を含めることもできます。
クライアントへの静的IPアドレスの割り当て
特定のクライアントが常に同じIPアドレスを取得することを保証するには、DHCPサーバーはそのクライ これは、この記事の前半で説明した手動割り当てモードです。
クライアントのMACアドレスを取得するには、クライアントマシンでipコマンドを使用できます:
ip a
(ネットワークへの接続を計画しているインターフェイスのMACアドレスを選択する必要があります。 私はワイヤレスのものを選択しました。)
これでMACアドレスが得られたので、設定ファイルに入れることができます:
host archmachine {hardware ethernet e0:91:53:31:af:ab;fixed-address 192.168.1.20;}
これにより、MACアドレス e0:91:53:31:af:ab
を持つクライアントのIPアドレス192.168.1.20が予約されます。
最後に、設定ファイルは次のようになります:
アドレスを自動的に割り当てる場合は、静的IP構成部分を省略できます。
3. インターフェイスへのDHCPサーバのバインド
DHCPサーバは多くのインターフェイスを持つことができます。 リッスンするインターフェイスを定義する必要があります。 クライアントと同様に、ip a
を使用してサーバー上のインターフェイスを表示できます。
バインドするインターフェイスは/etc/default/isc-dhcp-server
ファイルで定義されています。 選択したエディタを使用して開きます。 私のサーバーのインターフェイスはeth0
です。 それはあなたのサーバーのために異なる場合があります。 ファイルを次のように編集します:
INTERFACESv4="eth0"
4. DHCPサーバの再起動
設定の変更が行われたので、これらの変更を有効にするためにサービスを再起動する必要があります。 これを行うには、systemctl
コマンドを使用します:
sudo systemctl restart isc-dhcp-server.service
5. DHCPサーバの状態を確認する
これはsystemctl
コマンドを使用して再度行うことができます :
sudo systemctl status isc-dhcp-server.service
activeステータスは、DHCPサーバーが構成を正常に取得し、IPアドレスを渡す準備ができていることを示します。
トラブルシューティング
DHCPサーバはログをSyslogに書き込みます。 サービスのステータスが非アクティブであることが判明した場合は、/var/log/syslog
ファイルを調べる必要があります。 そこから、インターネット上のSyslogに記載されている特定の問題を検索できます。
結論
この記事では、DHCPとUbuntuマシンにDHCPサーバーをインストールする方法について学びました。 DHCPサーバーを使用すると、各クライアントの手動構成よりもはるかに優れたIPアドレスの割り当てが自動化されます。