IPアドレスの仕組み!サブネットとDHCPの基礎を簡単解説

安全
この記事は約12分で読めます。

PC初心者がよく遭遇するIPアドレス・サブネット・DHCPの基本

護身IT
護身IT

この記事を読むと下記の悩みが解決します。
・IPアドレスとは何か
・IPv4 と IPv6 の違い
・サブネットマスクの意味
・ネットワークアドレス/ブロードキャストの仕組み

・DHCP の動作(IP自動割り当て)
・トラブル時の切り分けポイント
をわかりやすく解説しています。

IPアドレスは、コンピュータの住所のようなものです。
この記事では、この“住所の仕組み”を初心者向けに丁寧に解説します。

参考にしていただければ幸いです。

初心者向けIPアドレスの基本

IPアドレス

ここでは、IPアドレスの構成(32bitの場合)を初心者目線で解説します。
参考にしていただけるとありがたいです。

グローバルアドレス:「世界で1つだけの住所(例:東京都千代田区〜)」
プライベートアドレス:LAN、「会社や家の中だけで通じる部屋番号(例:201号室、会議室A)」
・自宅のWi-Fiルーターが「外(グローバル)」と「中(プライベート)」の橋渡しを行ってます。

IPアドレス:コンピュータの住所のようなものです。
32ビット(8ビット×4つ区切り)
 ・それぞれを10進数で表現し「.」で区切って現す。(左下図の上段:CIDR表記)
 ・ネットワーク部(住所:赤色部)と、ホスト部(建物の部屋番号:青色部)で区切る。(左下図の下段)
 ・サブネットマスクとの組み合わせでネットワーク部の長さを調整しネットワークの範囲を操作できる。(右側の赤枠図)

IPアドレスの10進数と2進数
IPアドレスの10進数と2進数
IPアドレスとサブネットマスク
IPアドレスとサブネットマスク

IPv4とIPv6の違い

IPv4:8ビット毎に区切り4で表現。(32ビット、実際には10進数表示です。)
 例)192.168.1.10
    扱えるIPアドレスの数:2^32(約43億個)
IPv6:16ビット(16進数で4ビット表現したもの)の束が8つ。(128ビット)
 例)a123:1234:5678:bdce:9abc:1234:2234:5678
   扱えるIPアドレスの数:2^128(訳340潤(10^36を表す単位です。)個:340兆個の1兆倍の1兆倍)

表記方法は「:」で区切り、もし同じ16進数が続く場合は、1度までなら「::」で指定できる。
 IPv6はIPv4の計算に比べ理論上4倍の計算量。しかしスピードが4倍になるわけでない。
 ・16ビットの先頭が0の時は0は省略できる。

IPv6は桁違いの数を扱えるため、今後のインターネット拡大に対応するために作られました。

【参考】通信の確認:コマンドプロンプトで「curl inet-ip.info」+「Enter」
192.168.1.10⇒IPv4で通信中。
a123:1234:5678・・・⇒IPv6で通信中。

IPv6は難しく感じますが、初心者は「桁違いに多い」「省略できる」という2点だけ覚えれば十分です。

サブネットマスク

サブネットマスクは、IPアドレスのどこまでがネットワーク部なのかを示す仕切り線です。

例)ネットワーク部が郵便番号・都道府県で、ホスト部が建物の番地のイメージ。
通常ネットワーク部に”1”がたち、ホスト部は”0”となりIPアドレスと論理積を取りネットワーク部を抽出する。

CIDR(サイダー)表記

私も過去にCIDR表記で記載された資料など見たときに意味が解らず困りまり調査しましたので下記に記載します。

例)
123.168.8.9/24
 「/24」がネットワーク部を現す。
上記とは123.168.8.9/255.255.255.0と同じ意味です。

CIDR表記は、ネットワーク部の長さを「/数字」で表す方法です。

初心者は下記の3つだけ覚えれば十分です。

