技術ノート ウィンドウズ Geek School: Windows 7 の学習 – IP アドレス指定の基礎

Geek School: Windows 7 の学習 – IP アドレス指定の基礎

Geek School の今回は、IP アドレス指定がどのように機能するかを見ていきます。また、通信しているデバイスが同じネットワーク上にあるかどうかを PC が判断する方法など、高度なトピックについても説明します。次に、LLMNR と DNS という 2 つの名前解決プロトコルについて簡単に説明して終了します。

Windows 7 に関するこの Geek School シリーズの以前の記事を必ずチェックしてください。

残りのシリーズも一週間お楽しみに。

知財の基礎

カタツムリ郵便で手紙を送るときは、メールを受け取りたい人の住所を指定する必要があります。同様に、あるコンピュータが別のコンピュータにメッセージを送信するときは、メッセージの送信先アドレスを指定する必要があります。これらのアドレスは IP アドレスと呼ばれ、通常は次のようになります。

192.168.0.1

これらのアドレスは IPv4 (インターネット プロトコル バージョン 4) アドレスであり、最近のほとんどのものと同様に、コンピューターが実際に認識しているものを単純に抽象化したものです。 IPv4 アドレスは 32 ビットです。つまり、32 個の 1 と 0 の組み合わせが含まれています。コンピュータには、上記のアドレスが次のように表示されます。

11000000 10101000 00000000 00000001

注: 各 10 進数オクテットの最大値は (2^8) – 1、つまり 255 です。これは、8 ビットを使用して表現できる組み合わせの最大数です。

IP アドレスを同等のバイナリに変換したい場合は、以下のような単純なテーブルを作成できます。次に、IP アドレスの 1 つのセクション (専門的にはオクテットと呼ばれます)、たとえば 192 を取り出し、左から右に移動して、テーブルのヘッダーにある数値を 10 進数から減算できるかどうかを確認します。次の 2 つのルールがあります。

  • 表のヘッダーの数値が指定した数値以下の場合は、その列に 1 のマークを付けます。新しい数値は、列のヘッダーの数値を引いた数値になります。たとえば、128 は 192 より小さいため、128 の列に 1 のマークを付けます。その後、192 – 128、つまり 64 が残ります。
  • 数値が現在の数値より大きい場合は、0 をマークして次に進みます。

例のアドレス 192.168.0.1 を使用すると、次のようになります。

128

64

32

16

8

4

2

1

1

1

0

0

0

0

0

0

1

0

1

0

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

上の例では、192 の最初のオクテットを取得し、128 秒の列に 1 のマークを付けました。その後、2 番目の列の数値と同じ 64 が残ったので、これにも 1 のマークを付けました。 64 – 64 = 0 なので、0 が残りました。つまり、行の残りの部分はすべて 0 でした。

2 行目では、2 番目のオクテットである 168 を取得しました。128 は 168 より小さいため、1 のマークを付け、40 が残りました。64 は 40 より大きいため、0 のマークを付けました。 3 番目の列、32 は 40 未満だったので 1 をマークし、8 のままになりました。16 は 8 より大きいので 0 をマークしました。8 の列に到達したときに 1 をマークしました。 0 なので、残りの列は 0 でマークされます。

3 番目のオクテットは 0 で、0 には何も入力できないため、すべての列にゼロのマークを付けました。

最後のオクテットは 1 で、1 以外には 1 に入ることができないので、1 の列に到達するまですべての列に 0 のマークを付け、そこで 1 のマークを付けました。

Geek School: Windows 7 の学習 - IP アドレス指定の基礎

サブネットマスク

注: サブネット マスキングは非常に複雑になる場合があるため、この記事の範囲ではクラスフル サブネット マスクについてのみ説明します。

IP アドレスは、ネットワーク アドレスとホスト アドレスの 2 つのコンポーネントで構成されます。サブネット マスクは、IP アドレスをネットワーク アドレスとホスト アドレスに分けるためにコンピュータで使用されるものです。サブネット マスクは通常次のようになります。

255.255.255.0

バイナリでは次のようになります。

11111111.11111111.11111111.00000000

サブネット マスクでは、ネットワーク ビットは 1 で示され、ホスト ビットは 0 で示されます。上記のバイナリ表現から、IP アドレスの最初の 3 オクテットがデバイスが属するネットワークの識別に使用され、最後のオクテットがホスト アドレスに使用されることがわかります。

IP アドレスとサブネット マスクが与えられると、コンピューターはビットごとの AND 演算を実行することで、デバイスが同じネットワーク上にあるかどうかを判断できます。たとえば、次のように言います。

  • コンピューター 1 はコンピューター 2 にメッセージを送信したいと考えています。
  • computerOne の IP は 192.168.0.1、サブネット マスクは 255.255.255.0 です。
  • computerTwo の IP は 192.168.0.2、サブネット マスクは 255.255.255.0 です。

computerOne は最初に、自身の IP とサブネット マスクのビット単位の AND を計算します。

注: ビット単位の AND 演算を使用する場合、対応するビットが両方とも 1 の場合、結果は 1 になり、それ以外の場合は 0 になります。

11000000 10101000 00000000 00000001

11111111 11111111 11111111 00000000

11000000 10101000 00000000 00000000

次に、computerTwo のビット単位の AND を計算します。

11000000 10101000 00000000 00000010

11111111 11111111 11111111 00000000

11000000 10101000 00000000 00000000

