2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

初学者のためのLINUC202① 8.1DHCP

Posted at

はじめに

教本だけでLINUC101,102,201を短期合格しましたが、202の学習開始まで時間が開きほぼ一夜漬けで入れた201以前の記憶が全くない、、、詰
なので、コマンドのおさらい等々細かく学習をするための記事です。
202試験全てを網羅する予定なので、受験予定の方はシリーズものとしてご覧ください。

DHCPとは

DHCP(Dynamic Host Configuration Protocol)とは、サーバー側が複数持っているIPアドレスを、問い合わせに応じて自動的に振り分けますよってサービス

仕組み

概略

同じIP使わないようにARP要求ブロードキャストでクライントに確認して完了!

ログファイルの確認

使用コマンド:journalctl
ディレクトリ:/var/log/messages もしくは /var/log/syslog

設定

DHCPサーバー:主にISC(Internet Software Consortium DHCP)DHCPデーモン->dhcpd
DHCPクライアント:dhclient,pump,dhcpd

dhcpdの設定に着目

設定項目 内容
option domain-name ドメイン名
option domain-name-servers DNSサーバー
option routers デフォルトゲートウェイIP
option subnet-mask サブネットマスク
option broadcast-address ブロードキャストアドレス
option ntp-servers NTPサーバーIP
option netbios-name-servers WINSサーバーIP
default-lease-time クライアント側の指定がない場合のデフォルトリースタイム(秒)
max-lease-time クライアント側の指定がある場合の最大リースタイム(秒)
range [dynamic-bootp] クライアントに割り当てるIPの範囲
dynamic-bootp フラグ有→BOOTPクライアントへ割り当て
host クライアント固定IPを使用する場合に記載(クライアント側)
fixed-address クライアント固定で割り当てるIP(サーバー側)
hardware クライアント特定のためのMACアドレス

dhcpd.confのフォーマット

dhcpd.conf
subnet `サーバーのIP` netmask 255.255.255.0{
    option routers `デフォルトゲートウェイIP`;
    option subnet-mask ``;
    option domain-name `ドメイン名(例:"example.com")`;
    option domain-name-servers ``;
    option ntp-servers ``;
    option netbios-name-servers ``;
    range ``;
    default-lease-time ``;
    max-lease-time ``;
    host subnote {
        hardware ethernet ``;
        fixed-address ``;
    }
}

サブネットごとの設定

サブネットって何?orなんだっけ

そう思った方は↓の記事にて解説してるので、よかったら見てください👀

一言で表すと、複数~大量のIPの管理の仕方です

☆ポイント☆

(1)特定のサブネットに対して、割り当てるIPアドレスの範囲を指定する
(2)特定のマシンに固定でIPアドレスを割り当てたい場合はMACアドレスで指定をする

設定例

上記ポイントの項目と紐づけ、2台のマシンを設定する場合を考えます。
(1)サブネットと割り当てるIPアドレスの範囲

サブネット → 192.178.5.0
IPアドレスの範囲 → 192.178.5.10 ~ 192.178.5.50

(2)特定のマシンのマックアドレスと割り当てる固定IPアドレス
2台に対して固定IPアドレスを割り当てることを想定します。

ホスト名 → machine1
MACアドレス → C8:1F:66:00:11:22
IPアドレス → 192.178.5.100
ホスト名 → machine2
MACアドレス → 00:1B:8B:00:11:22
IPアドレス → 192.178.5.101

ちなみに、「C8-1F-66」は「DELL」、「00-1B-8B」は「NEC」がそれぞれ管理するベンダコードでs....
ゴホン

設定ファイル

設定例の内容に沿い、dhcpd.confを記述してみます。

dhcpd.conf
subnet 192.178.5.0 netmask 255.255.255.0 {
    range 192.178.5.10 192.178.5.50;
    host machine1 {
        hardware ethernet C8:1F:66:00:11:22;
        fixed-address 192.178.5.100;
    }
    host machine2 {
        hardware ethernet 00:1B:8B:00:11:22;
        fixed-address 192.178.5.101;
    }
}

リース期間の設定

リース期間って?

