LPIC Level1 復習ラジオ 22:ネットワーク総復習

投稿日:2026-07-11

音声

※ AI音声で読み上げます

目次

  1. ネットワーク通信の全体像
  2. OSI参照モデル
  3. TCP/IPモデル
  4. IPアドレスとプレフィックス
  5. MACアドレスと同一ネットワーク
  6. ARP
  7. DNS
  8. DHCP
  9. ルーティング
  10. 通信の流れと障害切り分け
  11. 30秒チェック
  12. 要約

ネットワーク通信の全体像

ネットワーク通信は、一つの仕組みだけで成立しているわけではありません。名前、IPアドレス、MACアドレス、ポート番号、経路などが、それぞれ異なる役割を担当します。

情報主な役割
ホスト名・ドメイン名人やアプリケーションが通信相手を名前で指定するwww.example.com
IPアドレスIPネットワーク上の送信元と宛先を識別する192.0.2.102001:db8::10
MACアドレス同じリンク上で次にフレームを渡す相手を識別する02:00:5e:10:00:01
ポート番号同じ端末上のどのアプリケーションへ渡すかを識別するSSHの22、HTTPSの443など
ルーティング情報宛先へ送るためのインターフェースや次のゲートウェイを選ぶdefault via 192.0.2.1

Webサイトへ接続する大まかな流れ

  1. DNSなどを使い、名前に対応するIPアドレスを調べる
  2. 宛先IPアドレスに対して、ルーティングテーブルから経路を選ぶ
  3. 同一ネットワークなら宛先端末、別ネットワークならゲートウェイを次の転送先にする
  4. IPv4ではARPを使い、次の転送先のMACアドレスを調べる
  5. Ethernetフレームの中へIPパケットを格納し、リンク上へ送信する
  6. TCPやUDPがポート番号を使い、目的のアプリケーションへデータを届ける

OSI参照モデル

OSI参照モデルは、ネットワーク通信の機能を七つの階層に分けて整理する考え方です。実際のプロトコルが必ず一つの層へ完全に収まるわけではありませんが、障害箇所を分類するときに役立ちます。

名称主な役割
第7層アプリケーション層アプリケーションへ通信機能を提供するHTTP、DNS、SSH、SMTP
第6層プレゼンテーション層データ表現、文字コード、暗号化、圧縮などを扱うデータ形式、暗号化処理
第5層セッション層通信の開始、維持、終了を管理するセッション管理
第4層トランスポート層アプリケーション間の転送、ポート、信頼性を扱うTCP、UDP
第3層ネットワーク層異なるネットワーク間の転送と経路選択を行うIPv4、IPv6、ICMP、ルーティング
第2層データリンク層同じリンク上でフレームを転送するEthernet、MACアドレス、スイッチ
第1層物理層電気信号、光、電波などでビットを運ぶケーブル、コネクタ、無線信号

障害を層で整理する例

  • リンクがDOWN、ケーブルが未接続:第1層または第2層
  • 同じLAN内でARPが解決できない:主に第2層周辺
  • IPアドレスやデフォルトルートが誤っている:第3層
  • 相手まで到達するがTCP接続できない:第4層、ファイアウォール、待受状態など
  • IPアドレスでは接続できるが名前では失敗する:第7層のDNSや名前解決設定

下の層で問題が起きると、上の層も利用できません。まずリンク、次にIP、経路、名前解決、アプリケーションという順に確認すると整理しやすくなります。

TCP/IPモデル

インターネットで使われるプロトコル群は、一般にTCP/IPモデルの四層で整理されます。

TCP/IPモデル主な役割主な例OSI層の目安
アプリケーション層アプリケーション向けの通信機能HTTP、DNS、SSH、DHCP第5層から第7層
トランスポート層アプリケーション間のデータ転送TCP、UDP第4層
インターネット層IPアドレスによる配送と経路選択IPv4、IPv6、ICMP第3層
リンク層直接接続されたリンク上での転送Ethernet、無線LAN、ARP第1層と第2層

