IP : IP ルーティング

IP のアドレッシングとサブネット化について(新規ユーザ向け)

2010 年 12 月 10 日 - ライター翻訳版
その他のバージョン: PDFpdf | 機械翻訳版 (2011 年 6 月 18 日) | 英語版 (2005 年 9 月 26 日) | フィードバック

目次

概要
前提条件
      要件
      使用するコンポーネント
      追加情報
      表記法
IP アドレスとは
ネットワーク マスク
サブネット化とは

      例題 1
      例題 2
VLSM の例
      VLSM の例
CIDR
付録
      設定例
      ホスト/サブネットの数値表
Cisco サポート コミュニティ - 特集対話
関連情報

概要

このドキュメントでは、アドレスの分割方法やサブネット化の仕組みなど、ルータで IP ルーティングを設定するために必要な基本的な知識について説明します。具体的には、一意のサブネットを使用してルータのインターフェイスに IP アドレスを割り当てる方法について説明します。また、学習内容の実際的な応用に役立つように、数多くの例を紹介しています。



前提条件

要件

このドキュメントに関する特別な要件はありません。



使用するコンポーネント

このドキュメントは、特定のソフトウェアやハードウェアのバージョンに限定されるものではありません。



追加情報

説明を開始する前に、必要となる用語の定義を次に示します。

  • アドレス:ネットワーク内の 1 つのホストまたはインターフェイスに割り当てられる一意な数値 ID。

  • サブネット:特定のサブネット アドレスを共有しているネットワークの一部分。

  • サブネット マスク:アドレスのどの部分がサブネットを参照し、どの部分がホストを参照しているのかを示すために使用される 32 ビットの組み合わせ。

  • インターフェイス:ネットワークの接続部分。

Internet Network Information Center(InterNIC; インターネット ネットワーク情報センター)から正規のアドレスをすでに取得している場合は、すぐに学習を開始できます。インターネットに接続する計画がない場合には、RFC 1918 leavingcisco.com で定義されている予約済みアドレスを使用することを強くお勧めします。



表記法

ドキュメント表記の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。



IP アドレスとは

IP アドレスとは、IP ネットワーク上のデバイスを一意に識別するために使用されるアドレスです。このアドレスは、32 ビット長の 2 進数で構成されており、サブネット マスクを使用することによって、ネットワーク部分とホスト部分とに分割できます。この 32 ビット長の 2 進数は、4 つのオクテット(1 オクテット = 8 ビット)に分割されます。各オクテットは、10 進数に変換され、ピリオド(ドット)で区切られます。そのため、IP アドレスは、(172.16.81.100 など)ドットで区切られた 10 進数の形式で表現されます。各オクテットの値は、10 進数では 0 〜 255 の範囲、または 2 進数では 00000000 〜 11111111 の範囲になります。

2 進数オクテットから 10 進数への変換は、次のように行われます。オクテットの最も右側のビット、つまり Least Significant Bit(LSB; 最下位ビット)は、20 で表される値になります。そのすぐ左隣のビットは、21 で表される値になります。同じ手順が、27 で求められる値を表すオクテット左端のビット、つまり Most Significant Bit(MSB; 最上位ビット)まで繰り返されます。したがって、次に示すように、すべての 2 進数ビットが 1 の場合には、10 進数での表記は 255 になります。

    1  1  1  1 1 1 1 1
  128 64 32 16 8 4 2 1 (128+64+32+16+8+4+2+1=255)

次に、すべてのビットが 1 ではない場合のオクテットの変換例を示します。

  0  1 0 0 0 0 0 1
  0 64 0 0 0 0 0 1 (0+64+0+0+0+0+0+1=65)

また、次の例では、同じ IP アドレスが 2 進数表記と 10 進数表記の両方で表現されています。

        10.       1.      23.      19 (decimal)
  00001010.00000001.00010111.00010011 (binary)

これらのオクテットを分割することによって、大規模から小規模までのネットワークに対応できるアドレッシング方式が提供されます。ネットワークには、A から E までの 5 つのクラスがあります。クラス D とクラス E は予約済みであるため、このドキュメントの対象外です。ここでは、クラス A から C までのアドレッシングについて説明します。

注:また、このドキュメントで使用する「クラス A」、「クラス B」などの用語は、IP アドレスやサブネットについての理解を深めるために使用されていることに留意してください。これらの用語は、Classless Interdomain Routing(CIDR; クラスレス ドメイン間ルーティング)が登場したため、業界では現在ほとんど使用されていません。

