クリーム色の背景、色付き表示、高コントラスト、大きな文字のほうが読みやすいですか?配色と文字を選ぶと、すべてのページに一度で反映されます。

無料レッスン

DHCPとDNSの実際の設定

このレッスンのあとで: 機器にアドレスと名前を与える設定を読んで、説明できる。

45分のレッスンコマンド5件DHCP と DNS のラボ:小さなネットワークの dnsmasq をブラウザーで設定

プリンターのアドレスが毎朝変わる

DHCP(動的ホスト構成プロトコル)は、つないだ機器にIPアドレスを自動で貸すしくみです。設定のしかたが分かると、プリンターに毎回同じアドレスを渡せます。

ある事務所では、プリンターのアドレスが朝ごとに変わり、印刷できない日がありました。原因はDHCPの貸し方にあります。名前で呼べるようにするDNSも、あわせて見ましょう。

このレッスンのゴール

メモ

機器にアドレスと名前を与える設定を読んで、説明できる。

重要な言葉

ことばいみ
リースアドレスを期限つきで貸す約束
アドレスプールサーバーが貸してよいアドレスの範囲
予約特定の機器に、いつも同じアドレスを貸す設定
MACアドレス機器ごとに決まっている、ネットワークカードの番号
レコードDNSが持っている、名前とアドレスの組
設定ファイルサーバーの動き方を書いておく文書

学生が入力するセルは、このプレビューでは空白です。

アドレスは期限つきで貸される

DHCPサーバーは、アドレスプールから一つ選んで機器に貸します。貸すのは期限つきで、この約束をリースと呼びます。

リースが切れる前に、機器は更新を頼みます。電源を切った機器のアドレスは、期限が来るとほかの機器に貸せます。

例:事務所のDHCPの決まり

項目値意味
アドレスプール192.168.5.100 から 150貸してよい51個
リースの長さ12時間半日で更新を頼む
ゲートウェイ192.168.5.1外へ出る出口
DNSサーバー192.168.5.1名前を聞く相手

学生が入力するセルは、このプレビューでは空白です。

サーバーと二台の客を見る

コマンド
dnslab status

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

pc1にアドレスを頼ませる

コマンド
sudo dnslab renew pc1

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

サーバーの設定ファイルを読む

コマンド
cat /etc/dnsmasq.d/lab.conf

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

貸すアドレスが無いと何も起きない

status には、10.0.10.1/24 を持つ server が出ます。pc1 と pc2 には、アドレスが一つもありません。

renew は pc1 was given nothing: no DHCPOFFER came back と出します。設定ファイルにはコメントしか無く、サーバーに貸すアドレスの範囲が書かれていないからです。

同じ機器に毎回同じアドレスを渡す

プリンターのアドレスが変わると、パソコン側の設定が使えなくなります。そこで、機器のMACアドレスとアドレスを結んで「予約」します。

dnsmasq という、DHCPとDNSを一つでこなすプログラムでは、設定ファイルに一行書きます。MACアドレスは機器ごとに違うので、見分けに使えます。

例:設定ファイルの二行

設定の一行意味
dhcp-range=192.168.5.100,192.168.5.150,12hプールと12時間のリース
dhcp-host=aa:bb:cc:dd:ee:01,printer,192.168.5.20このMACには、いつもこのアドレス

学生が入力するセルは、このプレビューでは空白です。

pc1のMACアドレスを読む

コマンド
sudo ip netns exec pc1 ip -o link show eth0

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

MACアドレスで機器を見分ける

出力には link/ether 02:00:00:00:00:01 が出ます。これが pc1 のMACアドレスです。

アドレスが付く前の機器を、サーバーが見分けられるのはこの番号だけです。予約の一行は、この番号を使って書きます。

DNSは名前をアドレスに変える

人は「printer」のような名前を覚え、ルーターは数字を使います。二つを結ぶレコードを持っているのがDNSです。

dnsmasq では address=/printer.office/192.168.5.20 のように一行で書けます。これで、名前を打つだけでプリンターに届きます。

サーバーに名前を聞く

コマンド
sudo ip netns exec server dig +noall +comments @10.0.10.1 files.lab

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

レコードが無い名前は断られる

答えには status: REFUSED と ANSWER: 0 が出ます。サーバーにはまだ files.lab のレコードが無く、聞きに行ける別のサーバーもありません。

名前に答えるには、レコードを書く必要があります。それはラボの仕事です。

よくある間違い

注意

DHCPでもらったアドレスは、ずっと自分のものだと思いがちです。リースには期限があり、更新しなければほかの機器に貸されます。いつも同じアドレスが要る機器だけ、予約を使います。

さらに挑戦:プールが足りない日

プールは51個で、そこに60台がつなぎたいとします。9台はアドレスを借りられません。

リースを12時間から1時間に短くすると、何が変わるでしょうか。ラボが動いたら、sudo cat /run/dnslab/dnsmasq.leases を読み、一行の項目を課題の形と比べましょう。

このラボとソースについて: DHCP と DNS のラボ:小さなネットワークの dnsmasq をブラウザーで設定

授業で使いますか?このモジュールを学生に割り当てると、教員用ガイド、自動採点つきの課題、学生ごとのラボを使えます。