コース一覧
LinuC レベル1(LPIC-1対応)対策
名前解決の設定

LinuC レベル1(LPIC-1対応)対策

ブートとsystemd、パッケージ管理(APT/RPM両系統)、コマンドとviの操作、ファイルシステム、シェルスクリプト、ユーザー管理とセキュリティ、ネットワークまで、LinuC レベル1(LPIC-1対応)の全出題範囲を、毎レッスン実際にコマンドを打って確かめながら学べる対策コースです。ブラウザの中で本物の Debian 12 が動いていて、62レッスンのうち36本は読むだけで終わらず、自分の手でコマンドを打った結果で採点されます。Linux入門を修了した方を対象としています。101・102それぞれの模試60問で分野別の弱点を洗い出し、直前チェックで暗記事項を固めてから本番に臨めます。

1
試験ガイダンス
01. LinuC/LPICとは15分
02. LinuCとLPICの選び方15分
03. 学習計画15分
04. 出題形式を体験15分
2
101 ブートとアーキテクチャ
01. ブートの流れ18分
02. GRUB15分
03. systemdとターゲット18分
04. ハードウェア情報18分
05. カーネルモジュール18分
06. 過去問 アーキテクチャ15分
3
101 パッケージ管理
01. Debian系パッケージ18分
02. RPM系パッケージ15分
03. 両系統の対応表15分
04. リポジトリ管理18分
05. 共有ライブラリ18分
06. 過去問 パッケージ管理15分
4
101 GNU/Unixコマンド
01. ファイル操作の試験オプション18分
02. テキスト処理18分
03. ストリームとリダイレクト18分
04. プロセス監視18分
05. 優先度18分
06. grepと正規表現18分
07. viの操作15分
08. 過去問 コマンド15分
5
101 ファイルシステム
01. パーティション15分
02. 作成とマウント18分
03. fstabとUUID18分
04. パーミッションとリンク18分
05. 容量とクォータ18分
06. findとlocate18分
07. 過去問 ファイルシステム15分
6
102 シェルとスクリプト
01. シェル環境18分
02. testと条件式18分
03. スクリプトの制御18分
04. cronとat15分
05. systemdタイマー18分
06. 過去問 シェル15分
7
102 ユーザーとセキュリティ
01. passwdとshadow18分
02. ユーザー管理コマンド18分
03. suとsudo18分
04. 特殊パーミッション18分
05. ホストのセキュリティ18分
06. SSHとGPG18分
07. 過去問 ユーザーとセキュリティ15分
8
102 ネットワーク
01. TCP/IPとウェルノウンポート18分
02. アドレス設定18分
03. ルーティング18分
04. 名前解決の設定18分
05. 疎通トラブルシュート18分
06. 過去問 ネットワーク15分
9
102 システム管理
01. 時刻とNTP15分
02. ロケールと文字コード18分
03. ログ管理18分
04. サービス管理の試験形式18分
05. メールと印刷のきほん15分
06. 過去問 システム管理15分
10
模試と直前対策
01. 模試 10190分
02. 101弱点復習15分
03. 模試 10290分
04. 102弱点復習15分
05. 直前チェック15分
06. 受験と次のステップ15分

名前解決の設定

「hosts が先」は既定値がそうなっているだけで、順番を決めているのは別のファイルです。そこを押さえていないと、この範囲は勘で答えることになります。

/etc/hosts は アドレス、FQDN、別名 の順

プレーンテキスト

127.0.0.1 localhost ::1 localhost ip6-localhost ip6-loopback 192.168.10.20 web01.example.internal web01

1行1エントリで、2列目に FQDN、3列目以降に短い別名を書くのが慣習です。同じ名前を複数行に書くと、最初に一致した行が使われます。DNS サーバーを立てずに済むので小規模な検証環境では手軽ですが、機械ごとに配るため台数が増えると破綻します。

/etc/resolv.conf の nameserver は3つまで

