LinuxでDHCPサーバーを構築する方法

LinuxでDHCPサーバーを構築する方法

1. 基礎知識:

1. DHCPの概要:
DHCP (Dynamic Host Configuration Protocol) は、通常、大規模なローカル エリア ネットワーク環境で使用されます。その主な機能は、IP アドレスを集中的に管理および割り当てることです。これにより、ネットワーク環境内のホストは、IP アドレス、ゲートウェイ アドレス、DNS サーバー アドレスなどの情報を動的に取得でき、アドレスの利用率を向上させることができます。
2. DHCPサーバーの紹介:
DHCP サーバーとは、IP アドレスの範囲を制御するサーバーのことです。クライアントがサーバーにログインすると、サーバーによって割り当てられた IP アドレスとサブネット マスクを自動的に取得できます。

2. DHCPサーバーの設定:

今日は DHCP サーバーを作成します。

這里寫圖片描述

仮想マシンサーバーをDHCPサーバーとして使用し、テストにはデスクトップを使用します。便宜上、サーバーのホスト名をdhcp.server.comに、デスクトップのホスト名をdhcp.test.comに変更します。
次に、ホスト dhcp.server.com で設定します。

1. サーバーのIPを確認する

這里寫圖片描述

2. DHCP サービスの依存パッケージを確認します。

這里寫圖片描述

3. DHCP サービスをインストールします。

這里寫圖片描述

4. 設定:

(1)DHCPサービスを有効にする

systemctl dhcpd を起動します

(2)設定ファイルを変更する

dhcpd.conf の例を /etc/dhcp/dhcpd.conf にコピーします。