カプセル化

送信側では、上位層のデータへ各層のヘッダーなどを付加します。受信側では逆の順番で取り外し、アプリケーションへ渡します。

アプリケーションデータ
  ↓ TCP・UDPヘッダーを付加
セグメントまたはデータグラム
  ↓ IPヘッダーを付加
IPパケット
  ↓ Ethernetヘッダーなどを付加
フレーム

TCPとUDP

観点TCPUDP
接続通信前に接続を確立する接続確立を行わない
信頼性順序制御、再送、確認応答などを行うプロトコル自身では再送や順序保証を行わない
単位バイトストリームデータグラム
代表例SSH、HTTP、HTTPSDNSの一般的な問い合わせ、DHCPなど

TCPの代表的な接続確立は、SYN、SYN-ACK、ACKの三段階です。ただし、TCP接続が確立できても、アプリケーションの認証や処理が成功するとは限りません。

ss -lntup
ss -tn

ssでは、待受ソケットやTCP接続の状態を確認できます。

IPアドレスとプレフィックス

IPアドレスは、IPネットワーク上のインターフェースを識別するために使われます。アドレスだけでなく、プレフィックス長と組み合わせてネットワーク範囲を判断します。

IPv4

IPv4アドレスは32ビットです。通常は、8ビットずつ十進数で区切って表します。

192.168.10.25/24

/24は、先頭24ビットがネットワーク部分であることを表します。この場合、一般的なネットワーク範囲は192.168.10.0/24です。

範囲・アドレス主な意味
10.0.0.0/8プライベートIPv4アドレス
172.16.0.0/12プライベートIPv4アドレス
192.168.0.0/16プライベートIPv4アドレス
127.0.0.0/8ループバック。代表例は127.0.0.1
169.254.0.0/16IPv4リンクローカル
0.0.0.0/0すべてのIPv4宛先に一致するデフォルト経路

IPv6

IPv6アドレスは128ビットで、16進数とコロンを使います。連続するゼロは、アドレス内で一度だけ::として省略できます。

2001:db8:10::25/64
::1
fe80::1
  • ::1:IPv6のループバック
  • fe80::/10:IPv6リンクローカル
  • ::/0:IPv6のデフォルト経路

確認コマンド

ip -br address
ip -4 address show
ip -6 address show
ip route get 198.51.100.10

MACアドレスと同一ネットワーク

MACアドレスは、Ethernetなどのリンク層で、同じリンク上の送信元と宛先を識別するために使われます。一般的なEthernetのMACアドレスは48ビットです。

02:00:5e:10:00:01

ルーターを越えるたびに、リンク層のフレームは作り直されます。そのため、送信元MACアドレスと宛先MACアドレスはホップごとに変わります。一方、通常のIP転送では、最終宛先IPアドレスは変わりません。

同じネットワークへ送る場合

  • 宛先IPアドレスとプレフィックスから、相手が同一ネットワークだと判断する
  • ARPで相手のIPv4アドレスに対応するMACアドレスを調べる
  • 相手のMACアドレスを宛先にしてフレームを送る

別のネットワークへ送る場合

  • ルーティングテーブルからゲートウェイを選ぶ
  • ARPでゲートウェイのMACアドレスを調べる
  • ゲートウェイのMACアドレスを宛先にしてフレームを送る
  • IPパケットの宛先IPアドレスは、最終的な通信相手を示す
ip link show
ip -br link
ip neighbour show

MACアドレスは変更できる場合があるため、「機器そのものを絶対に証明する番号」と考えるのは不正確です。

ARP

ARPは、IPv4アドレスに対応するリンク層アドレス、一般的にはMACアドレスを調べるためのプロトコルです。

