第3部 ネットワーク
第9章 IPアドレス・サブネット・ルーティング
第8章で「IPアドレスはネットワーク上の住所」だと学びました。この章では、その住所の読み方・区切り方・そして遠くの相手まで届ける仕組み(ルーティング)を、自分のPCで実際にコマンドを打ちながら理解します。ここが分かると、「ネットにつながらない」の切り分けが自分でできるようになります。
🎯 この章で学ぶこと
- IPアドレス(IPv4/IPv6)の表記と意味
- グローバルIPとプライベートIPの違いと使い分け
- サブネットマスク/CIDRと「同じネットワークか」の判定
ipconfig/ip addrで自分のIPを確認する- ルーティング・デフォルトゲートウェイ・
pingによる疎通確認
9.1 IPアドレスとは — ネットワーク上の住所
IPアドレスは、ネットワークにつながった機器一つひとつに割り当てられる「住所」です。手紙に宛先住所が必要なように、パケットを正しく届けるにはこの住所が欠かせません。現在も広く使われているのがIPv4で、次のように0〜255の数字を4つ、ドットで区切って表します。
192.168.1.10
│ │ │ └─ 4つ目の区切り(オクテット)
└───┴──┴─── それぞれ 0〜255 の値
この4つの数字は、内部では32ビットの2進数です(第2章のビットの話を思い出してください)。各区切りは8ビット=1バイトで、8ビットで表せる範囲がちょうど0〜255になります。32ビットで表せるIPアドレスは約43億個。一見多そうですが、世界中の人・スマホ・家電がネットにつながる時代には足りなくなりました。これをIPv4アドレスの枯渇問題といいます。
その解決策として作られたのがIPv6です。128ビットに拡張され、事実上枯渇しないほど膨大な数(約340澗個)を扱えます。表記は次のように16進数(第2章)をコロンで区切ります。
2001:0db8:85a3:0000:0000:8a2e:0370:7334
IPv6は少しずつ普及していますが、社内ネットワークの実務では今もIPv4が主役です。本書もまずIPv4を中心に解説します。
9.2 グローバルIPとプライベートIP
IPv4アドレスには、インターネット上で世界に1つだけのグローバルIPと、家庭内・社内など閉じたネットワークの中だけで使うプライベートIPの2種類があります。プライベートIPには、次の決まった範囲が予約されています。
| 範囲 | アドレス | 主な用途 |
|---|---|---|
| クラスA相当 | 10.0.0.0 〜 10.255.255.255 | 大規模な社内ネットワーク |
| クラスB相当 | 172.16.0.0 〜 172.31.255.255 | 中規模なネットワーク |
| クラスC相当 | 192.168.0.0 〜 192.168.255.255 | 家庭・小規模オフィス |
自宅のPCやスマホのIPを見ると、たいてい 192.168.x.x になっているはずです。これはプライベートIPで、世界中の無数の家庭で同じ 192.168.1.10 が使い回されています。同じ住所が世界中にあって混乱しないのは、プライベートIPがそのLANの中でだけ意味を持つからです。外へ出るときはルーターがグローバルIPに変換します。この変換の仕組みがNATで、第10章で詳しく扱います。
理由は2つあります。1つはアドレスの節約です。すべての機器にグローバルIPを配ると43億個ではとても足りません。家庭内の機器はプライベートIPで済ませ、外に出るときだけ共有のグローバルIPを使えば、大幅に節約できます。もう1つは安全性です。プライベートIPはインターネットからは直接見えないため、外部から社内の1台ずつを名指しで狙うことが基本的にできません。この「分ける」設計自体が、素朴なけれど強力な防御になっています。
9.3 サブネットマスクとCIDR — ネットワークの区切り方
IPアドレスは、実はネットワーク部とホスト部の2つに分かれています。ネットワーク部は「どの町か(どのネットワークか)」、ホスト部は「その町のどの家か(どの機器か)」を表します。この境目を示すのがサブネットマスクです。
| IPアドレス | サブネットマスク | |
|---|---|---|
| 例 | 192.168.1.10 | 255.255.255.0 |
| 意味 | 192.168.1 が町、10 が家 | 255 の部分がネットワーク部 |
サブネットマスクが 255.255.255.0 のとき、先頭から24ビットがネットワーク部、残り8ビットがホスト部です。この「先頭から何ビットがネットワーク部か」を、スラッシュに続けて書く簡潔な表記がCIDR(サイダー)です。
192.168.1.10 / 255.255.255.0 ← 従来の書き方
192.168.1.10/24 ← CIDR表記(どちらも同じ意味)
└ 先頭24ビットがネットワーク部
2台の機器が同じネットワークにいるかは、「ネットワーク部が一致するか」で判定します。同じネットワーク内なら直接やり取りでき、違うネットワークならルーター(9.5)を経由します。簡単な例で確かめましょう。いずれも /24(先頭3つが一致すれば同じ)とします。
| 機器A | 機器B | ネットワーク部(/24) | 判定 |
|---|---|---|---|
| 192.168.1.10 | 192.168.1.20 | どちらも 192.168.1 | 同じネットワーク(直接通信できる) |
| 192.168.1.10 | 192.168.2.20 | 1 と 2 で異なる | 別ネットワーク(ルーター経由) |
/24 はホスト部が8ビットなので約254台、/16 はホスト部が16ビットなので約6万5千台を収容できます。スラッシュの数字が大きいほどネットワーク部が長く、収容できる台数は少なくなります。逆に数字が小さいほど大きなネットワークです。「/の数字が大きい=小さな区画」と覚えておくと混乱しません。
9.4 自分のIPを確認する
ここからは実際に手を動かします。まず「自分のPCのIPアドレス」を確認しましょう。OSによってコマンドが異なります。
WindowsではコマンドプロンプトまたはPowerShellで ipconfig を使います。
C:\Users\you> ipconfig
Windows IP 構成
イーサネット アダプター イーサネット:
IPv4 アドレス . . . . . . . . . . . .: 192.168.1.10
サブネット マスク . . . . . . . . . .: 255.255.255.0
デフォルト ゲートウェイ . . . . . . .: 192.168.1.1
macOS / Linuxでは ip addr(新しい環境)または ifconfig(従来)を使います。
$ ip addr show
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 ...
inet 192.168.1.10/24 brd 192.168.1.255 scope global enp0s3
...
ここで確認すべき3点は次のとおりです。この3つが「自分がどのネットワークのどこにいて、外へ出る出口はどこか」を教えてくれます。
- IPv4アドレス(例 192.168.1.10)— 自分の住所
- サブネットマスク(例 255.255.255.0、CIDRなら /24)— ネットワークの区切り
- デフォルトゲートウェイ(例 192.168.1.1)— 外のネットワークへの出口(9.5)
9.5 ルーティングとデフォルトゲートウェイ
別のネットワーク宛てのパケットを、宛先へ橋渡しするのがルーターの仕事です。ルーターは複数のネットワークにまたがって接続し、届いたパケットの宛先IPアドレスを見て「次はどちらへ渡すか」を判断します。この「経路を選んで転送する」働きがルーティングです。
では、自分のネットワークにいない宛先(たとえばインターネット上のサーバー)へは、どこへ送ればよいのでしょうか。その「とりあえずの出口」がデフォルトゲートウェイです。宛先が同じネットワークになければ、PCはまずデフォルトゲートウェイ(通常は手元のルーター、例 192.168.1.1)へパケットを渡します。あとはルーターからルーターへとバケツリレーで運ばれ、宛先のネットワークまで届きます。
自分のPC(192.168.1.10)
│ 宛先が同じLAN内 → 直接
│ 宛先が外 → デフォルトゲートウェイへ
▼
デフォルトゲートウェイ / ルーター(192.168.1.1)
▼ ルーターからルーターへ中継
……インターネット……
▼
宛先のサーバー
PCが持つ「宛先ごとの送り先の一覧表」をルーティングテーブルといいます。Windowsは route print、Linux/macOSは ip route で確認できます。
$ ip route
default via 192.168.1.1 dev enp0s3 ← 宛先不明はすべてここ(デフォルトGW)へ
192.168.1.0/24 dev enp0s3 scope link ← このネットワークは直接届く
実際にパケットがどのルーターを通って宛先へ届いたか、経路そのものを見ることもできます。Windowsは tracert、Linux/macOSは traceroute です。
$ traceroute example.com
1 192.168.1.1 1.2 ms ← 手元のルーター(デフォルトGW)
2 10.0.0.1 5.4 ms ← プロバイダの機器
3 203.0.113.1 12.8 ms
...
8 93.184.216.34 18.5 ms ← 宛先に到達
1行が1台のルーター(ホップ)にあたり、パケットが何台を経由したかが分かります。「どこまで届いて、どこで止まったか」が見えるため、障害の切り分けに役立ちます。
9.6 疎通確認 — pingで「届くか」を確かめる
ネットワークのトラブル対応で最初に使う道具が ping です。指定した相手に「届きますか?」という小さなパケット(ICMPエコー要求)を送り、相手から「届いています(エコー応答)」が返るかを確かめます。相手が生きていて、経路がつながっていれば返事が返ります。
$ ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1): 56 data bytes
64 bytes from 192.168.1.1: icmp_seq=0 ttl=64 time=0.8 ms
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.7 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.9 ms
--- 192.168.1.1 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
time= は往復にかかった時間(応答が速いほど良好)、packet loss はパケットの取りこぼし率です。ロスが多い・時間が大きく揺れる場合は回線品質に問題があります。Windowsでは ping example.com のように使い、既定では4回送って止まります(Linux/macOSは Ctrl+C で停止)。
「ネットにつながらない」ときは、手元から順に外へpingして、どこまで届くかを確かめるのが鉄則です。次の順に試すと、原因がどこにあるか一気に絞り込めます。
ping 127.0.0.1(自分自身=ループバック)— 返らなければPCのネットワーク設定そのものが不調- デフォルトゲートウェイ(例
ping 192.168.1.1)— 返らなければLAN内・ケーブル・Wi-Fiの問題 - 外部のIP(例
ping 8.8.8.8)— 返らなければルーターから外への経路の問題 - ドメイン名(例
ping example.com)— IPは届くのにここだけ失敗なら名前解決(DNS)の問題(第10章)
「8.8.8.8 には届くのに example.com はダメ」なら、ネットワーク自体は正常でDNSが原因、と即座に判断できます。この切り分けの思考は実務で毎日役立ちます。
セキュリティ上の理由で、ping(ICMP)への応答をわざと無効にしているサーバーやファイアウォールは珍しくありません。したがって「pingが返らないから相手は落ちている」と断定はできません。Webサーバーなら、pingではなく実際に curl(第11章)でHTTPを叩いてみる、といった別の確認も併せて行いましょう。1つの道具の結果だけで結論を出さないのが、切り分けのコツです。
ネットワークを目的ごとに区切ることをセグメンテーション(ネットワーク分離)といい、運用と防御の基本です。たとえば「業務PCのネットワーク」「サーバーのネットワーク」「来客用Wi-Fi」をサブネットで分けておけば、来客用に紛れ込んだ不審な機器が、いきなり社内サーバーへ手を伸ばすことを防げます。万一どこか1区画が侵害されても、被害をその区画に封じ込めやすくなる——これが多層防御の考え方です。さらに、9.2で見たようにプライベートIPとNAT(第10章)のおかげで、社内の各PCはインターネットから直接名指しで狙われません。「見えないものは攻撃しにくい」という素朴な原則が、ここでも効いています。分離の設計と運用は、🧑💻 一人情シスコース第5章(ネットワークの基礎運用)でも実務目線で扱われるテーマです。
まとめ
- IPアドレスはネットワーク上の住所。IPv4は32ビットで枯渇しつつあり、IPv6(128ビット)へ拡張された
- プライベートIP(10./172.16-31./192.168.)はLAN内専用。外へ出るときNATでグローバルIPに変換される
- サブネットマスク/CIDR(/24など)はネットワーク部とホスト部の境目。ネットワーク部が一致すれば同じネットワーク
ipconfig(Windows)/ip addr(Linux・mac)で自分のIP・マスク・ゲートウェイを確認できる- 別ネットワーク宛てはデフォルトゲートウェイ(ルーター)へ。
tracerouteで経路、pingで疎通を確認する - 切り分けは「自分→ゲートウェイ→外部IP→ドメイン名」の順で近い所から外へ
練習問題
次の3台は、それぞれ同じネットワークにいるでしょうか。サブネットマスクはすべて /24(255.255.255.0)とします。
A: 192.168.10.5 / B: 192.168.10.200 / C: 192.168.20.5
解答を見る
/24 なので、先頭3つの数字(ネットワーク部)が一致すれば同じネットワークです。AとBはどちらも 192.168.10 で一致するため同じネットワークにいて、直接通信できます。Cは 192.168.20 でA・Bと異なるため別ネットワークで、AやBと通信するにはルーター(デフォルトゲートウェイ)を経由します。ホスト部の末尾の数字(5, 200)は判定に関係ありません。
「ネットが遅い・切れる」と相談を受け、ping 192.168.1.1(デフォルトゲートウェイ)を実行したところ、次の結果になりました。ここから何が読み取れますか。10 packets transmitted, 6 packets received, 40% packet loss
解答を見る
ゲートウェイまでの通信で、送った10個のうち4個が失われています(パケットロス40%)。ゲートウェイまでのLAN内(手元の区間)ですでに大きな取りこぼしが起きていることを示します。原因はLANケーブルの接触不良や断線、Wi-Fiの電波状態の悪さ、あるいはポートやハブの不調などが考えられます。まだ外(インターネット)まで行かない手前の段階で問題があるため、プロバイダやWebサイト側ではなく、まず手元の配線・無線環境を疑うべきです。有線に替える、ケーブルを挿し直す、Wi-Fiなら電波の良い場所で再確認する、といった切り分けが有効です。
ping 8.8.8.8 は正常に応答が返るのに、ping example.com は「名前を解決できません」と失敗します。ネットワークのどこに問題があると考えられますか。
解答を見る
IPアドレス(8.8.8.8)への通信は成功しているので、ネットワークの経路そのものは正常です。失敗しているのは「example.com という名前を、IPアドレスに変換する」段階だけなので、原因は名前解決(DNS)にあります。DNSサーバーの設定が間違っている、DNSサーバーに届いていない、といった可能性が高いです。DNSの仕組みと確認方法は第10章で扱います。この問題は「ネットが繋がらない」相談の非常に典型的なパターンで、ネットワーク自体とDNSを切り分けられることが実務では重要です。