vim /etc/dhcp/dhcpd.conf
次のセクションを変更します。

  7 オプションドメイン名 "server.com"; 
      ##ドメイン名: /etc/resolv.conf を参照
  8 オプション ドメインネームサーバー 172.25.10.254;
      ## DNS サーバーを指定します。複数のサーバーはコンマで区切ります。
 30 サブネット 172.25.10.0 ネットマスク 255.255.255.0 {
      ##サブネットとサブネットマスクを指定します 31 範囲 172.25.10.10 172.25.10.20;
      ## IP 範囲 32 オプション ルータ 172.25.10.254 を指定します。
 ##デフォルトゲートウェイを指定する 33 }
 34#### 27行目、28行目、34行目以降を削除します

以下は dns.test.com の設定です。
(1)ネットワークパラメータ設定:
/etc/sysconfig/network-scripts/ifcfg-eth0を編集する

デバイス=eth0
ブートプロトコル=dhcp
###重要な部分はdhcpです
ONBOOT=はい

(2)ネットワークを再起動します。

systemctl ネットワークを再起動
###この実験では、コマンドの実行時にエラーが発生し、DHCP サーバー経由で IP アドレスを取得できないという問題が発生しました。解決策は次のとおりです。DHCP は通常、ローカル エリア ネットワークで使用される通信プロトコルです。主に、クライアントを介して物理ネットワーク セグメント全体のすべてのホストにブロードキャスト データ パケットを送信します。ローカル エリア ネットワークに DHCP サーバーがある場合にのみ、クライアントの IP パラメーター要件に応答します。したがって、DHCP サーバーとクライアントは同じ物理ネットワーク セグメントに存在する必要があります。サーバとクライアント間のDHCPパケットの相互作用全体を図(1)に示します。
###ファイアウォールがデータ パケットの送信をブロックしていると思われます###私が実行した解決策は次のとおりです。
両方の仮想マシンは次のコマンドを実行します。
ファイアウォールコマンド --permanent --add-service=dhcp
ファイアウォール-cmd --reload 
DHCP が動作しているかどうかを確認します。
ファイアウォールコマンド --list-all
仮想マシンを再起動すると問題は解決します。 


(図(1)サーバとクライアント間のDHCPパケットの相互作用の模式図)

テスト マシンは DHCP サーバー経由で IP を取得します。

這里寫圖片描述

(3)ネットワーク全体を再起動した後、実行結果で正しいDHCPホストが見つかった場合は、以下のファイルを変更することができます。

1. /etc/resolv.confを表示する

這里寫圖片描述

2. ルートを確認する

這里寫圖片描述

3. サーバーによって記録されたDHCP情報を表示します。cat /var/lib/dh​​cpd/dhcpd.leases

這里寫圖片描述

3. 構成例

/etc/dhcp/dhcpd.conf を編集する

dhcpd.conf の
#
# ISC dhcpd のサンプル設定ファイル
#

# サポートされているすべてのネットワークに共通のオプション定義...
オプションドメイン名「example.org」;
オプション ドメインネームサーバー 192.168.0.199;

デフォルトのリース時間 600;
最大リース時間 7200;

# これを使用して、動的 DNS 更新をグローバルに有効/無効にします。
#ddns 更新スタイルなし;

# このDHCPサーバーがローカルの公式DHCPサーバーである場合
# ネットワークの場合、authoritative ディレクティブのコメントを解除する必要があります。
#権威ある;

# これを使用して、DHCPログメッセージを別のログファイルに送信します(
# リダイレクトを完了するには syslog.conf をハッキングする必要があります。
ログ機能 local7;

# このサブネットではサービスは提供されませんが、宣言することで 
# ネットワーク トポロジを理解するための DHCP サーバー。


# これは非常に基本的なサブネット宣言です。

サブネット 192.168.0.0 ネットマスク 255.255.255.0 {
  範囲 192.168.0.10 192.168.0.20;
  オプションルーター 192.168.0.199;
}

Linux での DHCP サーバーの設定に関するこの記事はこれで終わりです。Linux DHCP サーバーの設定の詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • LinuxがDHCPサーバーを開始する手順
  • Linux での DHCP サービス設定チュートリアル
  • Linux での DHCP サービスの完全な構成 (画像とテキスト付き)
  • Linux DHCPサービスの詳細な説明

<<:  海外でダウンロードできる25個の新鮮で便利なアイコンセット

>>:  vue の v-for ディレクティブはリストのレンダリングを完了します

推薦する

JSコンストラクタとインスタンス化およびプロトタイプ導入の関係

目次1. コンストラクタとインスタンス化2. コンストラクターとインスタンス化の関係は何ですか? 3...

MySQLは数百万のシミュレーションデータ操作コードを自動的に挿入します

私はデータベースツールとして Navicat を使用しています。他のものも同様です。 1. Navi...

Linux で静的ルーティングを追加するための 2 つの実装方法の分析

ルートを追加するコマンド: 1.ルート追加route add -net 192.56.76.0 ne...

Linux でネットワーク パケット損失と遅延をシミュレートする方法

netem と tc: netem は、Linux カーネル バージョン 2.6 以降で提供されるネ...

クラウド CentOS で Docker リモート サービス リンクを有効にするための実装手順

ここでは、dockerがインストールされたcentosサーバーを紹介し、リモートリンクサービスを開始...

Tomcatのサーバーオプションの詳細な説明

1. 構成デフォルトでは、最初の 2 つはチェックされていないので、チェックする必要があります。 (...

ブラウザでのjsのイベントループイベントキューの詳細な説明

目次序文スタックと2つのキューを理解する実行プロセス簡単な例より難しい例要約する序文以下の内容はブラ...

Xshell にショートカット コマンドを追加する方法

便利なターミナル エミュレーターである Xshell は、開発者がホスト サーバーをリモート管理する...

Vue2.0でデータの双方向バインディング機能をjsを使って実装する

Object.definePropertyの理解文法:オブジェクト.defineProperty(o...

MySQL 8.0.18 のインストールと設定方法のグラフィック チュートリアル (Linux)

この記事では、Linux MySQL 8.0.18のインストールと設定のグラフィックチュートリアルを...

JavaScript 操作要素の例

操作要素の詳細については、前回の記事を参照してください。JavaScript WebAPI、DOM、...

固定テーブル幅テーブルレイアウト: 固定

テーブルを画面全体(残りの空白領域)に表示するために、幅属性は 100% と定義されることが多く、セ...

MySQL で特定の日、月、または年のデータをクエリするためのコードの詳細な説明

今日 テーブル名から * を選択します。ここで、to_days(時間フィールド名) = to_day...

MySQL 8.0.15 圧縮版インストール グラフィック チュートリアル

この記事では、参考までにMySQL 8.0.15圧縮版のインストール方法を紹介します。具体的な内容は...