目次
Linux システムで dhcp サービスをセットアップし、他のマシンに IP アドレスを割り当てます。具体的な手順は次のとおりです。
1. dhcp関連のソフトウェアパッケージをインストールします
2. サンプル ファイルを /etc/dhcp ディレクトリにコピーします
8. どのクライアントに dhcp サーバー上の IP アドレスが割り当てられているかを確認します。
1. ネットワークカード構成ファイルのディレクトリを入力します。
2. 設定ファイル ifcfg-ens33 を変更します。ens33 は特定のインターフェイスの名前です。
dhcpプロトコル:
動的ホスト構成プロトコルは、IP アドレス、サブネット マスク、デフォルト ゲートウェイ、優先 DNS サーバーなどを含む TCP/IP 情報をクライアントに動的に割り当てる役割を担うアプリケーション層プロトコルです。dhcp はイントラネット上の一部のコンピュータに IP アドレスを設定するだけなので、LAN 内に dhcp サーバーがあれば十分です。
関連する質問:
dhcp サーバーは、どの IP アドレスが割り当てられているか、どの IP アドレスが割り当てられていないかをどのようにして知るのでしょうか?
dhcp サーバーは、どの IP アドレスが割り当てられ、どの IP アドレスが割り当てられていないのかを記録します --> ファイルレコードが作成されます。
IPアドレスを割り当てる際、IPアドレスが競合していないかチェックするのでしょうか?
割り当てる前に、まず他のユーザー向けの IP アドレスに ping を実行し、応答があるかどうかを確認します。
dhcp 割り当てのプロセス:
クライアントが IP アドレスを要求 (DHCPDiscover) -> サーバーが要求に応答 (DHCPOffer) -> クライアントが IP アドレスを選択 (DHCPRequest) -> サーバーがリースを確認 (DHCPAck)
クライアントが送信するパケットはブロードキャスト パケット、サーバーが送信するパケットはユニキャスト パケットです。
Linux システムで dhcp サービスをセットアップし、他のマシンに IP アドレスを割り当てます。具体的な手順は次のとおりです。
1. dhcp関連のソフトウェアパッケージをインストールします
[root@router ~]# yum install dhcp -y
2. サンプル ファイルを /etc/dhcp ディレクトリにコピーします
[root@router ~]# cd /etc/dhcp/
[root@router dhcp]# ls
dhclient.d dhclient-exit-hooks.d dhcpd6.conf dhcpd.conf scripts #dhcpd6.conf是ipv6的配置文件,dhcpd.conf是ipv4的配置文件--主要配置文件
[root@router dhcp]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? y
3. 設定ファイルの編集
[root@router dhcp]# vim /etc/dhcp/dhcpd.conf
log-facility local7;
# A slightly different configuration for an internal subnet.
subnet 192.168.188.0 netmask 255.255.255.0 {
range 192.168.188.210 192.168.188.240;
option domain-name-servers 114.114.114.114;
option routers 192.168.188.1;
default-lease-time 600;
max-lease-time 7200;
}
構成の主な意味:
log-facility local7: ログ タイプを指定します。使用されるログ デバイスはローカル デバイスです。
サブネット 192.168.188.0 ネットマスク 255.255.255.0: IP アドレスを割り当てるためのネットワークセグメント番号とサブネットマスクを指定します
range 192.168.188.210 192.168.188.240: 割り当てられたアドレス プールの範囲を指定します。これは、上で指定したネットワーク セグメント番号の IP である必要があります。
オプション ドメイン名サーバー 114.114.114.114: DNS サーバーを指定します
オプションルーター 192.168.188.1: ゲートウェイを指定します
default-lease-time 600: 最小リース時間は 600 秒です
max-lease-time 7200: 最大リース時間は 7200 秒です
注: dhcp サーバーのゲートウェイまたは dns サーバーが正しく構成されていない場合、クライアントはインターネットにアクセスできません。
4. dhcpサーバーを起動します
[root@router dhcp]# service dhcpd start
Redirecting to /bin/systemctl start dhcpd.service
5. dhcpサービスが開始されているか確認する
[root@router dhcp]# ps aux|grep dhcpd #查看进程
dhcpd 4482 0.2 0.4 105988 8180 ? Ss 21:34 0:00 /usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pid
[root@router dhcp]# netstat -anplut|grep dhcpd #查看端口
udp 0 0 0.0.0.0:67 0.0.0.0:* 4482/dhcpd
6. ファイアウォールをオフにする
[root@router dhcp]# service firewalld stop
Redirecting to /bin/systemctl stop firewalld.service
[root@router dhcp]# systemctl disable firewalld
7. テスト -- サーバーをクライアントとして使用する
[root@goweb ~]# dhclient -lf /var/lib/dhclient/dhclient.leases #将租约信息存入该文件
[root@goweb ~]# cat /var/lib/dhclient/dhclient.leases
lease {
interface "ens33";
fixed-address 192.168.188.210;
option subnet-mask 255.255.255.0;
option dhcp-lease-time 1800;
option dhcp-message-type 5;
option domain-name-servers 192.168.188.1;
option dhcp-server-identifier 192.168.188.254; #dhcp服务器的ip地址
option broadcast-address 192.168.188.255;
option domain-name "localdomain";
renew 4 2023/07/27 13:58:24;
rebind 4 2023/07/27 14:12:58;
expire 4 2023/07/27 14:16:43;
}
8. どのクライアントに dhcp サーバー上の IP アドレスが割り当てられているかを確認します。
[root@router ~]# cat /var/lib/dhcpd/dhcpd.leases
# The format of this file is documented in the dhcpd.leases(5) manual page.
# This lease file was written by isc-dhcp-4.2.5
server-duid "\000\001\000\001,U,\360\000\014)\350\033\200";
lease 192.168.188.210 {
starts 4 2023/07/27 13:40:27;
ends 4 2023/07/27 13:50:27;
cltt 4 2023/07/27 13:40:27;
binding state active;
next binding state free;
rewind binding state free;
hardware ethernet 00:0c:29:e4:41:50; #物理地址
client-hostname "goweb"; #客户机主机名
}
補足: Linux で静的 IP アドレスを手動で設定する
1. ネットワークカード構成ファイルのディレクトリを入力します。
[root@localhost network-scripts]# cd /etc/sysconfig/network-scripts/
2. 設定ファイル ifcfg-ens33 を変更します。ens33 は特定のインターフェイスの名前です。
[root@localhost network-scripts]# vim ifcfg-ens33
BOOTPROTO="none"
NAME="ens33"
UUID="e605fdb1-4998-467b-b659-84e12fecab31"
DEVICE="ens33"
ONBOOT="yes"
IPADDR=192.168.15.149
#NETMASK=255.255.255.0
PREFIX=24 4
GATEWAY=192.168.15.2
DNS1=114.114.114.114
DNS2=192.168.0.1
構成ファイル内の主な構成の意味は次のとおりです。
BOOTPROTO="none": none または static は静的に構成された IP を意味し、dhcp は動的に取得され、dhcp サーバーを通じて割り当てられた IP アドレスを意味します。
NAME="ens33": ネットワークカードの名前
UUID="e605fdb1-4998-467b-b659-84e12fecab31": ネットワーク接続の一意の識別子。各ハードウェアは番号に対応します。この番号は自動的に生成され、変更する必要はありません。
DEVICE="ens33": デバイスの名前
ONBOOT="yes": Yes は起動時にネットワーク接続をアクティブにすることを意味し、No はネットワーク接続を無効にすることを意味します。
IPADDR=192.168.15.149: 静的に構成された IP アドレス
NETMASK=255.255.255.0: サブネットマスク
PREFIX=24: サブネット マスクの長さは 24 です。NETMASK を使用して構成する必要があるのは、そのうちの 1 つだけです。
GATEWAY=192.168.15.2: デフォルトゲートウェイ
DNS1=114.114.114.114: 優先DNSサーバー
DNS2=192.168.0.1: 代替DNSサーバー
3. サービスを再起動して、新しい構成を再度有効にします。
[root@localhost network-scripts]# service network restart
Restarting network (via systemctl): [ 确定 ]