指定意味
nameserver <IP>問い合わせ先の DNS サーバー。1行に1つ、最大3つまで有効
search <ドメイン> ...短い名前に補完するドメイン。空白区切りで複数書ける
domain <ドメイン>自ホストのドメイン。search を1つ書いたのとほぼ同じ
options timeout:n応答待ちの秒数。attempts:n は再試行の回数
options ndots:nドットがこの数未満の名前に search を適用する。rotate は順番に使い分ける

nameserver は上から順に試され、応答が無いときに次へ移ります。負荷分散ではなく冗長化のための順番で、4つめ以降を書いても無視されます。search と domain は両方書くと後に書いたほうが勝つので、通常は search だけを使います。search example.internal があれば、web01 と打つだけで web01.example.internal として問い合わせてくれます。

優先順位を決めているのは nsswitch.conf

プレーンテキスト

hosts: files dns

/etc/nsswitch.conf は、どのデータベースをどの順番で見るかを決めるファイルです。名前解決に関わるのは hosts の行で、左から順に試されます。files が /etc/hosts、dns が /etc/resolv.conf に書かれた DNS サーバーです。

この並びを入れ替えて dns files と書けば DNS が先になります。つまり hosts が優先というのは既定値がそうなっているだけで、規則を決めているのはこのファイルです。ここが試験の狙いどころです。

getent hosts <名前> はこの規則に実際に従って引くので、切り分けに使えます。getent が答えを返すのに dig が返さないなら、それは /etc/hosts で解決されている証拠です。

dig と host は /etc/hosts を見ない

DNS サーバーへ直接問い合わせるコマンドは host と dig と nslookup の3つです。host は出力が最も短く、dig は詳しくて実務と試験の標準、nslookup は古く対話モードを持ちます。この学習環境には入っていないので書式だけ押さえます。

ターミナル

host www.example.com 192.168.10.1 # サーバーは末尾に空白区切りで指定 dig @192.168.10.1 www.example.com # サーバーは @ で指定 dig www.example.com MX # レコード種別を指定 dig +short www.example.com # 答えだけを短く表示 dig -x 192.168.10.20 # 逆引き

サーバーの指定が dig は @、host は空白区切りという違いが、入れ替えの誤答として出ます。またこれらは /etc/nsswitch.conf を参照しないので、/etc/hosts に書いた名前は dig では引けません。この違いも頻出です。

systemd-resolved 環境では resolv.conf を手書きしても消える

最近のディストリビューションでは systemd-resolved が名前解決を仲介することがあります。このとき /etc/resolv.conf は /run/systemd/resolve/stub-resolv.conf へのシンボリックリンクで、中身は nameserver 127.0.0.53 の1行だけです。127.0.0.53 は systemd-resolved 自身が待ち受けるアドレスで、上流サーバーは別に管理されています。手で書き換えても再起動やネットワーク再接続で上書きされます。状態は resolvectl status、上流の変更は /etc/systemd/resolved.conf の DNS= です。

ヒント

/etc/hosts の1行は「アドレス 正式名 別名」の順です。1行に3つの要素を空白で並べます

ファイルへの書き込みは echo と >> で足せます。printf を使うと1回で複数行書けます

echo '192.168.50.10 linuc-lab.example.local linuc-lab' >> /etc/hosts のあと、echo 'nameserver 192.168.50.1' > /etc/resolv.conf と echo 'search example.local' >> /etc/resolv.conf です

  • 1. cat /etc/hosts と cat /etc/resolv.conf で、いま空であることを確かめる
  • 2. /etc/hosts に 192.168.50.10 linuc-lab.example.local linuc-lab の行を書く
  • 3. getent hosts linuc-lab で名前が引けることを確かめる
  • 4. /etc/resolv.conf に nameserver 192.168.50.1 の行を書く
  • 5. /etc/resolv.conf に search example.local の行を追記する
  • 6. grep '^hosts' /etc/nsswitch.conf で解決順の設定を確かめる

5 項目で採点します