PR

長谷川 泰右 NTTデータ関西テクシス 技術部 技術支援担当

IPヘッダーを見てルーティングを行う

 自分のマシンのネットワーク・アドレスがどこまでかは,写真1で確認できる「サブネット・マスク(Subnet Mask)」から分かるのだが,その話をする前に,もう少しルーターを利用したデータ転送を説明しておこう。

図5●IPパケットの構成
図6●異なるネットワークはルーターで接続する
 TCP/IPネットワークでデータを送ろうとすると,まずは送信データが適切な長さに分割され*5,それぞれに「IPヘッダー」と呼ぶ情報が付与される(図5[拡大表示])*6。分割されたデータとIPヘッダーを合わせて,「IPパケット」や「IPデータグラム」と呼ぶ。IPヘッダーの中には,送信元のホストのIPアドレスである「送信元IPアドレス(Source IP Address)」と,相手ホストのIPアドレスである「あて先IPアドレス(Destination IP Address)」が設定される。

 ホストやルーターはこれらの情報を基にして,データのやりとりを行う。具体的には,まずはホストはあて先IPアドレスのネットワーク・アドレスが自分のIPアドレス(送信元IPアドレス)のネットワーク・アドレスと同じかどうかを確認する。常に同じであるならばルーターは必要ない。例えば図6[拡大表示]で,営業部のパソコンは常に営業部のサーバーやネットワーク・プリンタにしかアクセスしないのであれば,ルーターは必要ないのである。ところが,営業部のパソコンから人事部のファイル・サーバーにアクセスしたい場合には,相互のネットワークをルーターで接続し,ルーターにデータを渡すようにしなければならない*7

 データを受け取ったルーターは,あて先IPアドレスのネットワーク・アドレスの値を基にして,受け取った通信をどちらの経路にルーティングするのかを判断する。あて先IPアドレスが自分に直接接続しているネットワークの場合,ホスト・アドレスの値を見て,該当のホストに対してデータを送り届ける。

 以上が,IPアドレスを基にしたデータ転送の概要だ。ルーターの動作を含めたこの辺の知識は非常に重要なので,次回にもう少し詳しく説明する予定である。

サブネット・マスクが分岐点を示す

 では,先程出てきた「IPアドレスのうち,どこまでがネットワーク・アドレスで,どこからがホスト・アドレスなのか?」,「1つのネットワークには254台までのホストしか接続できないのか?」という疑問にお答えしよう。

 写真1のIPアドレスの設定を見ると,IPアドレスの下に「サブネット・マスク」という項目がある。写真1ではどちらも「255.255.255.0」となっているが,環境によっては「255.255.0.0」であったり「255.255.255.128」であったり,様々である。このサブネット・マスクの値が,IPアドレスのどこからどこまでがネットワーク・アドレスで,どこからどこまでがホスト・アドレスなのかを示している。

 具体的には,サブネット・マスクの値を32ビットの2進数へ戻した時,値が1である位がネットワーク・アドレス部分である。例えば「255.255.255.0」を2進数で表すと「11111111.11111111.11111111.00000000」となるので,4つの数字の左から3つがネットワーク・アドレスであり,一番右がホスト・アドレスであることが分かる(ネットワーク・アドレスの求め方の詳細は,下記の別掲記事を参照)。この場合はホストの台数は最大254(256-2)台になる。「255.255.0.0」のサブネット・マスクを使えば4つの数字の右2つがホスト・アドレスとなり,最大ホスト数は6万5534(65536-2)台まで増加する。

 ネットワーク・アドレスとホスト・アドレスの切れ目は,4つの数字のピリオドの場所である必要はない。例えばサブネット・マスク「255.255.225.224」は「11111111.11111111.11111111.11100000」であり,32ビット表記の右側5つがホスト・アドレスとなってホストの台数は30(32-2)台となる。

 なおサブネット・マスクは,「192.168.20.1/24や192.168.20.1/25」といった表現をすることがある。これはそれぞれ,サブネット・マスクが24ビット,25ビットであることを示している。24ビットのサブネット・マスクであれば「11111111.11111111.11111111.00000000」(1が24個並ぶ),25ビットのサブネット・マスクであれば「11111111.11111111.11111111.10000000」(1が25個並ぶ)となり,それぞれ,サブネット・マスクが,「255.255.255.0」,「255.255.255.128」であることを示している。