IP アドレスが指定されると、上位 3 ビットでクラスが識別されます。図 1 は、この上位 3 ビットの意味とそれぞれのクラスに分類されるアドレスの範囲を示しています。参考として、クラス D とクラス E のアドレスも示されています。

図 1

3an.gif

クラス A のアドレスでは、最初のオクテットがネットワーク部を表すため、図 1 のクラス A の例では、メジャー ネットワークのアドレス範囲は、1.0.0.0 〜 127.255.255.255 になります。オクテット 2、3、および 4(次の 24 ビット)は、ネットワーク管理者によって、適切なサブネットとホストに分割されます。クラス A のアドレスは、65,536 台を超えるホスト(実際には、最大 16777214 台のホスト)があるネットワークで使用されます。

クラス B のアドレスでは、最初の 2 つのオクテットがネットワーク部を表します。そのため、図 1 のクラス B の例では、メジャー ネットワークのアドレス範囲は、128.0.0.0 〜 191,255,255,255 になります。オクテット 3 および 4(16 ビット)は、ローカルのサブネットおよびホストに使用されます。クラス B のアドレスは、256 〜 65,534 台のホストがあるネットワークで使用されます。

クラス C のアドレスでは、最初の 3 つのオクテットがネットワーク部になります。図 1 のクラス C の例では、メジャー ネットワークのアドレスは、192.0.0.0 〜 233.255.255.255 の範囲になります。オクテット 4(8 ビット)はローカルのサブネットおよびホスト用で、ホスト数が 254 台未満のネットワークに最適です。



ネットワーク マスク

ネットワーク マスクは、アドレスのどの部分でネットワーク、またはノードを識別すればよいのかを判断するのに役立ちます。クラス A、B、および C ネットワークには、次のように、ナチュラル マスクとも呼ばれるデフォルト マスクがあります。

Class A: 255.0.0.0
Class B: 255.255.0.0
Class C: 255.255.255.0

サブネット化されていないクラス A ネットワークの IP アドレスは、「8.20.15.1 255.0.0.0」のようなアドレス/マスクのペアになります。マスクが、アドレスのネットワーク部とノード部の識別に役立つことを示すために、アドレスとマスクを 2 進数に変換します。

8.20.15.1 = 00001000.00010100.00001111.00000001
255.0.0.0 = 11111111.00000000.00000000.00000000

アドレスとマスクを 2 進数で表すことによって、ネットワークおよびホスト ID の識別が容易になります。対応するマスクのビットが 1 に設定されたアドレス ビットは、ネットワーク ID を表します。対応するマスクのビットが 0 に設定されたアドレス ビットは、ノード ID を表します。

8.20.15.1 = 00001000.00010100.00001111.00000001
255.0.0.0 = 11111111.00000000.00000000.00000000
            -----------------------------------
             net id |      host id             

netid =  00001000 = 8
hostid = 00010100.00001111.00000001 = 20.15.1


サブネット化とは

サブネット化とは、クラス A、B、または C の 1 つのネットワークの内部に、複数の論理ネットワークを作成できるようにする仕組みです。サブネット化しない場合は、クラス A、B、または C のネットワークの 1 つのネットワークしか使用できないため、あまり実用的ではありません。

ネットワーク上のデータ リンクは、それぞれが一意のネットワーク ID を持っており、そのリンク上のすべてのノードが同じネットワークのメンバになる必要があります。メジャー ネットワーク(クラス A、B、または C)を小さなサブネットワークに分割すると、サブネットワークが相互接続されたネットワークを構成できます。そのとき、このネットワークの各データ リンクは、一意のネットワーク/サブネットワーク IDを持つことになります。n 個のネットワークに接続しているどのデバイスまたはゲートウェイにも、n 個の別々の IP アドレスが割り当てられており、相互接続されたネットワーク/サブネットワークのそれぞれが IP アドレスを持っています。

ネットワークをサブネット化するには、アドレスのホスト ID 部分の一部のビットを使用してナチュラル マスクを拡張し、サブネットワーク ID を作成します。たとえば、ナチュラル マスクが 204.17.5.0 であるクラス C ネットワーク 255.255.255.0 の場合は、次のようにサブネットを作成できます。

204.17.5.0 -      11001100.00010001.00000101.00000000
255.255.255.224 - 11111111.11111111.11111111.11100000
                  --------------------------|sub|----

マスクを 255.255.255.224 に拡張することによって、アドレスの元のホスト部分から(「sub」で示されている)3 ビットを取り込み、それらを使用してサブネットを作成しています。この 3 ビットを使用することにより、8 つのサブネットを作成できます。残りの 5 つのホスト ID のビットを使用すれば、各サブネットでは最大 32 のホスト アドレスを作成できますが、すべてが 0 または 1 のホスト ID は許容されないため、実際にデバイスに割り当てることができるのは、そのうちの 30 です(このことは非常に重要ですので、注意してください)。このようにして、これらのサブネットは作成されています。

