LPIC-1 ネットワークの基礎(主題 109)まとめノート
LPIC-1 102試験の主題109「ネットワークの基礎」の学習内容を整理するために自分用にまとめたノートです。
出題範囲と重み(括弧内)は LPI 公式の試験範囲(LPIC-1 Objectives V5.0 日本語版) から引用。
- 109.1 インターネットプロトコルの基礎(4)
- 109.2 永続的なネットワーク設定(4)
- 109.3 基本的なネットワークの問題解決(4)
- 109.4 クライアント側の DNS 設定(2)
登場する単語マップ
コマンドと設定ファイルが入り乱れるため、「どの作業で何を触るのか」を軸にマップしました。メモと疑問点を添えています。
- 主題109
- 109.1 プロトコルの基礎
- 32bit。ドット区切りの10進数4つサブネットマスクから IP レンジを求める方法IPv4
- プライベートアドレスの覚え方プライベートアドレス
- ネットワークアドレス / ブロードキャスト
- 128bit。コロン区切りの16進数8つブロードキャストアドレスはない。代わりにマルチキャストIPv6
- IPv6 アドレスの 0 の省略
::1/fe80::/10
- IPv6 アドレスの 0 の省略
- トランスポート層
- TCP と UDP の違い
TCP/UDP/ICMP
- TCP と UDP の違い
- 覚えておくポート番号ポート番号
/etc/services
- 32bit。ドット区切りの10進数4つサブネットマスクから IP レンジを求める方法IPv4
- 109.2 永続的な設定
- ホスト名
/etc/hostnamehostnamectl
- インターフェース
- Debian 系。ifup / ifdown が読む
/etc/network/interfaces - RHEL 系の旧方式
/etc/sysconfig/network-scripts/ ifup/ifdown
- Debian 系。ifup / ifdown が読む
- NetworkManager
- nmcli の基本操作
nmcli nmtui
- nmcli の基本操作
- systemd
systemd-networkd/etc/systemd/network/
- 名前解決の設定
/etc/hosts/etc/resolv.conf/etc/nsswitch.conf
- ホスト名
- 109.3 問題解決
- 今の状態を見る・変える
- ip コマンドでできること
ip - 旧コマンド。net-tools パッケージ
ifconfig/route hostname
- ip コマンドでできること
- 疎通
ping/ping6traceroute/traceroute6tracepath
- 接続・ポート
ss- 旧コマンド。ss に置き換わった
netstat nc
- 今の状態を見る・変える
- 109.4 DNS クライアント
- 名前解決はどの順で行われるか名前解決の流れ
/etc/nsswitch.confhosts: files dns
/etc/hosts- resolv.conf の設定項目
/etc/resolv.confnameserver/search/domainsystemd-resolved
- 調べるコマンド
- host と dig の違い
host/dig/getent
- host と dig の違い
- 109.1 プロトコルの基礎
109.1 インターネットプロトコルの基礎
サブネットマスクから IP レンジを求める方法
あるアドレスのブロードキャストアドレスと、使えるアドレスの数は暗算で出せるようにしておく。必須級。 マスクと IP を 2 進数に直して AND するような正攻法でなくても、どちらも暗算で求められる。
使えるアドレスの数
使えるアドレスの数は 2^(32 - プレフィックス長) - 2。
/26→ 2^6 - 2 = 62/27→ 2^5 - 2 = 30/28→ 2^4 - 2 = 14
ブロードキャストアドレス
注: ブロードキャストアドレスは、同じネットワークに接続されたすべての機器へ、一度に同じデータを一斉送信するためのアドレス。
ブロードキャストアドレスの求め方を 10.0.0.70/27 を例に見ていく。
10.0.0.70/27
プレフィックス長が決まると、アドレス空間は 2^(32 - プレフィックス長) 個ずつの「ブロック」に等分される。/27 なら 32 個ずつなので、最後のオクテットは 0、32、64、96 … で区切られる。
ブロックの最初がネットワークアドレス、最後がブロードキャストアドレス。だから「自分のアドレスがどのブロックに入っているか」が分かれば、そのブロックの端が答えになる。

手順は次のとおり。
- ブロックの大きさを出す
2^(32 - 27) = 2^5 = 32。最後のオクテットは 32 の倍数で区切られる - 70 を超える最初の 32 の倍数を探す
32、64、96、128 … と数えて、70 の次は 96。
10.0.0.96が次のブロックの先頭 - その 1 つ手前がブロードキャストアドレス
10.0.0.95が答え。ついでに 70 が入るブロックの先頭10.0.0.64がネットワークアドレス
ブロックの先頭(64)と末尾(95)はホストに割り当てられないので、使えるのは 10.0.0.65〜10.0.0.94 の 30 個。これは上の式 2^5 - 2 = 30 と一致する。
プライベートアドレスの覚え方
プライベートかどうかは暗記ゲー。
| クラス | 範囲 | 固定される部分 |
|---|---|---|
| A | 10.0.0.0 〜 10.255.255.255 | 第1オクテットが 10 |
| B | 172.16.0.0 〜 172.31.255.255 | 第1が 172、第2が 16〜31 |
| C | 192.168.0.0 〜 192.168.255.255 | 第1と第2が 192.168 |
第1オクテットが 10 ならまず A クラス確定。
C クラスも 192.168 で確定。
残る B はやや覚えにくいが、172 固定で 16〜31。
192.168 は「いくにいろは」で覚えれば間違いない。
172.16〜31 は「いなに いろ さい🦏」とでも覚えておく。
IPv6 アドレスの 0 の省略
ダメパターンを逆張りで覚えておけば余裕。
1.各ブロックの先頭の 0 は省ける。0db8 → db8、0000 → 0
2.0 だけのブロックが連続する箇所は :: にまとめられる。ただし 1 回だけ
2001:0db8:0000:0000:0000:0000:0000:0001
↓ 1. 各ブロックの先頭の 0 を省く
2001:db8:0:0:0:0:0:1
↓ 2. 連続する 0 のブロックを :: にまとめる
2001:db8::1
だめな IPv6 の例
| だめな理由 | 表記 | 補足 |
|---|---|---|
:: が 2 回 | 2001:db8::1::1 | |
| コロンが 3 つ連続 | 2001:db8:::1 | |
| 16 進数にない値 | 2001:db8::g1 | g を使ってしまっている。使えるのは 0〜9 と a〜f だけ |
| ブロックが足りない | 2001:db8:1:2:3:4:5 | |
| 1 ブロックが 5 桁 | 2001:db8::12345 | 16 進数 4 桁まで |
. で区切っている | 2001.db8.0.0.0.0.0.1 | IPv6 の区切りは :。. は IPv4 |
覚えておくポート番号
| ポート | サービス | 備考 |
|---|---|---|
| 20 / 21 | FTP | 20 がデータ、21 が制御 |
| 22 | SSH | |
| 23 | Telnet | |
| 25 | SMTP | メールの送信・転送 |
| 53 | DNS | UDP と TCP の両方 |
| 80 | HTTP | |
| 110 | POP3 | |
| 143 | IMAP | |
| 443 | HTTPS |
21、23、143 あたりは忘れがち。
ウェルノウンポート
ウェルノウンポートの最小は 0、最大は 1023。
| 範囲 | 名前 | 権限 |
|---|---|---|
| 0〜1023 | ウェルノウンポート | 待ち受けには root 権限が必要 |
| 1024〜49151 | 登録済みポート | 一般ユーザーでも待ち受けできる |
| 49152〜65535 | 動的・プライベートポート | 一般ユーザーでも使える。クライアント側に OS が自動で割り当てる |
109.2 永続的なネットワーク設定
nmcli の基本操作
- NetworkManager → デスクトップ Linux で Wi-Fi やイーサネットのつなぎ先を管理しているデーモン。画面右上のネットワークアイコンから Wi-Fi を選んでつなぐとき、裏で動いているのがこれ
![]()
nmcli → NetworkManager をコマンドラインから操作する窓口
物理的な口が device(eth0、wlan0)、どこにどうつなぐかの設定が connection(「自宅 Wi-Fi」「Wired connection 1」)。状態を見るのは device、設定を書くのは connection。
nmcli device status # デバイスの一覧と状態
nmcli connection show # 接続プロファイルの一覧
実際に打ってみた。
$ nmcli device status
DEVICE TYPE STATE CONNECTION
wlp9s0 wifi connected Buffalo-G-xxxx
lo loopback connected (externally) lo
p2p-dev-wlp9s0 wifi-p2p disconnected --
enp10s0 ethernet unavailable --
$ nmcli connection show
NAME UUID TYPE DEVICE
Buffalo-G-xxxx a1f9d1c7-babe-42ee-98f9-6b7afab6102c wifi wlp9s0
lo 82d27057-10ab-4815-92d2-84e071468738 loopback lo
Buffalo-A-xxxx a33e4b79-ee5f-48c7-ad89-2c68f71d5bd2 wifi --
Wired connection 1 b6b213cf-df25-3d8e-8909-d4b0ab079570 ethernet --
問題集でも見た DEVICE TYPE STATE CONNECTION と、wifi、ethernet が確認できた。
109.3 基本的なネットワークの問題解決
ip コマンドでできること
| オブジェクト | できること | 置き換え前 |
|---|---|---|
ip addr | IP アドレスの表示・追加・削除 | ifconfig |
ip link | インターフェースの up / down、MAC アドレスの表示 | ifconfig |
ip route | ルーティングテーブルの表示・変更 | route |
ip addr show # アドレスの一覧
ip link set eth0 up # インターフェースを有効化
ip route show # ルーティングテーブル
addr、link、route の 3 つは必須級。必ず覚えておく。
TTL の減算
TTL(Time To Live)は IP パケットの「あと何台ルーターを通れるか」。ルーターを 1 つ通るたびに 1 減り、0 にしたルーターがパケットを捨てて、送信元に ICMP の Time Exceeded を返す。ループしたパケットが永遠に回り続けないための仕組み。
traceroute はこれを利用する。TTL を 1、2、3 … と増やしながら送り、Time Exceeded を返してきたルーターを順に並べると経路になる。
109.4 クライアント側の DNS 設定
名前解決はどの順で行われるか
DNS 関連ファイルの /etc/nsswitch.conf、/etc/hosts、/etc/resolv.conf は、どれがどれだかややこしい。
- アプリケーションgetaddrinfo() などで名前解決を依頼する
- /etc/nsswitch.confhosts 行で手段の順番を決める
- /etc/hostsfiles。手書きの対応表を先に見る
- /etc/resolv.confdns。nameserver に問い合わせる
順番を決めるのは /etc/nsswitch.conf の hosts 行。
hosts: files dns
files→/etc/hostsdns→/etc/resolv.confに書いた DNS サーバー
この順なら /etc/hosts に書いた名前は DNS に問い合わせずに解決される。逆にすれば DNS が優先になる。
自分の Ubuntu で打ってみると、教科書どおりの files dns ではなかった。
$ grep ^hosts /etc/nsswitch.conf
hosts: files mdns4_minimal [NOTFOUND=return] dns
mdns4_minimal というなんじゃこりゃな設定がある。調べてみると .local で終わる名前を mDNS(Avahi)で引くための設定のようで、[NOTFOUND=return] は「.local の名前が見つからなければ DNS に行かずに終わる」の意味みたい。.local 以外の名前はそのまま素通りして dns へ。
/etc/nsswitch.conf、/etc/hosts、/etc/resolv.conf はそれぞれ cat して見ておけ。
resolv.conf の設定項目
右に書けるものはキーワードごとに決まっている。
nameserver→ IP アドレスのみsearch→ ドメイン名(複数可)domain→ ドメイン名(1 つ)
nameserver 192.168.1.1
search example.com
host と dig の違い
どちらも DNS サーバーに直接問い合わせる。イメージは host で浅く、dig で詳細に。
| コマンド | 出力 | 使いどころ |
|---|---|---|
host | 簡潔 | 正引き・逆引きをさっと確認する |
dig | 詳細 | DNS の応答そのものを調べる。レコード種別やサーバーを指定できる |
host example.com # 正引き
dig example.com # A レコード。ANSWER SECTION に答え
dig @8.8.8.8 example.com MX # サーバーとレコード種別を指定
/26〜/28の使えるアドレス数は暗記するか、見慣れておくべき。