ご覧のとおり、ビット単位の演算の結果は同じです。これは、デバイスが同じネットワーク上にあることを意味します。

Geek School: Windows 7 の学習 - IP アドレス指定の基礎

クラス

もうお気づきかと思いますが、サブネット マスクに含まれるネットワーク (1) が多いほど、使用できるホスト (0) は少なくなります。所有できるホストとネットワークの数は 3 つのクラスに分かれています。

ネットワーク

サブネットマスク

ネットワーク

ホスト

クラスA

1-126.0.0.0

255.0.0.0

126

16 777 214

クラスB

128-191.0.0.0

255.255.0.0

16 384

65 534

クラスC

192-223.0.0.0

255.255.255.0

2 097 152

254

Geek School: Windows 7 の学習 - IP アドレス指定の基礎

予約済み範囲

127.xxx の範囲が省略されていることがわかります。これは、範囲全体がループバック アドレスと呼ばれるもののために予約されているためです。ループバック アドレスは常に自分の PC を指します。

169.254.0.x の範囲は、このシリーズの後半で説明する APIPA と呼ばれるもの用にも予約されています。

プライベートIP範囲

数年前までは、インターネット上のすべてのデバイスには一意の IP アドレスがありました。 IP アドレスが不足し始めたとき、ネットワークとインターネットの間に別のレイヤーを追加する NAT と呼ばれる概念が導入されました。 IANA は、IP の各クラスからのアドレス範囲を予約することを決定しました。

  • クラス A の 10.0.0.1 – 10.255.255.254
  • クラス B の 172.16.0.1 – 172.31.255.254
  • クラス C の 192.168.0.1 – 192.168.255.254

次に、世界中の各デバイスに IP アドレスを割り当てる代わりに、ISP は単一の IP アドレスが割り当てられる NAT ルーターと呼ばれるデバイスを提供します。その後、最適なプライベート IP 範囲からデバイスの IP アドレスを割り当てることができます。 NAT ルーターは NAT テーブルを維持し、インターネットへの接続をプロキシします。

注: NAT ルーターの IP は通常、DHCP 経由で動的に割り当てられるため、ISP が設定している制約に応じて変更されます。

Geek School: Windows 7 の学習 - IP アドレス指定の基礎

名前解決

私たちにとって、89.53.234.2 のような IP アドレスを覚えるよりも、FileServer1 のような人間が判読できる名前を覚える方がはるかに簡単です。 DNS などの他の名前解決ソリューションが存在しない小規模なネットワークでは、FileServer1 への接続を開こうとすると、コンピュータはマルチキャスト メッセージを送信できます (これは、ネットワーク上の各デバイスにメッセージを送信するという派手な言い方です)。 FileServer1 が誰であるかを尋ねます。この名前解決方法は LLMNR (リンクロック マルチキャスト名前解決) と呼ばれます。これはホーム ネットワークや小規模ビジネス ネットワークには最適なソリューションですが、拡張性が高くありません。第一に、数千のクライアントへのブロードキャストに時間がかかりすぎるためです。第二に、通常、ブロードキャストはルーターを通過しないためです。

DNS (ドメインネームシステム)

スケーラビリティの問題を解決する最も一般的な方法は、DNS を使用することです。ドメイン ネーム システムは、特定のネットワークの電話帳です。巨大なデータベースを使用して、人間が判読できるマシン名をその基になる IP アドレスにマッピングします。 FileServer1 への接続を開こうとすると、PC は指定した DNS サーバーに FileServer1 が誰であるかを尋ねます。 DNS サーバーは、PC が接続できる IP アドレスで応答します。これは、世界最大のネットワークであるインターネットで使用される名前解決方法でもあります。

Geek School: Windows 7 の学習 - IP アドレス指定の基礎

ネットワーク設定を変更する

ネットワーク設定アイコンを右クリックし、コンテキスト メニューから [ネットワークと共有センターを開く] を選択します。

次に、左側にある「アダプター設定の変更」ハイパーリンクをクリックします。

次に、ネットワーク アダプタを右クリックし、コンテキスト メニューから [プロパティ] を選択します。

次に、インターネット プロトコル バージョン 4 を選択し、プロパティ ボタンをクリックします。

ここで、「次の IP アドレスを使用する」のラジオ ボタンを選択して、静的 IP アドレスを設定できます。上記の情報を用意して、IP アドレスとサブネット マスクを入力できます。デフォルト ゲートウェイは、あらゆる意味で、ルーターの IP アドレスです。

ダイアログの下部近くで、DNS サーバーのアドレスを設定できます。おそらく自宅には DNS サーバーはありませんが、ルーターには小さな DNS キャッシュがあり、クエリを ISP に転送することがよくあります。あるいは、Google のパブリック DNS サーバー 8.8.8.8 を使用することもできます。

Geek School: Windows 7 の学習 - IP アドレス指定の基礎

宿題

  • 今日の宿題はありませんが、長いのでもう一度読んでください。さらに詳しい情報が必要な場合は、 CIDR (クラスレス ドメイン間ルーティング) と呼ばれる高度なネットワーキングの主題を読んでください。

ご質問がございましたら、 @taybgibb にツイートしていただくか、コメントを残してください。

「 Geek School: Windows 7 の学習 – IP アドレス指定の基礎」に関するベスト動画選定!

【5分で分かる】IPアドレスについてわかりやすく解説|知っておきたいIT用語シリーズ
【Windows 10】IPアドレス確認する方法(ローカルIPアドレス・グローバルIPアドレス)