204.17.5.0 255.255.255.224     host address range 1 to 30
204.17.5.32 255.255.255.224    host address range 33 to 62
204.17.5.64 255.255.255.224    host address range 65 to 94
204.17.5.96 255.255.255.224    host address range 97 to 126
204.17.5.128 255.255.255.224   host address range 129 to 158
204.17.5.160 255.255.255.224   host address range 161 to 190
204.17.5.192 255.255.255.224   host address range 193 to 222
204.17.5.224 255.255.255.224   host address range 225 to 254

注:これらのマスクを表記するには、次の 2 つの方法があります。まず、「ナチュラル」なクラス C マスクよりも 3 ビット多く使用しているため、3 ビットのサブネット マスクを持つアドレスとして表記する方法があります。または、255.255.255.224 のマスクには 27 ビットが設定されているため、「/27」と表記する方法もあります。この 2 番目の方法は、CIDR で使用されます。この方法を使用すると、これらのネットワークの 1 つを、「プレフィクス/長さ」によって表記できます。たとえば、204.17.5.32/27 と表記されている場合には、204.17.5.32 255.255.255.224 を表します。以後、このドキュメントでは、必要に応じてプレフィクス/長さによる表記法を使用してマスクを表記します。

このセクションのネットワークのサブミット化スキームでは、8 つのサブネットを作成できるため、ネットワークは次のようになります。

図 2

3b.gif

図 2 の各ルータは 4 つのサブネットワークに接続されており、1 つのサブネットが両方のルータで共通になっています。また、各ルータには、接続されているサブネットワークごとに IP アドレスが 1 つあります。各サブネットワークでは、最大で 30 のホスト アドレスをサポートできます。

これにより、興味深い事実が明らかになります。サブネット マスクに多くのホスト ビットを使用すれば、それだけ多くのサブネットを利用できます。しかし、使用するサブネットの数が多くなるほど、各サブネットで使用できるホスト アドレスが少なくなってしまいます。たとえば、マスクが 255.255.255.224 (/27) のクラス C ネットワーク 204.17.5.0 には、8 つのサブネットを作成でき、各サブネットには 32 のホスト アドレスを作成できます(そのうちデバイスに割り当てられるのは 30 です)。255.255.255.240 (/28) のマスクを使用した場合は、次のように分割されます。

204.17.5.0 -      11001100.00010001.00000101.00000000
255.255.255.240 - 11111111.11111111.11111111.11110000
                  --------------------------|sub |---

ここでは、サブネットの作成に 4 ビットを使用しているため、ホスト アドレスに使用できるのは残りの 4 ビットだけです。つまり、この場合、最大 16 のサブネットを作成し、それぞれに最大 16 のホスト アドレスを割り当てることができます(デバイスに割り当てられるのは 14 です)。

次に、クラス B ネットワークのサブネット化について説明します。ネットワーク 172.16.0.0 の場合には、ナチュラル マスクは 255.255.0.0 または 172.16.0.0/16 です。255.255.0.0 を超えてマスクを拡張することは、サブネット化を行うことを意味します。つまり、クラス C ネットワークよりも多くのサブネットを作成できる可能性があることがわかります。255.255.248.0 (/21) のマスクを使用する場合は、いくつのサブネットを作成でき、またサブネットごとにいくつのホストを作成できるでしょうか。

172.16.0.0  -   10101100.00010000.00000000.00000000
255.255.248.0 - 11111111.11111111.11111000.00000000
                -----------------| sub |-----------

サブネットには、元のホスト ビットから 5 ビットを使用しています。これにより、32 のサブネット (25) を作成できます。5 ビットをサブネット化に使用したので、ホスト アドレス用としては 11 ビットが残されています。そのため、各サブネットでは、ホスト アドレスを 2048(211)持つことができ、そのうちデバイスに割り当てられるのは 2046 になります。

注:以前は、サブネット 0(すべてのサブネット ビットが 0)と、すべてのサブネット ビットが 1 のサブネットは、使用が制限されていました。そのため、一部のデバイスでは、これらのサブネットの使用が許可されない場合があります。シスコシステムズのデバイスでは、ip subnet zero コマンドを設定した場合に、これらのサブネットを使用できます。



例題 1