基本的な流れ

  1. 送信元が「このIPv4アドレスを持つ端末は誰か」というARP Requestをブロードキャストする
  2. 該当する端末が、自分のMACアドレスをARP Replyで返す
  3. 得られた対応関係を近隣キャッシュへ一時的に保存する
  4. 以後のフレーム送信で、そのMACアドレスを利用する
ip neighbour show
ip neigh show dev enp0s3
ip neigh show 192.0.2.1
状態意味
REACHABLE最近到達できることを確認した
STALE情報はあるが、最近の到達確認はない
DELAY確認を少し待っている
PROBE到達確認を試行している
INCOMPLETEMACアドレスをまだ取得できていない
FAILED近隣解決に失敗した

INCOMPLETEFAILEDが続く場合は、相手が同じリンク上にいない、プレフィックスが誤っている、VLANが異なる、相手が停止している、リンク障害があるなどを確認します。

ARPで覚えるポイント

  • ARPはIPv4で使われる
  • ARPが解決する対象は、同じリンク上の相手または次のゲートウェイ
  • 遠隔地の最終サーバーのMACアドレスを直接調べるわけではない
  • IPv6ではARPではなくNeighbor Discoveryを使う

古いarpコマンドもありますが、現在はip neighbourによる確認が基本です。

DNS

DNSは、ドメイン名とIPアドレスなどの情報を対応付ける、階層型で分散された仕組みです。

名前解決の大まかな流れ

  1. アプリケーションが、ホスト名に対応するアドレスを必要とする
  2. システムの名前サービス設定やローカルキャッシュを確認する
  3. 必要なら設定されたDNSリゾルバーへ問い合わせる
  4. リゾルバーがキャッシュ、ルート、TLD、権威DNSサーバーなどを使って回答を得る
  5. 結果がアプリケーションへ返され、一定時間キャッシュされる
レコード主な内容
A名前に対応するIPv4アドレス
AAAA名前に対応するIPv6アドレス
CNAME別名から正規名への対応
MXメール配送先
NSゾーンを担当する権威DNSサーバー
PTR逆引きで使う名前への対応
SOAゾーンの管理情報
TXT文字列情報

Linuxの名前解決に関係するファイル

ファイル主な役割
/etc/nsswitch.conf名前サービスの参照元と順序を指定する
/etc/hostsIPアドレスとホスト名を静的に対応付ける
/etc/resolv.confDNSリゾルバー、検索ドメイン、リゾルバーオプションなどを指定する
grep '^hosts:' /etc/nsswitch.conf
cat /etc/hosts
cat /etc/resolv.conf

getent hosts example.com
dig example.com A
dig example.com AAAA
dig -x 192.0.2.10

getent hostsは、/etc/nsswitch.confに設定された名前サービスの順序を通して確認します。digはDNSへ問い合わせ、DNS応答を詳しく確認します。両者の結果が異なる場合は、/etc/hosts、NSS、ローカルキャッシュ、問い合わせ先DNSサーバーなどを分けて確認します。

代表的なDNS応答

  • NOERROR:問い合わせ処理は成功。ただし、指定タイプの回答が空の場合もある
  • NXDOMAIN:問い合わせた名前が存在しない
  • SERVFAIL:DNSサーバーが処理を完了できなかった
  • REFUSED:DNSサーバーが問い合わせを拒否した

DHCP

DHCPは、端末へIPアドレスや各種ネットワーク設定を自動的に配布するためのプロトコルです。

主な配布情報

  • IPアドレス
  • サブネットマスクまたはプレフィックス
  • デフォルトゲートウェイ
  • DNSサーバー
  • ドメイン名や検索ドメイン
  • リース時間

DHCPv4のDORA

段階メッセージ意味
1Discoverクライアントが利用可能なDHCPサーバーを探す
2Offerサーバーが利用可能なアドレスや設定を提案する
3Requestクライアントが利用したい提案を要求する
4ACKサーバーが割り当てを承認する