IPアドレスを貸し出す期間を示す。

☆ポイント☆

(1)リース期間の設定はdfault-lease-timeで設定し、単位はを用いる。
(2)クライアントからも期間の要求が可能なので、その場合の最大値をmax-lease-timeで設定をする。->dhcpd.confに記載
(3)貸し出したIPアドレスとホストの情報はdhcpd.leasesに記録される。

ファイルの出力例

せっかくなので、サブネットごとの設定の際に書いたdhcpd.conf内の1マシンを例にします

dhcpd.leases
lease 192.178.5.101{
    starts 3 2024/03/05 08:55:06;
    end 3  2024/03/05 12:55:06;
    cltt 3  2024/03/05 08:55:06;
    binding state active;
    next binding state free;
    rewind binding state free;
    hardware ethernet 00:1B:8B:00:11:22;
}

DHCPクライアントの設定

マシンを起動した際にDHCPが有効になるように設定するには、CentOS,Ubuntu,Debian/GNU Linux,NetworkManagerを利用しているか等により、設定の方法が異なります。
ネットワークインターフェースがenp0s3の場合の各環境に合わせた設定を記載します。

CentOS

/etc/sysconfig/network-scripts/ifcfg-enp0s3
BOOTPROTO = dhcp

ubuntu,Debian/GNU Linux

/etc/network/interfaces
iface enp0s3 inet dhcp

NetworkManager

nmcliコマンド
# nmcli con mod enp0s3 Ipv4.method auto

DHCPサーバからのIP等の取得

dhclientコマンドを使用すると、サーバのIPアドレス等の情報の取得、IPアドレスの設定が可能です。
ネットワークインターフェースはenp0s3とします。

# dhclient -d enp0s3

dhclient の主なオプション

オプション  内容
-1 1回の借り受けに対し一度だけIPアドレスの取得を試みる
-4 IPv4アドレスと設定値を取得するときにDHCPv4プロトコルを使用する
-6 IPv6アドレスと設定値を取得するときにDHCPv6プロトコルを使用する
-F FQDN(Fully Qualified Domain Name:完全修飾ドメイン名)を指定する(-Hオプションとの同時使用は不可)
-H ホスト名を指定する(-Fオプションとの同時使用は不可)
-d 常にフォアグラウンドプロセスとして実行するよう強制する
-e 環境変数を定義する
-p 任意のポート番号(UDP)を指定する
-q エラー以外のメッセージを標準エラー出力へ書き出さない
-r 現在借り受けているIPアドレスを開放する
-s DHCPサーバーのアドレスを指定する
-cf 設定ファイルのパスを指定する
-lf リース(借り受け)ファイルのパスを指定する
-pf PIDファイルのパスを指定する

DHCPリレーエージェント

以下にリレーに関する説明を記載しますが、読むうえで最も重要なのは、ルーターに持たせる機能である。という点を最初に理解することだと思います。

DHCPサーバ、DHCPクライアントについて

DHCPサーバ、クライアント間の通信はブロードキャストアドレスが使用されるため、同サブネットに存在している必要があり、ネットワークが隔てられた環境でDHCPサーバを導入する場合は、それぞれのサブネットごとに導入をする必要があります。
これを実現しようとすると、大きなコストがかかり現実的ではありません。
DHCPリレーエージェントを利用すると、ルーターがブロードキャストで受信しユニキャストへ変換しDHCPサーバに転送されるため異なるサブネット間での利用が可能になる機能です。

IPv6でのIPアドレスの自動設定について

DHCPなしでIPアドレスの自動設定が、ステートレス自動設定によって可能です。

Linuxではradvdパッケージの導入でRAの送信が行えるようになり、設定ファイルは/etc/radvd.conf

おわりに

DHCPに関して、202受検に必要な知識をかみ砕いてまとめてみました。
ラズパイの勉強も並行してしており、VPNサーバ構築に挑みたいので、次の記事は教本少し飛んでVPNサーバ周りになります!

最後までお読みいただきありがとうございました。

メインで使用している参考書は以下です

Linux教科書 LinuCレベル2 Version 10.0対応

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?