ここまで、サブネット化について説明してきましたが、次は知識を実際に使用してみます。この例では、プレフィクス/長さの表記法で 2 つのアドレス マスクの組み合わせが指定されており、2 つのデバイスに割り当てられています。ここでは、これらのデバイスが同一のサブネット上にあるか、または別のサブネット上にあるかを判別します。それには、各デバイスのアドレスおよびマスクを使用して、各アドレスがどのサブネットに属しているかを判別します。

DeviceA: 172.16.17.30/20
DeviceB: 172.16.28.15/20

DeviceA のサブネットの判別:

172.16.17.30  -   10101100.00010000.00010001.00011110
255.255.240.0 -   11111111.11111111.11110000.00000000
                  -----------------| sub|------------
subnet =          10101100.00010000.00010000.00000000 = 172.16.16.0

対応するマスク ビットが 1 に設定されているアドレス ビットに注目します。ここで、他のすべてのアドレス ビットをゼロに設定することによって(これは、マスクとアドレスの間で論理「AND」を実行することになります)、このアドレスがどのサブネットに属しているかがわかります。この場合、DeviceA は 172.16.16.0 に属しています。

DeviceB のサブネットの判別:

172.16.28.15  -   10101100.00010000.00011100.00001111
255.255.240.0 -   11111111.11111111.11110000.00000000
                  -----------------| sub|------------
subnet =          10101100.00010000.00010000.00000000 = 172.16.16.0

これらの判別結果から、DeviceA と DeviceB には、同一サブネットに属するアドレスが割り当てられていることがわかります。



例題 2

204.15.5.0/24 のクラス C ネットワークがあります。ここで、示されたホスト要件を満たしながら、ネットワークをサブネット化して、図 3 のネットワークを作成します。

図 3

3c.gif

図 3 に示されたネットワークでは、5 つのサブネットを作成する必要があることがわかります。最大のサブネットでは、28 のホスト アドレスをサポートする必要があります。これは、クラス C ネットワークでは可能でしょうか。可能であるなら、どのようにすればよいでしょうか。

まず、最初にサブネットの要件を確認します。必要な 5 つのサブネットを作成するには、クラス C のホスト ビットから 3 ビットを使用する必要があります。2 ビットでは、サブネットを 4 つ(22)しか作成できません。

サブネット ビットに 3 ビット必要になるため、アドレスのホスト部分に使用できるのは残りの 5 ビットです。これにより、いくつのホストをサポートできるでしょうか。25 = 32(使用可能なのは 30)です。これで要件は満たされています。

したがって、このネットワークをクラス C ネットワークで作成できると判断できます。サブネットワークを割り当てる方法の例を次に示します。

netA: 204.15.5.0/27      host address range 1 to 30
netB: 204.15.5.32/27     host address range 33 to 62
netC: 204.15.5.64/27     host address range 65 to 94
netD: 204.15.5.96/27     host address range 97 to 126
netE: 204.15.5.128/27    host address range 129 to 158


VLSM の例

ここまで説明したすべてのサブネット化の例では、すべてのサブネットに同一のサブネット マスクが適用されていることに注意してください。つまり、各サブネットで使用可能なホスト アドレスの数は同じということになります。これは、状況によっては必要な場合もありますが、ほとんどの場合は、すべてのサブネットに同一のサブネット マスクを割り当てると、アドレス領域が浪費されてしまいます。たとえば、例題 2 では、クラス C ネットワークは 8 つの同一サイズのサブネットに分割されています。しかし、各サブネットでは、使用可能なホスト アドレスがすべて利用されているわけではないため、結果的にアドレス領域が無駄になります。図 4 は、無駄になったアドレス領域を示しています。

図 4

3d.gif

図 4 では、使用中のサブネットのうちで、NetA、NetC、および NetD では、未使用のアドレス領域が大量に存在することが示されています。これは、意図的に将来の成長を考慮して設計されている可能性もありますが、ほとんどの場合は、すべてのサブネットに同一のサブネット マスクを使用することによって、単にアドレス領域を無駄にしているだけです。

変長サブネット マスク(VLSM; Variable Length Subnet Masks)を使用することによって、各サブネットに異なるマスクを適用して、効率的にアドレス領域を使用できるようになります。



VLSM の例

例題 2 と同じネットワーク要件で、VLSM を使用して、次のようにサブネット化スキームを作成します。

netA: must support 14 hosts
netB: must support 28 hosts
netC: must support 2 hosts
netD: must support 7 hosts
netE: must support 28 host

どのマスクで必要な数のホストを作成できるかを判断します。

netA: requires a /28 (255.255.255.240) mask to support 14 hosts
netB: requires a /27 (255.255.255.224) mask to support 28 hosts
netC: requires a /30 (255.255.255.252) mask to support 2 hosts
netD*: requires a /28 (255.255.255.240) mask to support 7 hosts
netE: requires a /27 (255.255.255.224) mask to support 28 hosts