DHCPv4サーバーは通常UDP 67番、クライアントはUDP 68番を使います。クライアントがまだIPアドレスを持たない段階では、ブロードキャストが利用されます。

ブロードキャストは通常ルーターを越えないため、別ネットワーク上のDHCPサーバーを利用する場合はDHCPリレーが使われます。

Linuxでの確認

ip -br address
ip route
cat /etc/resolv.conf
journalctl -b | grep -i dhcp

NetworkManager、systemd-networkd、dhclientなど、DHCPを扱う仕組みは環境によって異なります。設定変更や再取得では、利用中のネットワーク管理方式を確認します。

取得できない場合の見方

  • インターフェースがDOWNになっていないか
  • ケーブル、無線、VLANなどリンク層が正しいか
  • DHCPサーバーまたはリレーへ到達できる構成か
  • アドレスプールが枯渇していないか
  • 固定IP設定とDHCP設定が競合していないか
  • ログにDiscover、Offer、Request、ACKのどこまで記録されているか

169.254.0.0/16のアドレスが付いている場合、DHCP取得に失敗し、リンクローカルアドレスが選ばれた可能性があります。ただし、実装や設定によって動作は異なるため、ログも確認します。

ルーティング

ルーティングは、宛先IPアドレスに対して、どのインターフェースから、どの次の転送先へ送るかを決める仕組みです。Linuxホストも、自分が送信するパケットについてルーティングテーブルを参照します。

ip route show
ip -4 route
ip -6 route
ip route get 203.0.113.10

代表的な表示

default via 192.0.2.1 dev enp0s3
192.0.2.0/24 dev enp0s3 proto kernel scope link src 192.0.2.10
198.51.100.0/24 via 192.0.2.254 dev enp0s3
表示意味
defaultより具体的な経路がない宛先に使う
via次に渡すゲートウェイ
dev送信に使うインターフェース
src送信元として選ばれるアドレス
metric同程度の経路候補の優先度判断に使われる値

最長プレフィックス一致

複数の経路が宛先に一致する場合、一般に最もプレフィックス長が長い、つまり最も具体的な経路が選ばれます。

0.0.0.0/0
198.51.0.0/16
198.51.100.0/24

宛先が198.51.100.25なら、三つの中では198.51.100.0/24が最も具体的です。

デフォルトルート

デフォルトルートがなくても、直接接続された同一ネットワーク内とは通信できる場合があります。しかし、より遠いネットワークへ出る経路がなければ、外部通信はできません。

ルーターとして転送する場合

sysctl net.ipv4.ip_forward
sysctl net.ipv6.conf.all.forwarding

Linuxをルーターとして使い、受信したパケットを別インターフェースへ転送する場合は、IP forwardingの設定やファイアウォール、戻り経路も確認します。

通信の流れと障害切り分け

ネットワーク障害では、手元から外側へ、下位層から上位層へ確認します。

基本的な確認順序

  1. インターフェースが存在し、リンクがUPか
  2. IPアドレスとプレフィックスが正しいか
  3. ルーティングテーブルとデフォルトルートが正しいか
  4. 特定宛先へ実際にどの経路が選ばれるか
  5. 同一ネットワークまたはゲートウェイへ到達できるか
  6. ARP・近隣キャッシュで次の相手を解決できるか
  7. 名前解決が成功するか
  8. 目的のTCP・UDPポートやアプリケーションが利用できるか
ip -br link
ip -br address
ip route
ip route get 198.51.100.10
ip neighbour show
ping -c 4 192.0.2.1
getent hosts example.com
dig example.com
ss -lntup
curl -v https://example.com/

症状から考える場所

