はじめに
このドキュメントでは、アドレスの分割方法やサブネット化の仕組みなど、ルータの設定に必要となる基本的な情報について説明します。
前提条件
要件
バイナリと 10 進数の基本について理解しておくことを推奨します。
使用するコンポーネント
このドキュメントの内容は、特定のソフトウェアやハードウェアのバージョンに限定されるものではありません。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
追加情報
説明を開始する前に、必要となる用語の定義を次に示します。
アドレス:ネットワーク内の1つのホストまたはインターフェイスに割り当てられる一意の番号ID。
サブネット:特定のサブネット アドレスを共有しているネットワークの一部分。
サブネット マスク:アドレスのどの部分がサブネットを参照し、どの部分がホストを参照しているのかを示すために使用される 32 ビットの組み合わせ。
インターフェイス:ネットワーク接続。
Internet Network Information Center(InterNIC; インターネット ネットワーク情報センター)から正規のアドレスをすでに取得している場合は、すぐに学習を開始できます。インターネットに接続する計画がない場合には、RFC 1918で規定されている予約済みアドレスを使用することを強くお勧めします。
ルータの各インターフェイスに一意のサブネットを持つIPアドレスを割り当てる方法を説明します。すべてを結び付けるのに役立つ例が含まれています。
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進数に変換する方法を次に示します。オクテットの最も右側のビット、つまり最下位ビットは、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までを重点的に取り上げます。クラスDとクラスEについては、このドキュメントでは取り上げていません。
注:このドキュメントでは、IPのアドレッシングとサブネット化について理解しやすくするために、クラスA、クラスBなどの用語が使用されています。これらの用語は、クラスレス ドメイン間ルーティング(CIDR)が登場したため、業界では現在ほとんど使用されていません。
IP アドレスが指定されると、上位 3 ビット(第 1 オクテット内の最も左側の 3 ビット)でクラスが識別されます。図 1 は、この上位 3 ビットの意味とそれぞれのクラスに分類されるアドレスの範囲を示しています。参考として、クラス D とクラス E のアドレスも示されています。
Figure 1
クラスAのアドレスでは、最初のオクテットがネットワーク部を表すため、図1のクラスAの例では、メジャーネットワークのアドレス範囲は、1.0.0.x ~ 127.255.255.xになります(xの範囲は、0 ~ 255です)。オクテット 2、3、および 4(次の 24 ビット)は、ネットワーク管理者によって、適切なサブネットとホストに分割されます。クラス A のアドレスは、65,536 台を超えるホスト(実際には、最大 16777214 台のホスト)があるネットワークで使用されます。
クラスBのアドレスでは、最初の2つのオクテットがネットワーク部を表します。そのため、図1のクラスBの例では、メジャーネットワークのアドレス範囲は、128.0.0.x ~ 191.255.255.xになります。オクテット 3 および 4(16 ビット)は、ローカルのサブネットおよびホストに使用されます。クラス B のアドレスは、256 ~ 65,534 台のホストがあるネットワークで使用されます。
クラス C のアドレスでは、最初の 3 つのオクテットがネットワーク部になります。図1のクラスCの例では、メジャーネットワークのアドレスは、192.0.0.x ~ 223.255.255.xの範囲になります。オクテット 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アドレスは、10.20.15.1 255.0.0.0のようなアドレス/マスクペアを持ちます。マスクが、アドレスのネットワーク部とノード部の識別に役立つことを示すために、アドレスとマスクを 2 進数に変換します。
10.20.15.1 = 00001010.00010100.00001111.00000001
255.0.0.0 = 11111111.00000000.00000000.00000000
アドレスとマスクを2進数で表すと、ネットワークとホストIDの識別が容易になります。対応するマスクのビットが 1 に設定されたアドレス ビットは、ネットワーク ID を表します。対応するマスクのビットが 0 に設定されたアドレス ビットは、ノード ID を表します。
10.20.15.1 = 00001010.00010100.00001111.00000001
255.0.0.0 = 11111111.00000000.00000000.00000000
-----------------------------------
net id | host id
netid = 00001010 = 10
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を作成します。たとえば、ナチュラル マスクが 192.168.5.0 であるクラス C ネットワーク 255.255.255.0 の場合は、次のようにサブネットを作成できます。
192.168.5.0 - 11000000.10101000.00000101.00000000
255.255.255.224 - 11111111.11111111.11111111.11100000
--------------------------|sub|----
マスクを255.255.255.224に拡張することで、アドレスの元のホスト部分から3ビット(subで示される)を取得し、それらを使用してサブネットを作成しました。この 3 ビットを使用することにより、8 つのサブネットを作成できます。残りの5つのホストIDのビットを使用すると、各サブネットでは最大32のホストアドレスを作成できますが、すべてが0または1のホストIDは許容されないため、実際にデバイスに割り当てることができるのは、そのうちの30です(このことは非常に重要です)。このようにして、これらのサブネットは作成されています。
192.168.5.0 255.255.255.224 host address range 1 to 30
192.168.5.32 255.255.255.224 host address range 33 to 62
192.168.5.64 255.255.255.224 host address range 65 to 94
192.168.5.96 255.255.255.224 host address range 97 to 126
192.168.5.128 255.255.255.224 host address range 129 to 158
192.168.5.160 255.255.255.224 host address range 161 to 190
192.168.5.192 255.255.255.224 host address range 193 to 222
192.168.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 つを、「プレフィクス/長さ」によって表記できます。たとえば、192.168.5.32/27 と表記されている場合には、192.168.5.32 255.255.255.224 を表します。以後、このドキュメントでは、必要に応じてプレフィクス/長さによる表記法を使用してマスクを表記します。
このセクションのネットワークサブネット化スキームでは、8個のサブネットを作成できます。ネットワークは次のように表示されます。
図 2
図 2 の各ルータは 4 つのサブネットワークに接続されており、1 つのサブネットが両方のルータで共通になっています。また、各ルータには、接続されているサブネットワークごとに IP アドレスが 1 つあります。各サブネットワークでは、最大で 30 のホスト アドレスをサポートできます。
これにより、興味深い事実が明らかになります。サブネット マスクにより多くのホスト ビットを使用すると、より多くのサブネットが使用できます。しかし、使用するサブネットの数が多くなるほど、各サブネットで使用できるホスト アドレスが少なくなってしまいます。たとえば、192.168.5.0のクラスCネットワークと255.255.255.224 (/27)のマスクでは、8つのサブネットを作成し、それぞれに32個のホストアドレスを割り当てることができます(そのうち30個をデバイスに割り当てることができます)。マスク255.255.255.240 (/28)を使用する場合、内訳は次のようになります。
192.168.5.0 - 11000000.10101000.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のすべてのサブネット(すべてのサブネットビットが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に設定されているアドレスビットを調べ、他のすべてのアドレスビットを0に設定します(これは、マスクとアドレスの間で論理ANDを実行する場合と同じです)。このアドレスが属するサブネットが表示されます。この場合、デバイスAはサブネット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
これらの判断から、デバイスAとデバイスBは同じサブネットのアドレスを持っています。
例題 2
192.168.5.0/24のクラスCネットワークがある場合、示されたホスト要件を満たしながら、ネットワークをサブネット化して、図3のネットワークを作成します。
図 3
図3に示されているネットワークでは、5つのサブネットを作成する必要があることがわかります。最大のサブネットでは、28 のホスト アドレスをサポートする必要があります。これは、クラス C ネットワークでは可能でしょうか。可能であるなら、どのようにすればよいでしょうか。
開始するには、サブネット要件を調べます。必要な5つのサブネットを作成するには、クラスCホストビットから3ビットを使用する必要があります。2 ビットで作成できるサブネットは 4 つのみです(22)。
サブネット ビットに 3 ビット必要になるため、アドレスのホスト部分に使用できるのは残りの 5 ビットです。これにより、いくつのホストをサポートできるでしょうか。25 = 32(使用可能なのは 30)です。これで要件は満たされています。
したがって、クラスCネットワークを使用してこのネットワークを作成できると判断しました。サブネットワークを割り当てる方法の例を次に示します。
netA: 192.168.5.0/27 host address range 1 to 30
netB: 192.168.5.32/27 host address range 33 to 62
netC: 192.168.5.64/27 host address range 65 to 94
netD: 192.168.5.96/27 host address range 97 to 126
netE: 192.168.5.128/27 host address range 129 to 158
VLSM
すべてのサブネット化の例では、同じサブネット マスクがすべてのサブネットに適用したことを認識します。これは、それぞれのサブネットに同じ数の使用可能なホスト アドレスがあることを意味します。これは必要な場合もありますが、ほとんどの場合、すべてのサブネットに同じサブネットマスクがあると、アドレス空間を浪費することになります。たとえば、例題2では、クラスCネットワークは8つの同じサイズのサブネットに分割されています。しかし、各サブネットはすべての使用可能なホストアドレスを使用するわけではないため、アドレス領域の浪費を招いていました。図 4 は、無駄になったアドレス領域を示しています。
図 4
図4は、どのサブネットを使用するかを示しています。NetA、NetC、およびNetDには、未使用のホストアドレス空間が大量に存在します。これは、意図的に将来の成長を考慮した設計である可能性もありますが、ほとんどの場合は、すべてのサブネットに同じサブネットマスクを使用することによって、単にアドレス領域を無駄にしているだけです。
可変長サブネットマスク(VLSM)を使用すると、サブネットごとに異なるマスクを使用できるため、アドレス空間を効率的に使用できます。
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: 192.168.5.0/27 host address range 1 to 30
netE: 192.168.5.32/27 host address range 33 to 62
netA: 192.168.5.64/28 host address range 65 to 78
netD: 192.168.5.80/28 host address range 81 to 94
netC: 192.168.5.96/30 host address range 97 to 98
これを図で表すと、図 5 のようになります。
図 5:
図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 だけをアドバタイジングするだけで済みます。
CIDRの詳細は、RFC 1518およびRFC 1519を参照してください。
特殊なサブネット
31ビットサブネット
30ビットのサブネットマスクでは、ホストアドレス2つ、オールゼロのネットワーク1つ、オールワンのブロードキャストアドレス1つ、合計4つのIPv4アドレスを使用できます。ポイントツーポイントリンクは、2つのホストアドレスだけを持つことができます。ポイントツーポイントリンクでは、ブロードキャストアドレスとすべてゼロのアドレスを使用する必要はありません。31ビットのサブネットマスクを使用すると、2つのホストアドレスを使用でき、ブロードキャストアドレスとすべてゼロのアドレスが除外されるため、ポイントツーポイントリンクでIPアドレスを最小限に抑えることができます。
『RFC 3021 - IPv4ポイントツーポイントリンクでの31ビットプレフィクスの使用』を参照してください。
マスクは255.255.255.254または/31です。
/31サブネットは、シリアルインターフェイスやPOSインターフェイスなどの真のポイントツーポイントリンクで使用できます。ただし、イーサネットインターフェイスなどのブロードキャストインターフェイスタイプでも使用できます。その場合は、そのイーサネットセグメントに必要なIPv4アドレスが2つだけであることを確認します。
例
192.168.1.0と192.168.1.1はサブネット192.168.1.0/31にあります。
R1(config)#interface gigabitEthernet 0/1
R1(config-if)#ip address 192.168.1.0 255.255.255.254
% Warning: use /31 mask on non point-to-point interface cautiously
gigabitEthernetはブロードキャストセグメントであるため、警告が表示されます。
32ビットサブネット
サブネットマスク255.255.255.255(/32サブネット)は、1つのIPv4ホストアドレスのみを持つサブネットを表します。これらのサブネットは、常にリンクごとに複数のアドレスを必要とするため、ネットワークリンクにアドレスを割り当てるために使用することはできません。/32の使用は、アドレスを1つしか持つことができないリンクでの使用に厳密に予約されています。Ciscoルータの例は、ループバックインターフェイスです。これらのインターフェイスは内部インターフェイスであり、他のデバイスには接続されません。したがって、/32サブネットを使用できます。
例
interface Loopback0
ip address 192.168.2.1 255.255.255.255
付録
サンプル コンフィギュレーション
ルータ 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 s 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.168.10.200 255.255.255.240
!(subnet 192)
int e 1
ip address 192.168.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.168.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
may not be supported on some legacy systems.
*Host all zeroes and all ones excluded.
関連情報