IPアドレスをざっくり理解したい人向けに、ネットワークの基本をまとめます。
出てくる用語は全部、データを“正しい相手に・正しく”届けるための役割分担です。まず全体像から。
全体像(宅配でたとえる)
| 用語 | 役割(宅配でいうと) |
|---|---|
| IPアドレス | 住所(どこへ) |
| DNS | 住所を調べる役所/電話帳(名前 → 住所) |
| サブネットマスク | 郵便番号(どのエリアか) |
| ポート | 受付の窓口・部屋番号(その建物の“どのサービス”宛か) |
| TCP / UDP | 配達方法(確実な「書留」か、速い「普通郵便」か) |
| パケット | 荷物を小分けにした箱 |
| 3wayハンドシェイク | 配達前の「送るよ/受け取れるよ/じゃあ送るね」の確認 |
この地図を頭に置くと、以下の内容がわかりやすくなると思います。
IPアドレスとは?
ひとことで言うと、**ネット上の「住所」**です。
「東京都中央区XX-999」みたいな住所を、数字に置き換えたもの。
XXX.XXX.XXX.XXX(例 192.168.1.10)の形をしています。
そもそも住所には現在大きく二つの書き方があります。IPv4とIPv6です。
今回の例は基本IPv4で書きます。
登場人物は2人だけ
- サーバ(サービス提供者):HP・YouTube・SNSなどのサービスを動かしている側
- クライアント(あなたのスマホ・PC):それを見る側
IPの話は、基本この2人のやり取りです。
内部IP(プライベート)と外部IP(グローバル)
- 外部IP(グローバル):インターネット上で世界に1つの住所。外から見えるのはこれ。
-
内部IP(プライベート):家や社内の“中だけ”で使える住所。役所に登録できない番号。
決まった範囲だけ使えます。以下にIPv4の例を記載します:-
10.0.0.0〜10.255.255.255 -
172.16.0.0〜172.31.255.255 -
192.168.0.0〜192.168.255.255 - ※
127.0.0.1は loopback =「自分自身」を指す特殊IP(他人には割り当てない)
-
なぜ内部IPがある?
全員が外部IPを持つとIPv4のホスト上限数43億じゃ足りなくなってしまいます。
そこで「外向きは1つの外部IP、家の中や職場などでは内部IPで回す」とし、
ルーターが内外を変換します。これが NAT です。
内部のアドレスを持つと内部の通信は外部にいかないのでセキュリティを強化できたりします。
NATとは
簡単にいうと、外に出るときの“名刺”みたいなものです。
「この家(会社)からの通信です」と分かるようにして外に送り出します。
具体的には、内部IP(家の中だけの番号)を、外でも通じる外部IP(=名刺)に書き換えて送る。
こうしないと、サービス側のサーバがどこに返せばいいか分からなくなるから。
補足:外から見えるのは“名刺=外部IP”だけ。家の中の内部IPは外には見えません。
ただし、同じ名刺(外部IP)を家族みんなで使うと、戻りの通信が「誰宛か」分からなくなる。
それを解決するのが、後で出てくる NAT+ポート です。
IPv4が足りない問題と、それを補う仕組み
全員に外部IPを配ると43億では足りなくなってしまい、内部IP以外にもそれを補うために:IPv6/内部IP(+NAT)/DHCP/PORTという技術があります。
-
IPv4:
0.0.0.0〜255.255.255.255(各ブロックは0〜255)。住所は約43億個。 -
IPv6:
::〜ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff。約340澗個(3.4×10³⁸)。
多すぎて、ぶっちゃけ使い切れません。
IPアドレスは中身は2進数(0と1)。それを、IPv4は10進数、IPv6は16進数で表示しているだけです。
現状はまだIPv4が基本ですが、IPv4アドレスが枯渇してきたため、IPv6への移行が進んでいます。実際に通信業者の内部ではIPv6が主流になってきています。
IPv4とIPv6の見え方(例)
IPv4(32ビット = 8ビット×4。表示は10進数)
192.168.1.10- 2進数で書くと:
11000000.10101000.00000001.00001010
(192=11000000/ 168=10101000/ 1=00000001/ 10=00001010)
IPv6(128ビット = 16ビット×8。表示は16進数)
- フル:
2001:0db8:0000:0000:0000:0000:0000:0001 - 省略:
2001:db8::1- 各ブロックの先頭の0は省ける(
0db8→db8) -
連続する0のブロックは
::で1回だけまとめられる(0000:…:0000→::)
- 各ブロックの先頭の0は省ける(
基本、私たちが覚えるのは IPv4だけでOK。v6を使うときはv4と共存させる方法もあるので、それは別途。
ちなみにIPv6も :: で0を省けば意外と短く書けるので、将来はエンジニアが手でIPv6を設定する場面も増えるかもしれません。
サブネットマスク = 郵便番号(どのエリアか)
192.168.10.1 に届けたいとき、内部という情報だけでどこに届けていいか分かりません。
そこで サブネットマスク。アドレスを NW部(どの区画か) と HOST部(その中の誰か) に分けます。
- マスクの 1の部分=NW部、0の部分=HOST部(
/24=255.255.255.0 = 11111111.11111111.11111111.00000000=上位24ビットがNW部) - 例:
192.168.1.0/24=1階の区画、192.168.2.0/24=2階…とすると、
192.168.10.0/24は「10階」と推測できる。→ 10階に行って受付に聞けば「XXXさんですね」と届く。 - CIDR:この区切りをもっと細かく/大きくする仕組み。
何台収容できるか = ホスト部の長さで決める(設計の話)
NW部を長くするほど、ホスト部が短くなり、収容できる台数が減る。逆も同じ。
ざっくりの目安(IPv4):
| 表記 | 使える台数(目安) |
|---|---|
| /24 | 約254台 |
| /23 | 約510台 |
| /22 | 約1022台 |
| /26 | 約62台 |
| /28 | 約14台 |
※ホスト部が n ビットなら 2ⁿ − 2 台(先頭=ネットワーク、末尾=ブロードキャスト用に2つ引く)。
エンジニア向けですが、基本的に現場ではほとんどわかりやすいように/24しか使いません。IPとか手打ちするのがほとんどなので。
なので256-NWアドレス(1)-ブロードキャスト(1)-NW内のデフォルトゲートウェイ(1)使えるんだなくらいに覚えておけばいいと思います。
時々細かい現場があるので2進数の16.32.64.128.256.512.1024あたりは覚えておくといいです。
設計の基本は「必要数 + 余力 に収まる、最小のサブネット」。
- 例:ある階で使う人数が、実数+余力で 約1000人 なら、
/24(254台)では足りない。
→/22(約1022台)を割り当てる設計になる。 - 逆に、ほとんど通信しない部屋・数台しかない区画は
/28(14台)など小さく割り当てて、アドレスを温存する。大きすぎる枠を配ると無駄になるので。
DHCP = 使い捨ての内部IPを自動で配る
家・職場・カフェのWiFi接続のたびに固定でIPアドレスを持ったら、すぐ枯渇します。
だから「接続している間だけ、内部IPを自動で1つ貸す」のが DHCP(期限つきの貸し出し=リース)。
あなたが意識せず色んな場所でスマホを使えるのは、これのおかげです。
WiFiの仕組み(つなぐとDHCPでIPが配られる)
WiFiは、LANケーブルの代わりに 電波でネットワークに繋ぐ 仕組みです。
- アクセスポイント(家庭ではWiFiルーターが兼ねる) が電波を出し、スマホやPCを繋げます。
- 繋いだら、基本はDHCPで内部IPが自動で配られる(だから設定なしで使える)。
- 外に出るときは、ルーターの NAT+ポート で、1つの外部IPをみんなで共有する。
つまり「WiFiに繋ぐ → DHCPで内部IPをもらう → NATで外へ」。
カフェでも家でも、何の設定もせずスマホが使えるのは、この流れが裏で動いているからです。
ポート = どのサービス宛か(受付の窓口)
IPで「どの建物(機器)か」は分かるが、「中のどのサービスか」は分からない。
HPを見る場合はWEBサイトをブラウザに表示するためのページが欲しいですよね。
そこで ポート を使用します。IPと一緒に渡して「httpなのか、メールなのか」を示す“窓口番号”。
ポートはIANAという団体が公式に管理していて、範囲は3つ:
- 0〜1023:ウェルノウン(決まったサービス)… HTTP 80/HTTPS 443/SSH 22/DNS 53 など
- 1024〜49151:登録済み(Registered)
- 49152〜65535:動的/一時(あなたのPCが通信のたびに使う“返信用の席”)
覚えるのはウェルノウンだけでOK。
公式一覧 → IANA: Service Name and Transport Protocol Port Number Registry
NAT+ポート:1つの外部IPを、みんなで共有する
家にはPC・スマホ・タブレット…と機器が何台もあるのに、外部IPは基本1つ。
全部が同じ外部IPで外に出ると、返信が来たとき「どの機器の、どの通信宛か」が分からなくなります。
これを解決するのが NAT+ポート(NAPT)。ルーターが 変換テーブル を持ちます:
- 外に出るとき、送信元を
内部IP:内部ポート→外部IP:割り当てたポートに 書き換えて記録。 - 返信が
外部IP:そのポートで来たら、テーブルを見て 元の機器・通信に戻す。
例:PC-A と PC-B が同時にGoogleを見る。
- 両方とも外部IP
203.0.113.5で出るが、ルーターが A→ポート50000、B→ポート50001を割り当てて記録。 - Googleからの返信が
:50000なら A、:50001なら B に戻す。
→ NATとポートがないと、1つの外部IPを共有したときに「あなた(その機器の、その通信)」を識別できない。
ポート番号が、機器ごと・通信ごとの“見分け札”になっているわけです。
DNS = 役所(名前↔住所の変換)
人間は test.co.jp と覚えるが、機械はIPで動く。その変換が DNS。
サービス提供者は事業者(ISP)から 固定のグローバルIP をもらい、DNSに「test.co.jp = このIP」と登録します。
その問い合わせに答えるのが DNSサーバ(役所の窓口)。
豆知識:困ったときの
8.8.8.8(Google Public DNS)。
ふだん意識して使うことは少ないけど、「ネットが繋がらない/DNSが怪しい」ときに、
DNSサーバをこれに変えると、切り分け・復旧できることがある。エンジニアなら覚えておくと便利。
届け方は2種類:TCP と UDP
データの「届け方」に2種類あります。
-
TCP(確実さ重視=書留):届いたかを確認しながら送る。欠けたら再送、順番も守る。
→ Webサイト・ファイル・メールなど「欠けたら困る」もの。 -
UDP(速さ重視=普通郵便/放送):届いたか確認しない・再送しない。代わりに速くて軽い。
→ 動画・通話・DNSなど「多少欠けても、それより速さ」のもの。
HPを見るのは TCP(文字が欠けたら困るから)。
パケット = 荷物を小分けにした箱
データは丸ごとでなく、小さな パケット に分割して送ります。
各パケットに「宛先IP:ポート/送信元IP:ポート/順番」などの“宛名ラベル”が付く。
相手で順番通り組み立て、欠けたら再送(←TCPの仕事)。
3wayハンドシェイク = TCPを成り立たせるための“準備”
TCP(確実に届けるプロトコル)を実現するための技術が、この3wayハンドシェイクです。
TCPの仕事は「ちゃんと届いたかを確認しながら送る」こと。でも、いきなりデータを送りつけても、
相手が受け取れる状態か/回線が“行き帰り”ちゃんと通じているかが分かりません。
だからTCPは、データを送り始める前に、お互い「通じてるね」を握ってから始めます。その準備が3wayです。
その上で、具体的にはこんなことが行われています:
- SYN:「もしもし、これから送りたい」(行きが通じるか)
- SYN+ACK:「聞こえてます。こっちも準備OK」(帰りも通じるか)
- ACK:「了解、じゃあ始めます」(お互い準備OKの合意)
なぜ3回か:①で“行き”、②で“帰り”が通じることを確認し、③で「両方準備できた」を握る。
2回だと「帰りも本当に通じるか/相手が準備できたか」が確定しません。
この確認をしてから送るから、TCPは信頼できる。UDPはこれを省くので速い(その代わり確認なし)。
※ HTTPSは、この後に TLS(暗号化の握手=鍵交換) も挟みます(中身を盗み見されないように)。
実際、どう動く?(家から test.co.jp を見る)
前提:サービス提供者は事業者からグローバルIPを払い出されてDNSに登録済み。家庭も契約ISPからグローバルIPを1つ借りています(多くは動的)。家の中はルーターが内部IPをDHCPで配り、NATで外と変換。
- ブラウザが「
test.co.jpのIPは?」を DNSに問い合わせ(役所に住所を聞く)。 - IPが分かったら、3wayハンドシェイクで接続確立(HTTPSならTLSの鍵交換も)。
- データをパケットに分割。各パケットに
宛先IP:443 / 送信元IP:ポートのラベルが付く。 - パケットは 家のルーター(NAT)→ 電線 → 契約ISPの設備・基地局 → インターネット(複数のルーターをバケツリレー)→ 相手のISP/データセンター → サーバ へ。
(東京→大阪なら、新幹線・飛行機など“速い経路”をルーターが選ぶイメージ) - サーバが応答パケットを返す。ルーターたちが経路を選んで戻し、
家のルーター(NAT)が「IP:ポートの対応表」を見て、あなたのPCの正しいアプリ(ブラウザ)に届ける。 - ブラウザがパケットを組み立て、HPが表示される。
図:通信のイメージ(家からHPを見る)
混雑したら“迂回”する(ルーティング)
インターネットは1本道ではなく、ルーターが網の目のように繋がっています。
各ルーターは「次どこへ渡すと速いか」を判断して経路を選びます(これがルーティング)。
途中が混雑したり壊れたら、別の経路へ迂回します。だから一部が落ちても通信は止まりません。
現場でよくある:IPアドレスの「競合」
IP競合(コンフリクト) = 同じIPアドレスが、2台の機器に同時に割り当たってしまう状態。
住所が2軒でダブったら、郵便がどっちに届くか分からなくなりますよね。それと同じで、通信が不安定になったり、繋がらなくなったりします。
- なぜ起きる?:手動で固定IPを設定したら、その番号がもう使われていた/DHCPが配る範囲と固定IPが被った、など。
- どうなる?:OSが「IPアドレスの競合が検出されました」と警告を出すことがある。ぶつかった機器がまともに通信できなくなる。
- 対処:ぶつかっているどちらかのIPを変える。DHCPに任せて空き番号を自動でもらうか、誰も使っていない固定IPに直す。
現場で「IP競合してるから変えといて」と言われたら、事件が起きてるんだなと思って焦った方がいいです。IP競合しているとリモートで繋げなくなったりするので、サーバやDCなどに置いてあるものだと現地対応必要だったり、なんらかのサービスが落ちていることもあります。
現場の小ネタ:固定IPを振る前に「pingで確認」、でもFWも見る
現場には大抵 IPアドレス一覧(管理表) があって、どこが空いてるか分かるようになっています。ただ、手動で作って・更新していることがほとんどなので、最新化されていないことが多いです。
なので、固定IPを設定する前に、既存のサーバや同じNW内のPCから、その候補IPに ping を打って念のため確認しておくのを推奨します(返事が返ってきたら、誰かがもう使っている=競合します)。
ただし落とし穴がひとつ。FW(ファイアウォール)側で、pingのプロトコルである ICMP をブロックしていることがあります。この場合、本当は使われていても pingが届かない → 「空いてるからOK」と思って設定 → 実は競合していて問題発生、という事故が起きます(実際にやられたことがあります)。なので、pingだけで判断せず、FWでICMPを止めていないかも合わせて確認しておくと安全です。
スマホ(モバイル)はどう繋がる?
PCはケーブルやWiFiで繋ぐけど、スマホは外でも繋がる。その仕組みが**基地局(アンテナ)**です。
- スマホは、契約キャリア(DOCOMO/au等)の電波を出している基地局に繋がる。
SIMが「どのキャリアか」を持っているので、自分のキャリアの基地局を使う(だからau端末はDOCOMOの基地局には繋がらない)。 -
移動して、今つながっている基地局の電波が弱くなってくると、近くの別の基地局が通信を引き継ぎます(ハンドオーバー)。
リレーのバトンを渡すように、電波が完全に届かなくなる前に次の基地局へ自動でバトンタッチする。だから歩きながらでも電車でも、通話や通信が途切れません。 - 基地局の先は キャリア網 → インターネット → 通信先 という流れで、ここから先はPCと同じ。
まとめ
- IP=住所。外部(グローバル)/内部(プライベート) があり、NATで内外をつなぐ
- 足りない問題を IPv6/内部IP/DHCP/PORT で補う
- サブネット=エリア判定(NW部/HOST部)、DHCP=内部IP自動貸出、ポート=どのサービスか
- DNSが名前↔住所を変換、TCP/UDPで届け方を選び、パケット+3wayハンドシェイクで実際の通信が成り立つ
今後書く予定
このシリーズの続きで、こんなテーマを書いていきます:
- L2スイッチ / L3スイッチとは?(Cisco機器を例に。MACアドレスで動くL2と、IPでルーティングもするL3の違い)
- VPNとは?(離れた拠点やリモートを、暗号化した“専用トンネル”で安全につなぐ仕組み)
- FQDN と 正引き・逆引き(正引き=名前→IP、逆引き=IP→ホスト名)
- 各レイヤのファイアウォール(FW)(どの層で、何を守るのか)
- 複数NIC時のルーティング(NICを何本も持つ機器の設定。デフォルトゲートウェイは基本1つ+ほかの宛先はスタティックルートで指定)
- よく使うポートの早見(HTTP 80/HTTPS 443/SSH 22/DNS 53/RDP 3389 など、簡単な説明つき)
-
現場でよく使う簡単なコマンド紹介(
ping/ipconfig・ifconfig/tracert・tracerouteなど。Ciscoの基本コマンドも)
ここまで読んでくれてありがとうございます。
分からなかった所・もっと知りたい所があれば、気軽にコメントください。 次回以降の参考にします。