ネットワーク基礎①|IPアドレス・サブネットマスク・ゲートウェイ

ネットワーク基礎①|IPアドレス・サブネットマスク・ゲートウェイ ネットワーク

アドレスの話は、町の住所にたとえると、すっと頭に入ります。「IP アドレスって、結局なんなんですか? サブネットマスクとかゲートウェイとか、毎回、出てくるんですけど…」

新しく情シスになった人から、かなりの確率で聞かれる質問です。僕も、最初は「数字が並んでるやつ」くらいの理解でした。

そこで、新シリーズ「情シスのためのネットワーク基礎」(全5回)を始めます。特定の製品に偏らず、どの現場でも、一生使う考え方を、実機の画面つきで整理します。

回 テーマ
① 今回 IP アドレス・サブネットマスク・ゲートウェイ
② DNS・DHCP・ARP の仕組み
③ TCP・UDP・ポート番号
④ スイッチ・ルーター・VLAN・NAT
⑤ 通信障害の基本的な切り分け

結論:アドレスは、住所・町内・出口の3点セット

ネットワークは、町にたとえると、こうなります。

用語 たとえ 役割
IP アドレス 住所 ネットワーク上で、機器を見分けるための番号
サブネットマスク 町内の範囲 「ここまでは同じ町内(同じネットワーク)」の境目を決める
ゲートウェイ 町の出口 町内の外(別のネットワーク、インターネット)に出るときの、最初の窓口

同じ町内なら、直接届けます。町内の外なら、まずゲートウェイ(出口)に渡して、あとは任せます。この動きを押さえておけば、あとの回も、ずっと理解しやすくなります。

IP アドレスの基本

IPv4 のアドレスは、192.168.1.10 のように、0〜255 の数字を4つ並べたものです(32ビット)。

会社や家庭の中で使うアドレスは、プライベートアドレスと呼ばれ、決まった範囲が割り当てられています。

範囲 表記
10.0.0.0 〜 10.255.255.255 10.0.0.0/8
172.16.0.0 〜 172.31.255.255 172.16.0.0/12
192.168.0.0 〜 192.168.255.255 192.168.0.0/16

これらは、インターネットの上では使えない(社内用の住所)ものとして、予約されています。家庭のルーターが、多くの家で 192.168.1.1 や 192.168.0.1 なのは、そのためです。

自分の PC のアドレスの値を見る

Get-NetIPAddress -AddressFamily IPv4 | Where-Object InterfaceAlias -eq 'Wi-Fi' | Format-Table InterfaceAlias, IPAddress, PrefixLength
Get-NetRoute -DestinationPrefix 0.0.0.0/0 | Format-Table DestinationPrefix, NextHop, InterfaceAlias
ipconfig | Select-String 'IPv4|サブネット|ゲートウェイ'
Get-NetIPAddress で IP アドレスとプレフィックス長を、Get-NetRoute で既定のゲートウェイを、ipconfig で同じ情報を確認した画面

見方はこうです。

  • 1つ目:Wi-Fi のアドレスが 192.168.1.10、PrefixLength が 24。この 24 が、サブネットマスクを短く書いたものです。
  • 2つ目:0.0.0.0/0(=「どこ宛でも」)の行き先(NextHop)が 192.168.1.1。これがゲートウェイです。「迷ったら、まずここに渡す」という、既定の出口が書かれています。
  • 3つ目:cmd の ipconfig でも、同じ値が出ます。アダプターが2つ出ているのは、2つ目が、僕の PC の Hyper-V の仮想アダプターだからです。見たい行(Wi-Fi か有線か)を、見分けるのがコツです。

サブネットマスクの読み方

サブネットマスクは、「アドレスの、どこまでが町内の名前で、どこからが家の番号か」を決めます。

  • 255.255.255.0 = /24 = 先頭の24ビットが町内(ネットワーク部)、残りの8ビットが家の番号(ホスト部)
  • 同じ町内のアドレスは、町内の部分が同じになります。

実際に、PowerShell で計算してみます。

$addr = [IPAddress]'192.168.1.10'; $netmask = [IPAddress]'255.255.255.0'
[IPAddress]($addr.Address -band $netmask.Address) | Select-Object -ExpandProperty IPAddressToString
[math]::Pow(2, 32 - 24) - 2
IP アドレスとサブネットマスクの論理積から、ネットワークアドレスの 192.168.1.0 を求め、/24 のホスト数 254 を計算した画面
  • アドレスとマスクを、ビットごとに AND すると、ネットワークアドレス(町内の名前)が出ます。192.168.1.10 と 255.255.255.0 の AND は、192.168.1.0 でした。
  • ホストに使える数は、2 の (32 − 24) 乗 − 2 = 254台。「−2」は、町内の名前そのもの(.0)と、全員への呼びかけ用(.255、ブロードキャスト)を、住所として使えないからです。

よく使う長さを、表にしておきます(ホスト数は 2^(32−n) − 2)。

表記 マスク 使えるホスト数
/24 255.255.255.0 254
/25 255.255.255.128 126
/26 255.255.255.192 62
/27 255.255.255.224 30
/28 255.255.255.240 14
/29 255.255.255.248 6
/30 255.255.255.252 2

ゲートウェイの動き

PC が通信するとき、まず、相手が同じ町内かどうかを、サブネットマスクで判断します。

  1. 相手が同じ町内 → 相手に直接届ける
  2. 相手が町内の外 → ゲートウェイに渡す(あとは、ルーターたちが運んでくれる)

つまり、ゲートウェイの設定が間違っていると、「社内のサーバーには届くのに、インターネットだけつながらない」という症状になります。これは、第5回の切り分けでも、よく出てくる典型です。

僕のやらかし:/24 は「24台」ではありません

駆け出しの頃、192.168.1.0/24 と書かれた設計書を見て、「24台までつなげるネットワークなんだな」と本気で思っていました。

先輩に、「え、じゃあ25台目の PC をつなぐと、どうなると思ってたの?」と聞かれて、答えに詰まりました。/24 の 24 は、台数ではなく、ネットワーク部のビット数です。答えは、254台。

「24個入りだと思っていた弁当箱が、実は254個入りの大皿だった」くらいの差でした。恥ずかしかったので、その夜、さっきの計算スクリプトを、何度も書いて覚えました。

今回覚えたコマンド

コマンド 意味
Get-NetIPAddress IP アドレスとプレフィックス長を見る
Get-NetRoute -DestinationPrefix 0.0.0.0/0 既定のゲートウェイを見る
ipconfig cmd 由来の、IP 設定の確認
Get-NetIPConfiguration IP・ゲートウェイ・DNS をまとめて見る

次回予告

次回は、DNS・DHCP・ARP。「google.com と打つと、どうして画面が出るのか」「IP アドレスは、誰が配っているのか」「同じ町内で、相手の『本当の住所』は、どう調べるのか」を、実機の画面で追いかけます。

→ 第2回:DNS・DHCP・ARP の仕組み

参考

ITもごはんも、腹八分目が長続きのコツ!

コメント