はじめに
教本だけで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のフォーマット
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を記述してみます。
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マシンを例にします
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
BOOTPROTO = dhcp
ubuntu,Debian/GNU Linux
iface enp0s3 inet dhcp
NetworkManager
# 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対応