/24 → 255.255.255.0
/16 → 255.255.
0.0
/8 → 255.
0.0.0

アドレス(ネットワーク部+ホスト部)

護身IT
護身IT

なぜIPアドレスは、ネットワーク部とホスト部に分かれているの?

IPさん
IPさん

それは、世界中にある膨大な数のコンピュータから、目的の機器を“一瞬で効率的に探すため”です。もしこの区切りがないと、インターネットのルーターは世界中のすべてのIPアドレス(約43億個)を1つずつしらみつぶしに探さなければならなくなります。

護身IT
護身IT

それは気が遠くなる作業だね…。

IPさん
IPさん

そうですよね。でも、最初に『ネットワーク部(=都道府県や市区町村)』を見て大まかな場所を特定し、そのネットワークに到達してから『ホスト部(=何番地、何号室)』を探せば、ルーターは最小限のルート案内だけで済む仕組みになっているんですよ。

ネットワークアドレス:IPアドレスよりネットワーク部を取り出すときは、IPアドレス AND サブネットマスク。ネットワーク部(場所)を示す場合と、ホスト部を全て「0」にしたものを表現する場合がある。ホスト部を「0」にすると、ネットワークアドレスとなるため、ホストにはカウントしない。
ホストアドレス(名前):IPアドレスよりホスト部を取り出すときは、IPアドレス AND ( NOT サブネットマスク)。
ブロードキャストアドレス:IPアドレスよりブロードキャストアドレスを取り出すときは、IPアドレス or (NOT サブネットマスク)。ホスト部を全て「1」にしたもの。ネットワーク内のすべてのホスト(コンピュータ)に一斉に送信する場合なのでホストにはカウントしない。

Macアドレス

MACアドレスの表記:00:00:00:00:00:00
         |この2桁は8ビットを16進数表示したもの|
 ・先頭の24ビットは製造メーカ番号
 ・後ろの24ビットは製造番号
MACアドレスは 世界で唯一の番号で、NIC(Network Interface Card:LANポート)に割り振られる。

IPアドレスが「住所」なら、MACアドレスは「住民票の番号」のようなイメージです。

護身IT
護身IT

MACアドレスが世界唯一ならばIPアドレスも世界唯一ですよね。

MACさん
MACさん

はい。グローバルアドレスは世界唯一です。
しかしMACアドレスは場所が変わっても変わりませんがIPアドレスは場所が変わると変わります。(重複しないように管理されていますが)

MACさん
MACさん

なのでMACアドレスを「指紋」や「人間のDNA」に例えるとIPアドレスは「現住所:引っ越せば変わります。」です。

護身IT
護身IT

MACアドレスが世界唯一なら、IPアドレスはなくても通信できるんじゃない?

MACさん
MACさん

実は、MACアドレス(指紋・DNA)だけだと、そのコンピュータが“今世界のどこにいるか”が誰にもわからないんです。

護身IT
護身IT

あ、そっか!指紋がわかっても、その人が今どこの国に住んでいるかまでは探せないもんね。

MACさん
MACさん

その通りです!だから、インターネットという世界規模のネットワークを旅するときは、まず『IPアドレス(現住所)』を頼りにして目的地(ルーターや同じLAN内)まで荷物を運びます。そして最後の最後に『このIPアドレスを今使っているのはどの機器?』と特定するときに、MACアドレス(指紋)を照合して届ける仕組み(ARPという技術)になっているんですよ。

DHCP(Dynamic Host Configuration Protocol:自動接続)の解説

DHCPの流れ

護身IT
護身IT

移動の激しいPCのIPアドレス設定はDHCPですね。

DHCPさん
DHCPさん

はい。

護身IT
護身IT

DHCPで払い出す場合のIPアドレスの枯渇対策は?IPv6以外どのようなものがありますか?

DHCPさん
DHCPさん

貸出期間の短縮(早く回収する)やサブネットで払い出されるIPアドレスの調整等です。DHCPサーバーがIPアドレスを自動取得するためのステップを下記に記載します。

  • Discover(発見):サーバを探す
  • Offer(提案):IPアドレスの提案
  • Request(要求):使用要求
  • ACK(確認):割り当て完了

メッセージのやりとり
①DHCPサーバの検索(DHCPDISCOVERの送信)ルータ越えとなった別のネットワークには、DHCPDISCOVERメッセージが届かない。(異なるセグメントにある場合、DHCPリレーエージェント機能が必要。)このことをDHCPリレーエージェントと表現します。
②DHCPサーバからの提案(クライアントにDHCPOFFERを送信)
③設定情報の使用要求(DHCPサーバにDHCPREQUESTを送信)
④設定情報の使用許可(クライアントにDHCPACKを送信)

DHCPサーバは、1つのネットワークに1台のみ設置ができない。なぜなら払い出すIPアドレスが重複する可能性が発生しIPアドレスの衝突が発生するため。


通常のクライアント端末であれば毎回違うIPが割り当てられても問題ないが、特別なサーバなどまたはDHCPとの通信障害発生時にはIPアドレスを固定にしたい場合除外アドレスで設定する場合も考えられる。
端末に対し動的にアドレスを割り当てるプロトコル。

よくあるトラブルと解決方法(初心者が最も役立つ部分)

ここでは、私も体験したトラブル事例を下記に記載します。

IPが「169.254.xxx.xxx」になる

●原因
→ DHCPからIPがもらえていない
→ ルーター or DHCPサーバの不調

→LANケーブル抜け
→Wi-Fiの認証エラー
→ルーターのDHCP枯渇
→PC側のIP再取得

護身IT
護身IT

IPが「169.254.xxx.xxx」になるとどうなるの?
また確認するにはどうすればいいのでしょうか?

IPさん
IPさん

この状態になると、パソコン単体は正常なのに、インターネットや社内LANには一切繋がらなくなります。確認は、Windowsならコマンドプロンプトで『ipconfig』と入力するか、スマホならWi-Fiの設定画面のIPアドレス欄を見れば一目でわかります。

護身IT
護身IT

なんで急にこんな見たこともない数字(169.254…)に変わっちゃうの?

IPさん
IPさん

これは『リンクローカルアドレス(APIPA)』と呼ばれる緊急用の数字です。本来ならDHCPサーバーから自動でIPアドレスをもらうはずが、通信エラーなどでアドレスをもらい損ねたときに、パソコンが『誰からも番号をもらえないから、とりあえず自分だけで通じる仮の番号を割り当てておこう』と自棄(やけ)を起こして設定した状態なんです。つまり、この数字が出たら『ルーターやDHCPサーバーとの通信が完全に途切れているサイン』だと判断できます。

●対処
→ルーター再起動
→LANケーブル確認
→Wi-Fi再接続
→PCのIP再取得(ipconfig /renew)

同じネットワークなのに通信できない

→ サブネットマスクが違う可能性
例:
・PC1:192.168.1.10 /24
・PC2:192.168.1.20 /16
別ネットワーク扱い になるため通信できない。

補足:PC1は192.168.1がネットワーク部なのでPC2も仲間と思いますが、PC2は192.168がネットワーク部なのでかみ合わない=通信できないとなります。

IPが重複している

●原因
→ DHCPサーバが複数動いている
→ 固定IPの設定ミス

●対処
→ルーターを1台に統一
→固定IPの範囲をDHCPと重複させない
→ルーターのDHCP範囲を確認(例:192.168.1.100〜200)

護身IT
護身IT

なんでそんな自動で割り振られるはずの住所が被っちゃうの?

IPさん
IPさん