症状主な確認対象
インターフェースがDOWNリンク、ネットワーク管理設定、ケーブル、無線
IPアドレスが付かないDHCP、固定設定、リンク、VLAN、ログ
同一ネットワークの相手へ届かないプレフィックス、ARP、VLAN、相手の状態、重複IP
ゲートウェイへ届くが外部へ届かないデフォルトルート、上流ルーター、戻り経路、ファイアウォール
IPアドレスでは成功し、名前では失敗DNS、/etc/hosts/etc/nsswitch.conf/etc/resolv.conf
pingは通るがSSHやWebへ接続できない待受ポート、サービス、ファイアウォール、アプリケーション設定
特定端末だけ通信が不安定重複IP、ARPキャッシュ、リンク品質、端末固有設定

一連の通信を言葉で追う

curl https://example.com/を実行した場合、まず名前解決でIPアドレスを得ます。次に、カーネルがルーティングテーブルから経路を選びます。宛先が別ネットワークなら、ARPでゲートウェイのMACアドレスを調べます。その後、TCP接続を確立し、TLSやHTTPの処理へ進みます。

このため、エラーが出た位置によって確認対象が変わります。

  • 名前を解決できない:DNSやNSS
  • Network is unreachable:ルーティング
  • No route to host:経路、近隣解決、ファイアウォールなど
  • Connection refused:相手まで到達したが、ポートで待ち受けていない可能性
  • Connection timed out:途中で破棄、応答なし、経路不備など
  • TLSやHTTPのエラー:接続後の暗号化やアプリケーション層

30秒チェック

  1. OSI参照モデルで、IPとルーティングは主に第何層でしょうか。
  2. TCP/IPモデルの四つの層を、上から順に答えてください。
  3. 別ネットワーク上のサーバーへ送るとき、最初のフレームの宛先MACアドレスは通常誰のものでしょうか。
  4. ARPは、何と何の対応を調べるでしょうか。
  5. IPv6でARPの代わりに使われる仕組みは何でしょうか。
  6. /etc/nsswitch.conf/etc/resolv.confは、名前解決で何が違うでしょうか。
  7. DHCPv4のDORAを順番に答えてください。
  8. 複数の経路が一致するとき、一般にどの経路が優先されるでしょうか。
  9. デフォルトルートがなくても通信できる可能性がある範囲はどこでしょうか。
  10. IPアドレスでは接続でき、ホスト名では失敗する場合、最初に疑う仕組みは何でしょうか。
答えを表示
  1. 第3層のネットワーク層
  2. アプリケーション層、トランスポート層、インターネット層、リンク層
  3. 次の転送先であるデフォルトゲートウェイなどのMACアドレス
  4. IPv4アドレスとMACアドレスなどのリンク層アドレス
  5. Neighbor Discovery
  6. nsswitch.confは名前サービスの参照元と順序、resolv.confはDNSリゾルバーなどの設定
  7. Discover、Offer、Request、ACK
  8. 最長プレフィックス一致により、最も具体的な経路
  9. 直接接続された同一ネットワーク
  10. DNSを含む名前解決設定

要約

  • OSI参照モデルは七層、TCP/IPモデルは一般に四層で通信機能を整理します。
  • IPアドレスはIPネットワーク上の宛先、MACアドレスは同じリンク上の次の転送先を示します。
  • 別ネットワークへ送るとき、フレームの宛先MACはゲートウェイ、IPパケットの宛先IPは最終相手です。
  • ARPはIPv4アドレスとリンク層アドレスを対応付け、IPv6ではNeighbor Discoveryを使います。
  • DNSは名前とアドレスなどを対応付けます。LinuxではNSS、/etc/hosts/etc/resolv.confも確認します。
  • getent hostsはシステムの名前サービス経由、digはDNS問い合わせの確認に向きます。
  • DHCPv4の基本的な取得順序はDiscover、Offer、Request、ACKです。
  • ルーティングでは最長プレフィックス一致が基本で、デフォルトルートはより具体的な経路がない宛先に使われます。
  • ip route getで、特定宛先へ実際に選ばれる経路を確認できます。
  • 障害時は、リンク、IP、経路、ARP、DNS、ポート、アプリケーションの順に切り分けます。

参考資料