* a /29 (255.255.255.248) would only allow 6 usable host addresses
  therefore netD requires a /28 mask.

サブネットを割り当てる最も簡単な方法は、最も大きいものを最初に割り当てることです。たとえば、次のように割り当てることができます。

netB: 204.15.5.0/27  host address range 1 to 30
netE: 204.15.5.32/27 host address range 33 to 62
netA: 204.15.5.64/28 host address range 65 to 78
netD: 204.15.5.80/28 host address range 81 to 94
netC: 204.15.5.96/30 host address range 97 to 98

これを図で表すと、図 5 のようになります。

図 5

3e.gif

図 5 は、VLSM を利用してアドレス領域を半分以上も節約できる仕組みを示しています。



CIDR

Classless Interdomain Routing(CIDR)は、アドレス領域の使用率やインターネットでのルーティングのスケーラビリティの両方を向上させるために導入されたものです。これは、インターネットの急速な成長と、インターネット ルータに保持される IP ルーティング テーブルの拡張によって必要となりました。

CIDR は、従来の IP クラス(クラス A、クラス B、クラス C など)を発展させたものです。CIDR では、IP ネットワークは IP アドレスとマスクの長さを示したプレフィクスで表現されます。ここで、長さとは、左端から連続して 1 に設定されているマスク ビットの数を表します。したがって、ネットワーク 172.16.0.0 255.255.0.0 は、172.16.0.0/16 と表現できます。また、CIDR では、より階層的なインターネット アーキテクチャが表現されており、各ドメインは IP アドレスをより高次のレベルから取得する仕組みになっています。そのため、ドメインは、より高次のレベルで集約できるようになります。たとえば、ISP がネットワーク 172.16.0.0/16 を所有している場合、顧客に対しては、172.16.1.0/24、172.16.2.0/24 などを提供できます。さらに、ISP が他のプロバイダーにアドバタイジングする場合には、172.16.0.0/16 だけをアドバタイジングするだけで済みます。

詳細は、RFC 1518 leavingcisco.com および RFC 1519 leavingcisco.com を参照してください。



付録

設定例

ルータ A と B はシリアル インターフェイスで接続されています。

ルータ A

  hostname routera
  !
  ip routing
  !
  int e 0
  ip address 172.16.50.1 255.255.255.0
  !(subnet 50)
  int e 1 ip address 172.16.55.1 255.255.255.0
  !(subnet 55)
  int t 0 ip address 172.16.60.1 255.255.255.0
  !(subnet 60) int s 0
  ip address 172.16.65.1 255.255.255.0 (subnet 65)
  !S 0 connects to router B
  router rip
  network 172.16.0.0

ルータ B

  hostname routerb
  !
  ip routing
  !
  int e 0
  ip address 192.1.10.200 255.255.255.240
  !(subnet 192)
  int e 1
  ip address 192.1.10.66 255.255.255.240
  !(subnet 64)
  int s 0
  ip address 172.16.65.2 (same subnet as router A's s 0)
  !Int s 0 connects to router A
  router rip
  network 192.1.10.0
  network 172.16.0.0


ホスト/サブネットの数値表

Class B                   Effective  Effective
# bits        Mask         Subnets     Hosts
-------  ---------------  ---------  ---------
  1      255.255.128.0           2     32766
  2      255.255.192.0           4     16382
  3      255.255.224.0           8      8190
  4      255.255.240.0          16      4094
  5      255.255.248.0          32      2046
  6      255.255.252.0          64      1022
  7      255.255.254.0         128       510
  8      255.255.255.0         256       254
  9      255.255.255.128       512       126
  10     255.255.255.192      1024        62
  11     255.255.255.224      2048        30
  12     255.255.255.240      4096        14
  13     255.255.255.248      8192         6
  14     255.255.255.252     16384         2

Class C                   Effective  Effective
# bits        Mask         Subnets     Hosts
-------  ---------------  ---------  ---------
  1      255.255.255.128      2        126 
  2      255.255.255.192      4         62
  3      255.255.255.224      8         30
  4      255.255.255.240     16         14
  5      255.255.255.248     32          6
  6      255.255.255.252     64          2

  
*Subnet all zeroes and all ones included. These 
 might not be supported on some legacy systems.
*Host all zeroes and all ones excluded.



Cisco サポート コミュニティ - 特集対話

Cisco サポート コミュニティでは、フォーラムに参加して情報交換することができます。現在、このドキュメントに関連するトピックについて次のような対話が行われています。


関連情報