CTC 教育サービス
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes
こんにちは。土井ゆうか(ドイ ユウカ)と申します。
このコラムでは、2010年3月に初版が発行され、現在は、2015年5月に第1版第10刷が発行されている、株式会社ソキウス・ジャパン編著の「1週間でCCNAの基礎が学べる本」を用いて、初心者の私が学んだことをまとめて参ります。コラムの中のページ表記は、この書籍のページを示します。
今回は、「ネットワーク層のプロトコル」と「IPアドレス」について学んでいきましょう。
1.ネットワーク層のプロトコル
2.IPアドレス
前回は、データリンク層までの機能にて、隣接ノードと正しく通信できるようになりました。これで、近くのコンピュータへファイル送信したり、プリンタへ印刷データを効率よく伝送したりできるようになりましたが、インターネットのように様々なネットワークが相互に接続された環境では、さらに離れたノードと通信を行う必要があります。
このように、離れたノードとの通信を行う際に使用されるのが、ネットワーク層のプロトコルです。ネットワーク層のプロトコルとして代表的なものとして、IPとICMPがあります。
http://www.cisco.com/web/JP/news/cisco_news_letter/tech/osi/index.html
IPは、Internet Protocolネットワークの略で、RFC(Request for Comments) 791で標準化されているプロトコルです。最近のネットワークでは、デファクトスタンダード(世界標準)として使用されており、主な機能は、直接接続されていない離れたノード同士が正しく通信できるようにすることです。
IPにはバージョンがあり、現在最も普及しているのはバージョン4です。バージョン4であることを明記したい場合にはIPv4(アイピーヴイフォー)と表記します。IPアドレスではおよそ43億ものアドレスを表現できますが、近年では枯渇が問題となり、これを解決するためバージョン6(IPv6)が考え出されました。
以降、本書では、特に注記がない場合には、IPはIPv4を指すと考えてください。
■IPヘッダ
IPヘッダにはP.92 の表のとおり、以下のような様々なものが含まれます。
フィールドについて少し補足します。まず、バージョン フィールドには、IPv4かIPv6かが入り、サービスタイプ フィールドには、データの優先度などを示す情報が入ります。また、TCP/IPではレイヤ2のプロトコルごとに、最大データサイズが決まっているのですが、この上限より大きいデータを送信する場合に、データを分割するのに使用されるのが、識別子、フラグ、フラグメントオフセット フィールドです。
生存時間フィールドは、パケットのループ防止用のフィールドです。生存時間フィールドは、TTL(Time To Live)とも呼ばれ、IPパケットがトラブル発生などにより宛先に送信できない場合などに同じ箇所を回り続ける(ループが発生する)ことを防止するため、ルータを通過するごとにこのTTLの値を減らし、0になったらデータを破棄する取り決めになっています。
プロトコル フィールドには、次に続く上位プロトコルの情報が入ります。また、チェックサム フィールドには、ヘッダ部のエラーをチェックする値が入ります。
ICMP(Internet Control Message Protocol)は、RFC(Request for Comments) 791で標準化されているプロトコルです。IPが使えるノードでは、必ずICMPも使用できるようになっています。
IPには正確に通信できたか、確認する機能がないため、ICMPが、エコー要求とエコー応答を使用して通信状態を確認できるよう補佐しています。Pingコマンドは、宛先のIPアドレスに通信できているかを確認するコマンドですが、これは、ICMPのエコー要求とエコー応答のメッセージを利用した機能です。
トラブルや設定ミスで宛先にパケットが到達できなかった場合には、送信元に宛先到達不能メッセージが戻されます。このとき、送信不能になったノードの情報も送信元に戻されるので、どこから到達不能になったかわかります。また、TTLの値が0になってデータが破棄された場合、時間超過メッセージが送信元に戻されるので送信元でこれらを用いてトラブルシューティングすることができます。
■IPアドレスとは
IPアドレスは、通信相手を特定するための番地のような値で、2新数32桁(32ビット)で構成されます。2進数で表記すると人間には非常にわかりづらいので、32ビットを8ビットずつに区切り、それぞれを10進数に変換し、ドット「.」で区切って表記します。この、8ビットに区切った単位を、オクテットと呼びます。
IPアドレスには、32ビットの中に、ネットワークのアドレスを表すネットワーク部とそのネットワークの中で個々のホストを特定するための、ホスト部の2つのアドレスが含まれています。
■IPアドレスのクラス
IPアドレスは、規模、用途によって(規模の大きい順に)AからEの5つのクラスに分かれています。このうち、一般のネットワークで使用できるのは、クラスAからクラスCのアドレスです。
クラスAのアドレスは、第1オクテットが1から127の範囲のアドレスです。第1オクテットがネットワークアドレス、第2から4オクテットがホストアドレスになっています。
クラスBのアドレスは、第1オクテットが128から191の範囲のアドレスです。第1から2オクテットがネットワークアドレス、第3から4オクテットがホストアドレスになっています。
クラスCのアドレスは、第1オクテットが192から223の範囲のアドレスです。第1から3オクテットがネットワークアドレス、第4オクテットがホストアドレスになっています。
■ネットワークアドレスとブロードキャストアドレス
IPアドレスのホスト部には、2つの特別なアドレスがあり、これらはノードに割り当てることができません。1つめは、ホスト部がすべて0のアドレスです。これは、ネットワークアドレスと呼ばれ、ネットワーク自身を表すIPアドレスとして使用されます。2つ目は、ホスト部がすべて1のアドレスです。これは、ブロードキャストアドレスと呼ばれ、そのネットワークのすべての構成員宛の送信(一斉送信)であるブロードキャストに使用されます。
このように、ネットワークアドレスとブロードキャストアドレスはホストに割り振ることができないので、ホストに割り振ることのできる数(最大ホスト数)は、2の乗数-2で計算できます。
なお、クラスAでは、第1オクテットが127で始まるアドレス(一般的には、127.0.0.1)は、ループバックアドレスという自己診断用のアドレスとして使用されるので、ホストに割り当てることができません。
■サブネットへの分割
クラスAのネットワークでは、最大16,777,214台のノードを接続できます。また、クラスB,Cのネットワークでは、それぞれ、65,534台、254台のノードを接続できます。
これらのノードを接続した際に、あるノードからブロードキャストが送信(一斉送信)されると、非常に多くのリソースが消費され、非効率です。このように、ブロードキャストが届く範囲のことをブロードキャストドメインと呼びますが、ブロードキャストドメインは小さいほうが効率がいいといえます。
そこでネットワークを小さなネットワークに分割(サブネット化)し、ネットワークのパフォーマンスを向上させることが考え出されました。
■サブネットマスク
サブネット化するためには、IPアドレスのネットワーク部の桁数を増やし、その分、ホスト部の桁数を減らします。サブネット化して新たにネットワーク部としたIPアドレスのビットをサブネット部といいますが、ネットワーク部(+サブネット部)とホスト部の境界はサブネットマスクと呼ばれる値を使って表します。
この境界は、スラッシュ(/)に続けてネットワーク部の桁数を示す、プレフィックス表記でも示すことができます。
新しくできるサブネットの数は2の乗数で表すことができます。なお、サブネットマスクの第4オクテットでは、254と255は使用されません。
■各サブネットのアドレス
ネットワークを設計する上で、新しくサブネット化した各サブネットのネットワークアドレス、ホストアドレス範囲、ブロードキャストアドレスを知っておくことは非常に重要です。
■グローバルIPアドレスとプライベートIPアドレス
IPv4アドレスは潤沢にはないため、効率的に活用する必要があります。効率的に活用するための手段として、グローバルIPアドレス(固有のIP)とプライベートIPアドレス(社内や家庭など、内部専用のIP)があります。
IP上のプロトコルを使用するTCP/IP通信において、通信相手を特定するために使用されるのがIPアドレスです。前節でみたように、IPヘッダには必ず宛先IPアドレスと送信元IPアドレスの情報が含まれます。このような、パケットに含まれるIPアドレスを読み取り、適切な経路に送り出す機能がルーティングです。
なお、IPアドレスを利用する通信は、ユニキャスト、ブロードキャスト、マルチキャストの3種類に大別することができます。
ユニキャストは、あるノードからあるノード宛の1:1の通信です。ブロードキャストは、あるノードから全員宛の一斉送信(1:全員)です。マルチキャストは、あるノードから特定のグループ宛の通信(1:n)です。
本日は以上です。
なお、ネットワークの概念や仕組みをしっかり学び直したい方や、ネットワークを基礎から学びたい方には、CTC教育サービスのオリジナルコースである「ネットワークファーストステップ」がお勧めです。
また、実機で学びたい方にはシスコ認定コースがございます。詳細は、以下のリンクをご参照くださいませ。
http://www.school.ctc-g.co.jp/cisco/
最後まで読んでくださってどうもありがとうございました。次回もどうぞお楽しみに。
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes