1つ下の層である データリンク層 で、ある 1つの ネッ トワークに継った複数のコンピュータがつながることが保証されます。細かく 言うと、MACアドレス というインターフェース(ネットワークの 出入り口であるハードウェア) が固有にもっている 6オクテット ( 48 ビット)の数値で識別され、 CSMA/CD(有線), CSMA/CA(無線) 等のプロトコル にのっとってフレーム(=データの小さな 塊) 単位でのデータ交換を可能としています。「インターネット」の爆発的普及によりIPアドレス(後述)が枯渇寸前に なっていて(アジア地域では、2011年4月に枯渇しました)、 IPv6 (version 6) 等の次世代技術も開発されていますが、この資料では現在 一般的に使われてるIP (version 4) について述べていきます。
IPv6 ではアドレスが 128 ビットになって桁違いにアドレス空間が広がってい るので当分は枯渇することはないです。(新規に接続申請する組織は、IPv6 し か貰えないので)今後は IPv6 が嫌でも少しずつ普及していくとは思いますが、 すぐに今の (IPv4) ネットワークが使えなくなることも考えにくいです。
MACアドレスもアドレスじゃないか、と思うかもしれませんが、MACアドレスは 機器固有のものであってアドレスというよりは機器認識番号という感じで、ネッ トワークとの関連は原則ないです。それに対して IP アドレスはネットワーク を意識してソフトウェア的に設定できるもので、まさにアドレス=住所ですIP ネットワークとは、IPアドレスを使ってIPデータグラム (datagram, データの塊、データリンク層でのフレームに対応)を適切 な宛先に転送するネットワーク、と言うこともできます。例えばある家をあらわすのに「白壁で、部屋は4つあって…」と詳細に説明す るか(確かに世界で1つしか無いかもしれないが、近所に無い限り、それが何 処にあるのかを探す方法は現実的にはない)住所で説明するか、という感じで しょうか?(詳細は後述)
普通の郵便で例えると、宛先がきちんとかかれていないと郵便は届かないわけ で、 Internet 上での「きちんとした宛先」がIPアドレスと言えるわけです。
例えば阪南大学の住所は国際的表記(?)では
5-4-33, Amami-higashi, Matsubara, Osaka 580-8502 JAPANですが、これは他にはありえないわけで、世界中で1つです。IPアドレスも同 様で、Internet に「直接」接続しているコンピュータについては世界中のコ ンピュータそれぞれに別々のIP アドレスが割り振られています。
実は「直接」繋がってない場合も結構多くあります。そのような時は プライベートアドレス というものを使います(後述)。
10010110000010011111111001010001のように32個並ぶわけですが(10 進数だと 2517213194) 普通は8ビットずつ区 切って、
10010110 00001001 11111110 01010001とし、さらに各々を(なぜか16進数ではなく) 10進数に直して
150.9.254.81のように書くのが普通です。つまり、10進数で 0〜255までの数の、4つ 組 でIP アドレスというものが成り立っていてるというわけです。
ちなみにIPv6 ではアドレス 128 ビットを、32桁の16進数 (32x4bit) で表しま す。
Internet でも同様に考えて、近くのコンピュータにデータを送るのに世界中 に問い合わせたり遠くのコンピュータを経由することは原則しません。
VPN 等の例外もあることはあります。これを実現するのが「ネットワークアドレス」と 「ホストアドレス」です。IP アドレスというのは実は
先の例では、150.9. が阪南大学 (hannan-u.ac.jp) のネットワークアドレス で、254.81 が puffin のホストアドレス、となるわけです。
ホストアドレスが全て1であるアドレスはブロードキャストアドレス (そのネットワーク全体を示す)で、全て0であるアドレスはネッ トワーク自身のアドレスになります。つまりこの2つにはホスト (コンピュータ)を割り当てることは出来ません。
つまり、2進数で00000000〜 01111111 です。ただ、 00000000 と 01111111 は使われないです。01111111 (127) は、ローカルループアドレ ス(自分自身)を表すのに使われます。です。class A は1オクテットがネットワークアドレスで、残り3オクテット (24bit) がホストに割り当てられます。
つまり、2進数で10000000 〜 10111111です。2オクテットがネットワークアドレス、2オクテットがホストアドレスです。
つまり、2進数で11000000 〜 11011111で、3オクテットがネットワークアドレスです。
(クラスD、Eは略)
例えば、class B のネットワークアドレスを割り当ててもらっている組織(阪 南大はこれ。150.9.0.0/16)
というふうに x.y.z.u/dd (スラッシュのあとに数字をつける) のよ うに書いて、上から何ビットがネットワーク部分かを明示する方法がよく使わ れますので、慣れておいてください。の場合、組織内で使えるアドレスの総数は、自分で設定できる範囲が 32-16=16 ビットのこっている、ということで
原則として組織に割り当てるネットワーク(IPアドレス空間)はクラスの切れ 目に応じたものだったのですが、最近では IP アドレスが不足しているので、 CIDR (Classless Inter-Domain Routing) が利用されたりしています。 これは、切れ目がオクテットの境ではなく、たとえば上30ビットがネットワー クアドレスで、下2ビットがホストアドレス、というものです、この場合 all 0/all 1 を除くと実質割り当てられるホスト数は2つだけになります。これによ り、アドレス空間をさらに有効活用できることになります。
阪南大学に 6万台もコンピュータを設置するということはまずないわけで、そ れは則ち多くのアドレスが放置(死蔵)されている、ということになり、CIDR はこれを改善するための技術ということができます。150.9.0.0/16 が阪南大学のネットワークである、というふうなIPアドレスの 管理は世界で共通の枠組みでされているわけですが(そうでないと、世界で一 意を保障できず、接続が保障できなくなる)、実際にどうなっているかという と、ICANN(Internet Corporation for Assigned Names and Numbers) から委託された IANA(Internet Assigned Number Authority) が中心となってアドレス空間(≒ネットワーク)を管理し、各種のイン ターネットレジストリと呼ばれる組織が割り振り・割り当てに関するポリシー の作成や、実際の作業を行っています。…ということで、阪南大学は 2022年3月に、150.9.254.0/23 のネットワーク 以外を放出(売却)しました。以下の説明は、それ以前の構成を前提に書か れているので注意してください。
上述のように、アジア担当下部組織であるAPNIC の管理する IP アドレスは、 2011 年 4 月に枯渇しました。アドレスの割り振り・割り当ては階層 構造となっており、下位層にいくに従ってよりエンドユーザーに近い場所での 割り振り・割り当てを行う構造となっています。
RFC1918 で規定されているプライベートIPは以下の通りです。
これらは勝手に使ってよいのですが、当然使ってよいのはその閉じたネットワー クの中だけで、重複してるので外部、すなわち The Internet では当然このア ドレスは直接は 使えません。
…いまいちな例えですが、いってみればこれはマンションの部屋番号のような もので、世界中に 201 号室は無数にあるわけですが、これだけではちゃんとし た住所になっていないわけで、現実にはマンションの住所がないと届けようが ないといった感じでしょうか?ではどうするかというと、プライベートアドレスのマシンはグローバル アドレスが振られているルータに接続され、そのルータ経由で、その時にグロー バルアドレスに変換してから外部に接続する、ということをします。これには NAT (Network Address Translation) や、 NAPT (Network Address Port Translation) (別名 IP マスカレーディング (masquerading) )といった技術をもちいます。
厳密には NAT は、ある プライベート IP アドレスをグローバルIP に対応 付ける(マップする)ことを意味するのに対して、NAPT は多くの プライベー トアドレスを1つのグローバル IP にマップするということで別の技術ですが、 最近は(厳密にいうと間違いだけど)後者も NAT に含んだ言いかたをすること が多いようです。どのようにして複数のプライベートアドレスを1つの IP に マップするかについては、ここでは略します (TCP の知識が必要なので、TCP を勉強してからの話)この変換を利用すると、1つのグローバルアドレスを多数のコンピュータで使 えるのでアドレスの消費を節約できるというわけです。また、結果として外部 から内部のアドレスを隠すことになっているので(不正アクセス等の)セキュ リティ対策面でも有利です。現在ちまたで売られて使われている「ブロー ドバンドルータ」なるものは、ほとんどがこの機能を使ってます。
本学は wifi環境はずっとプライベートIP での運用です。有線LAN環境では 2021年度までは学内はグローバルIPを使っていたのですが、上述のほうに IP を放出したので、2022年度からは学内もプライベートIPによる運用をし ています。
そして、サブネットがどのように刻まれているかを示すのに使われるのが ネットマスクです。これとIP アドレスの ビット毎の論理積 (bitwise-AND) をとるとサブネットのアドレスがわかります。例えば本 学の場合だと、ネットマスクは 255.255.248.0 なので、例えば 150.9.160.10 の場合、150.9.160 までがネットワークアドレスとなります。つまり;
255 . 255 . 248 . 0 11111111 11111111 11111000 00000000 & 10010110 00001001 10100000 00001010 <= 150.9.160.10 =10010110 00001001 10100000 00000000 <= 150.9.160.0
同じネットワークアドレスを表すのに、150.9.160.0/21 という表記 をする場合もあります。これは、上位21ビット(=255.255.248.0) がネットワー クアドレスである、という意味です。同じ 150.9.160.0 でも、/19 もありえ るし、/24 もありえるわけです(上図参照)。
ネットワーク機器の設計や設定の実務を行うためには、IPアドレスとネットマ スク値からネットワークアドレスや収容できるホスト数を算出できなくてはい けません。とはいえ、素朴な感想としてと考える人が多いでしょう。これについては、ルーティングを学んだ上で再考 します。
- なぜ、こんなに面倒な計算をするのだろう?
- 誰が、こんな面倒なことを考えたのだろう?
そこで、最近ではほとんどの場合、IP アドレスやそれに関連する設定(後述 するルーティングテーブルの管理等)は、動的に設定することができるように なっています。このためのプロトコルが DHCP です。
これは厳密には3層目ではない特殊な制御(管理)用プロトコルです。つまり、あるネットワークに接続すると、事前にネットワーク管理者が設定し たルールにしたがって、自動的に IP アドレスを取得したりその他の設定をし たりする、ということです。この場合は IP アドレスがそもそも無いわけです から、その下の層である MAC アドレスによる通信により情報交換がされます。 技術の詳細はここでは略しますが、所謂ルータはこの機能を持ってるものがほ とんどです。
実際の制御を簡単な例え話でいうと、
また、pc A1 から pc C への通信を考えると、
物理的距離ではなくホップ数なので、地球の裏側を選択することは十分ありえま す。実際10年くらい前だと、日本とヨーロッパを繋ぐのにアメリカ経由になるこ とがほとんどでした。
まず、ルータにIPパケットが到着したときの動作を考えてみましょう。
ここで言う"AND"とはいわゆる論理演算であり、コンピュータの持つ基本的な演 算処理です。要するに 1 AND 1 の場合だけ答えが"1"になるわけですが、別の 見方をすると、この特性によってIPアドレスとネットマスクの AND を計算すると、ネットワーク アドレスを得ることができるのです。と言うこともできます。この感覚を是非もってください(!)
- ネットマスクでのビットが"1"なら、答えは 1番目の数値と同じ
- ネットマスクでのビットが"0"なら、答えは 必ず"0"
255 . 255 . 248 . 0 11111111 11111111 11111000 00000000 & 10010110 00001001 10100000 00001010 <= 150.9.160.10 =10010110 00001001 10100000 00000000 <= 150.9.160.0
XOR では2つの数値が同じ場合だけ、結果が"0"になります。よって、比較した い2進数のXORを計算し、結果が0になれば「一致」、0以外の結果になれば「不 一致」と判断できます。一致すれば、同じセグメント内なので 直接配送できる ことが分かり ますし、不一致の場合は対応する(場合によってはデフォルト指定の) ネットワークに パケットを流します。