一番多い原因は『手動設定(固定IP)』と『自動設定(DHCP)』のバッティングです。例えば、社内のプリンターやサーバーのために、手動で 192.168.1.50 を固定で割り当てていたとします。そこに、何も知らない別の社員がスマホをWi-Fiに繋いだとき、ルーター(DHCP)がうっかり『今空いているから 192.168.1.50 を使いなよ』と自動で割り振ってしまうことで、重複が発生します。

護身IT
護身IT

なるほど、ルーターが手動で固定されている番号を把握しきれていないと起きちゃうんだね。もし重複が起きたらどうすればいい?

IPさん
IPさん

まずは、被ってしまった機器(スマホやPC)のWi-Fiを一度切って、繋ぎ直すのが一番手軽です。これでルーターから別の新しい番号(空いているIPアドレス)を引き直すことができます。根本的に解決するなら、ルーターの設定画面を開いて『自動で割り振る範囲(DHCPプール)』から、手動で固定したい番号をあらかじめ除外しておくのが鉄則ですよ。

コマンドで確認できるネットワークトラブル調査方法

ここでは、私自身がトラブル対応した場合や、コマンドで操作依頼した場合等の代表的な操作を記載します。ご参考にしていただければ幸いです。

PC情報の表示

簡単にご自分の端末状況(OS等)を調べる場合、に利用した手順です。(下図参照ください。)

PCを使っているが詳しくスペックなどどうやれば?
下図のように「info」と入力するだけで解決です。

システム情報

コマンドプロンプトを「管理者」で起動する方法

コマンドプロンプトよりディスクチェックなどのコマンドを実施したが「管理者として起動」されていなかった為、私の思った画面表示にならなかった場合、コマンドの入力でマウスの右クリックで「管理者として起動」と同じことが可能なので記載します。

説明を朱書きで記入しました。

コマンドプロンプトを表示させる場合の注意

コマンドプロンプトで実行するコマンドに権限があると問題ないですが、「管理者として起動」で起動させておいた方が無難です。
実行できなく後で再度コマンドプロンプトを開く手間が増える為です。

MACアドレスやIPアドレスを調べる場合

私自身のPC等を各システム紐づける場合、MAC・IPアドレスを調べましたのでその時のコマンドを記載します。コマンドプロンプトの画面で:「ipconfig /all」と入力しました。(下図赤枠参照ください。)

ネットワーク通信が接続されているか?を調べる

Step1|現状のネットワーク?

操作:ipconfigで各ネットワークのアドレスを調べる。

ipconfig
ipconfig

Step2|ルータとの接続確認

私のpcがルータやDNSなどに接続されているか確認したときに利用しました。
利用方法:コマンドプロンプトの画面で:「ping IPアドレス(宛先の)」と入力しました。(下図赤枠参照ください。)
応答があると:接続されています。

チェックポイント
「要求がタイムアウトしました」や「送信失敗」と出る場合、LANケーブルの断線、Wi-Fiの接続不良、またはルーターの不具合が疑われます。

Step3|インターネット接続の確認

操作:「ping 8.8.8.8」と入力してみる。(Googleの公開DNSです。)

ルータは通信できこれが通信できない場合、プロバイダーの回線障害が考えられるので少し
時間をおいて再度試したら私の場合うまくいきました。

どこのネットワークで躓いているか特定する場合

操作:コマンドプロンプトで「tracert 8.8.8.8」と入力する。

結果:応答速度が遅いところがトラブル箇所です。

tracertの画面
tracertの画面

まとめ:IPアドレスを理解するとネットワークが見える

最後まで閲覧くだされありがとうございました。またお疲れさまでした。

ここでは、下記のように初心者が最初に覚えるべきポイントを体系的にまとめました。

IPアドレスの理解は、ネットワークの基礎であり、トラブル解決のスピードを大きく左右します。

サブネットやDHCPを理解するとトラブル解決が早くなります。
参考にしていただければ幸いです。

全体の流れを詳しく知りたい方は、まず「【図解】IT初心者向けネットワークとDHCPの基礎を簡単解説」からご覧ください。

タイトルとURLをコピーしました