【NET技術.003】IPについて②
佐藤@IT雑貨屋です。
ネットワークで仕事をする際、このIPについては必須の知識になります。前の記事では基礎的な部分を書きましたが、前回に引き続き関連内容を書いていきます。
◆ルーティング
パケットを配信する時に利用されるのが、IPアドレスですが、そのIPアドレスを基に「この宛先のIPアドレスは、このルーティングホストに送り出す」という事を判断して、パケットを送出したり転送したりします。この判断の元になるのが、ルーティングテーブル(経路制御表)です。ホストやルータは、このルーティングテーブルを基に、パケットの送信先、転送先を決めていきます。ルーティングテーブルはネットワークアドレスを基に、パケットを送信するホストや、次のルータを決めていきます。
◆デフォルトゲートウェイ
全てのネットワークやサブネットに関する情報をルーティングテーブルに掲載すると、情報量が多くなりすぎてしまいます。その為にルーティングテーブルに登録されていないIPアドレスの転送先としてデフォルトルートが設定されます。このデフォルトルートは、ルーティングテーブルには0.0.0.0/0もしくはdefaultとして記述します。
PC等の場合、自分が所属するネットワーク以外にパケットを送信する場合には、PCのデフォルトルートであるデフォルトゲートウェイが用いられます。デフォルトゲートウェイは、他のネットワークと通信する時の既定のルートで、PCに自動的もしくは手動で設定します。
またPC等の設定を変更する事なく、このデフォルトゲートウェイを二重化(冗長化)するためのプロトコルにVRRP(Virtual Router Redundancy Protocol)があります。VRRPでは仮想ルータを設定する事で、同じIPアドレスで複数のルータを稼働させる事が出来ます。
◆グローバルアドレスとプライベートアドレス
インターネットでは、全てのホストやルータにユニークなIPアドレスを割り当てる必要があります。しかしIPv4のIPアドレスは32ビットしかなく、最大でも43億個です。インターネットの急速な普及に伴い、IPアドレスが大量に必要になりましたが、単純に1台に1IPアドレスを割り振るとIPアドレスが枯渇する事が見えてきました。
そこで、インターネットに直接つながないネットワークのために、そのネットワーク内でのみユニークなIPアドレスであるプライベートアドレスが考案されました。そしてそのネット枠とインターネットをつなぐルータには、インターネットで利用できるユニークなグルーバルアドレスを設定し、このネットワーク間でアドレス変換を行う事によって、インターネットとの通信を可能にしました。
このプライベートアドレスに、任意のIPアドレスを利用すると、インターネット接続時に混乱も起きる事から、プライベートアドレスに利用できるIPアドレスが予め決められました。
◆ICMP
IPを補助するためのプロトコルにICMP(Internet Control Message Protocol)があります。IP通信する時に、ネットワークが正常に接続されているかを確認する事や、異常が発生したときにその状況を把握してトラブルシューティングを行う事のために、ICMPは利用されます。
ICMPには、いろいろなタイプのメッセージがあり、IPを補助するための情報をやり取りします。
ICMPメッセージのうち、タイプ8のエコー要求メッセージとタイプ0のエコー応答メッセージは一緒に利用され、通信したいホストやルータにIPパケットが到着するかを確認します。この仕組みを使う代表的なアプリケーションにpingがあります。
◆ARP
ARP(Address Resolution Protocol)は、IPアドレスからMACアドレスを求めるためのプロトコルです。宛先IPアドレスを手掛かりに、次に送るべきホストのMACアドレスを調べます。
送信元IPアドレスと宛先IPアドレスを比較して、宛先IPアドレスが同じネットワーク上にある時には、その宛先IPアドレスのMACアドレスを調べます。そして宛先IPアドレスが違うネットワークにある時には、次に送るルータのIPアドレスからMACアドレスを調べます。
このARPはIPv4のみ使用されるプロトコルで、IPv6ではARPの代わりにICMPv6の近隣探索メッセージが利用されます。
◆NAT
NAT(Network Address Translation)は、ネットワークアドレスの返還を行う技術です。IPヘッダに含まれるIPアドレスを別のIPアドレスに変換します。ローカルなネットワークではプライベートIPアドレスを使用し、インターネットに接続する時にグローバルなIPアドレスに変換するための技術として開発されました。
NATを利用する時には、ルータでNATを行いますが、市販のルータには大抵、この機能は実装されています。現在では、IPヘッダだけではなく、TCPヘッダやUDPヘッダのポート番号も付け替えるNAPT(Network Address Port Translation)が主流で、これはIPマスカレードとも呼ばれています。
◆NAPT
NATだけでは、一度に複数台のホストがインターネットに接続する事ができません。そこで一つのIPアドレスでポート番号を変える事によって、複数台のホストの同時接続を可能にしたのがNAPTです。
<例>
送信元1:192.168.1.2:2050 ⇒ 200.200.200.1:80
送信元2:192.168.1.3:2050 ⇒ 200.200.200.1:81
この設定により、宛先ホストには200.200.200.1の1つのアドレスで、2台の通信を行う事が可能になります。
◆IPv6(Internet Protocol version 6)
現在のIPv4アドレスの枯渇を解決する対策としてIPv6があります。IPv6ではIPアドレスを128ビット化する事で、十分なアドレス空間を準備する事が出来ます。IPv6アドレスを表記する場合には16進数を使用し(IPv4では10進数でした)、4桁毎にセミコロン(;)で区切ります。さらに0が続く場合には表記は1か所に限り、以降0は省略しセミコロンで表現する事が出来ます。
このIPv6には以下の特徴があります。
①IPアドレスの自動設定
DHCPサーバが無くても、IPアドレスを自動設定が可能です。
②ルータの負荷軽減
固定長ヘッダとなり、ルータはエラー検出が不要となるので、負荷軽減できます。
➂セキュリティ強化
IPSecのサポートが可能(推奨)であるため、セキュリティ確保が確保され、
ユーザー認証やパケットの暗号化を行う事が出来ます。
④3種類のアドレス
1つのインターフェースに割り当てられるユニキャストアドレスのほか、複数の
ノードに割り当てられるマルチキャストアドレス、また複数のノードのうち、
ネットワーク上で最も近い一つだけと通信するエニーキャストアドレスの
3タイプのアドレスを設定する事が出来ます。
◆ループバックアドレス
ループバックアドレスとは、自分自身を示すアドレスで、同じコンピューター上で動作する別アプリケーションと通信を行う時に使用されます。ホスト名としては「localhost」という名称が使われ、IPv4アドレスでは127.0.0.1が良く使われます。
IPv4でループバックアドレスを利用する場合には127.0.0.1~127.255.255.254(127.0.0.0/8)が利用でき、IPv6では;;1となります。