class: title, smokescreen, shelf, no-footer # IPアドレス <div class=footnote> <small><small> </small></small> </div> --- class: col-2,compact # ネットワークの基本構成とIPアドレス(再掲) <small> |種類 |説明 | |------------------------|----------------------| | グローバルアドレス |住所としての意味があるIPアドレスで、ホストを世界で一意に識別するための数字です。(2)より上側で利用します| | プライベートアドレス |ユーザが自由に**利用してよい**IPアドレスで、(2)より下側つまり社内/学内/家庭内ネットワークで使います。次の3つの範囲が利用可能です(表記法は、このあと解説)| | |10.0.0.0/8 | | |172.16.0.0/12 | | |192.168.0.0/16 | </small> ![](/slides/network/tcpip/inet_intro/images/term-intranet-ipaddr.png) <div class=digest-begin-01></div> --- class: img-right,compact # 注意: IPアドレスはネットワークインターフェイスごと ![](/slides/network/tcpip/inet_intro/images/term-intranet-ipaddr.png) - 図の(1)や(2)の機材には複数のIPアドレスがついています (例: 図中(2)の*3ヶ所) - 接続しているセグメントごとに異なるIPアドレスになります - たとえば(2)のファイアウォールは、 上側の学外側インターフェイスが210.128.52.4、 下側の学内側インターフェイスが172.16.0.4、 右側のDMZ側インターフェイスが192.168.1.4 - 正確をきすと、 IPアドレスとは、 ホストではなく**ネットワークインターフェイスにつける識別子**です。 ただ、 **ほとんどのホストでインターフェイスは一つなので、 ホストの住所と思ってOK** --- class: col-2,compact # 二つのIPアドレス体系(おおまかな比較) <div class=footnote> <small><small> (脚注1) 実際のJPNIC申請はISPが代行します。 ユーザが直接JPNICとやりとりすることはありません <br> (脚注2) NATは次節で取り上げます </small></small> </div> <small> - IPv4 (IP version 4) - 大きさは**32ビット** - 表記法:**8ビット**ずつ**.(dot)**で区切り**10進数表記**(詳しくは後述) - 210.128.52.45 - 192.168.10.1 - グローバルIPアドレスは[**JPNIC**](https://www.nic.ad.jp/) に申請しJPNICから割り当ててもらいます (ドメインと同様に申請した組織がIPアドレスの管理を委任されると考えてください) - プライベートアドレスの利用は自由 (使い方は後述の[NAT](https://lectures.fml.org/slides/network/tcpip/inet_nat/)を参照) <wbr> - IPv6 (IP version 6) - 大きさは**128ビット** - 表記法:**16ビット**ごとに**:**で区切り**16進数表記** - 2403:3a00:202:1209:49:212:144:112 - 2001:240::105 <br> 0000を0、さらに連続した0を::で省略可 (::は一ヶ所限定) - 申請手続きは同様です - IPv6のアドレスの**種類**は複数あり、 **一つのインターフェイスに複数種**つけられます。 その中にはイントラネットのみで使うプライベートっぽいアドレスもありますが IPv4のような使い方はしません ([NAT](https://lectures.fml.org/slides/network/tcpip/inet_nat/)は無い) </small> <div class=digest-end-01></div> --- class: title, smokescreen, shelf, no-footer # IPv4アドレス詳細 <div class=footnote> <small><small> </small></small> </div> <div class=digest-begin-02></div> --- class: col-2,compact # IPv4の表記法 <small> - クラス (classfull) - 旧表現 (1993年以前?) - IPアドレスを二つに分けて考えます - **ネットワーク部(network part)** - **ホスト部(host part)** - 分け方は**サブネットマスク**(subnetmask)で指定します - 分け方は3種類のみで、それぞれ**クラスA,B,C**に対応します(後述) - **IPアドレス/サブネットマスク**という表記をすることもあります - 例: 192.168.10.1/255.255.255.0 - IPアドレスが192.168.10.1 - サブネットマスクが255.255.255.0 <wbr> - CIDR (Classless Inter Domain Routing) - 新表現(1993〜) - 分け方は可変長で、分け方(ネットワーク側の大きさ)を/数字 (network prefixもしくは単にprefix)で表現しています。 (network prefix, host prefixという表現もあるそうです) - **VLSM(Variable Length Subnet Mask)** つまり可変長のサブネットマスクと呼んでいます - **IPアドレス/prefix**と表記します - 例: 192.168.10.1/24 - **IPアドレスが192.168.10.1** - **network prefixが24** </small> --- class: compact # IPv4の分類(クラス) <div class=footnote> <small><small> (脚注) multicastを使った会議中継を90年代前半までは見かけました。 認証や課金が出来ないため商用インターネットではmulticastの使いどころがないです。 ちなみにIPv6の裏側ではmulticastを多用しています(なぜなら作者が同じだから:-) </small></small> </div> <small> | クラス | 役割 |ネットマスク(/prefix)| IPアドレスの範囲 |通信の仕方 | |--------|-------------------------|-------------------|------------------------------|---------------------| | A | 大規模組織用 | 255.0.0.0 (/8) | 0.0.0.0 〜 127.255.255.255 |ユニキャスト(1対1) | | B | 中規模組織用 | 255.255.0.0(/16) |128.0.0.0 〜 192.255.255.255 |ユニキャスト(1対1) | | C | 小規模組織用 | 255.255.255.0(/24)|192.0.0.0 〜 223.255.255.255 |ユニキャスト(1対1) | | D | マルチキャスト | |224.0.0.0 〜 239.255.255.255 |マルチキャスト(1対多)| | E | 予約済(未使用) | |240.0.0.0 〜 255.255.255.255 |- | </small> - **クラス**は、 1990年代なかばには旧式になった用語ですが、 大昔のネットワークがあるかぎり現場では使いますので、 おぼえてください(基本情報でも出ます) - **ユニキャスト**は**1対1**の通信です。 IPアドレスは住所に相当します - **マルチキャスト**の場合、 通信は**1対複数**で、IPアドレスはチャンネルにあたります。 そのチャンネルに参加しているホストすべてに通信が届きます <div class=digest-end-02></div> --- class: img-right,compact # 例: 192.168.10.1/24の新旧表記法 <div class=footnote> <small><small> (脚注) /28とか/14とか半端なprefixにすると分かりにくいですが、 10進数表記にするから分かりづらいだけ </small></small> </div> ![](images/ipv4-192-168-10-1.png) - 旧表現 192.168.10.1/255.255.255.0 - 新表現 192.168.10.1/24 - 旧表現では**ネットワーク部が24ビット**、**ホスト部が8ビット**です - /24 (network prefix が 24)はネットワーク部が24ビットという意味です - 255.255.255.0を2進数で書くと**左から1が24個**ならびます(右下図)。 network prefixの24は、この24を意味しています <div class=digest-begin-03></div> --- class: col-2,compact # IPv4アドレスの使い方(割り当て方) - 割り当てられたIPアドレス群の中で、両端はホストの割り当てに使えません - 最小のIPアドレスを**ネットワークアドレス**、 最大を**ブロードキャストアドレス**と呼びます - 残りの部分をホストに割り当てます - つまりホストに使えるIPアドレスの数は 「**ホスト部の大きさ(2^ホスト部のビット数) - 2**」個が上限 - CIDR表現なら**2^(32 - network prefix)**個になります <wbr> - 例: あなたの研究室では192.168.10.0/24を使ってください - IPアドレスは192.168.10.0 〜 192.168.10.255 までの256個 - ただし両端は使えません - 192.168.10.0(一番小さいIPアドレス)は**ネットワークアドレス** - 192.168.10.255(一番大きいIPアドレス)は**ブロードキャストアドレス** - ホストに使えるIPアドレスは - 192.168.10.1 〜 192.168.10.254 までの254個 - ホスト部は8(32-24)ビットなので <br> (2^8=256) - 2 = 254 --- class: col-2,compact # IPv4アドレスの使い方で特別なもの(1)(半分は復習) - ブロードキャストアドレス - **同一セグメントにあるホスト(群)へパケットを一斉に送信したい**場合に使う宛先 (IPパケットでブロードキャストアドレスを宛先として送信) - 動作は[イーサネット](/slides/network/tcpip/ni_ethernet/)の回で解説 - **一番大きなIPアドレス**を使う約束 - 例: 192.168.10.0/24 というセグメントの場合、 192.168.10.255がブロードキャストアドレス <wbr> - ネットワークアドレス - **一番小さなIPアドレス**で、 利用するIPアドレス帯を**代表**するIPアドレスです。 「192.168.10.0/24のセグメント」といった表現をします。 例: 192.168.10.1/24は192.168.10.0/24の中でホストに割り振るIPアドレスの1つ - 例: 192.168.10.0/24 - 192.168.10.0 がネットワークアドレス - 実際のところ特別な用途はないのですが、後方互換性のため利用しません <div class=footnote> <small><small> (脚注)BSD Unixの初期実装ではネットワークアドレスがブロードキャストでした </small></small> </div> --- class: col-2,compact # IPv4アドレスの使い方で特別なもの(2)(半分は復習) - プライベートアドレス(既出) - 自由につかってよいIPアドレスなので**世界中で重複**しています - このアドレスをつけているホストは**インターネットに直結**できません (同じIPアドレスのホストが世界中に無数にあるから) - この変なアドレスをどう使うのか?は、 [NAT](/slides/network/tcpip/inet_nat/)の回で説明 - 各クラスから1領域ずつ割いています - 10.0.0.0/8 - 172.16.0.0/12 - 192.168.0.0/16 <wbr> - 127.0.0.1 (loopback address) - **自分自身**を意味します。とうぜん全コンピュータに存在します。 自分宛=他のホストと通信しないため、127.0.0.1は重複していても問題なし - デモで127.0.0.1を使っているので既出 - この特別な127.0.0.1があるので、 実は127.0.0.0/8は一般のIPアドレス割当に使っていません (もったいない) <div class=footnote> <small><small> (脚注) ふつう127.0.0.1に物理的な実体はありません。 OS(カーネル)では127.0.0.1をソフトウエアで処理する実装なのでsoftware loopbackという表現もあります </small></small> </div> <div class=digest-end-03></div> --- class: title, smokescreen, shelf, no-footer # IPv6アドレス詳細(少し) <div class=footnote> <small><small> 基本情報処理試験でも出るのでIPv6も少しだけ </small></small> </div> --- class: col-2,compact # IPv6アドレス - 前述の大きさやアドレス表記法といった基本的な事柄は覚えてください - 大きさは**128**ビット - **16ビットごと**に**16進数**、**:**つなぎ - 連続した0は省略可 - IPv4と同じ**CIDR表記**です - 2403:3a00:202:1209:49:212:144:112/128 - 2403:3a00:202::/64 - IPv6のユニキャストアドレス(住所の意味合いを持つアドレス)は、 左側64ビットが**サブネットプレフィックス**、 右側64ビットが**インターフェイス識別子** (MACアドレスを元に自動生成したホストごとに異なる値) <wbr> ![](images/ipv6-meui64.png) - たとえば70:85:c2:da:bb:72という MACアドレスのネットワークインターフェイスに自動でつくIPv6アドレスは fe80::7285:c2ff:feda:bb72 になります。ここで fe80::/64 が prefix で、 7285:c2ff:feda:bb72が自動生成(Modified EUI-64という規則で変換) された右側64ビットです --- class: col-2,compact # IPv6のメリット <div class=footnote> <small><small> (脚注)参考:(ネットワーク運用) IPv6を使うユーザが少なくv6ネットワークが空いている (俗に言うスカスカの状態な)ので、 自宅のフレッツをIPv4 over IPv6で接続すると速くなるらしいです (という噂に引っかかって...) </small></small> </div> - IPv6の必要性 - IPv4ではIPアドレスが足りないため - v4の最大43億程度では地球人口以下 - そこで1990年代前半には開発開始 - 128ビットの巨大なアドレス空間 - IPv4の96ビット倍は簡単に数えられない巨大さで、 アドレスが足らないという話は当分ありません <wbr> - IPv6の開発開始と同時に、 **IPv4延命策としてプライベートアドレスと[NAT](/slides/network/tcpip/inet_nat/)**(後述)を導入しましたが... <br> - **IPv6ではTCP/IPの原点へ回帰** - **IPv6ではグローバル**アドレスで通信 - **正しいEND-TO-END通信** - NATはしません、出来ません - ヘッダの整理など細かな技術的改良 - 新機能 - IPSec (IP Security, VPNなどで利用) - IP Anycast --- class: title, smokescreen, shelf, no-footer # 私論 (<small>中間試験には出ません</small>)<br>IPv6のデメリット <div class=footnote> <small><small> (脚注1) IPv6の闇を語るよ〜 (脚注2) 我々の産業は巨額の先行設備投資ビジネスな点にも注意 </small></small> </div> --- class: col-2,compact # 私論: IPv6のデメリット <div class=footnote> <small><small> (脚注1) デメリットについては異論もありましょうや (脚注2) 近年「家庭のBフレッツをIPv6経由にすると高速」という営業をしてますが、 v6の技術が優位だからではなく、 v6の設備投資がダブついているからv6へ誘導したいキャリア都合でしょう (フレッツのIPv6バックボーンがスカスカの間だけ真実なので、 買ってみたけど速くない!だまされた!と思う人が出てきてて当然の案件; みんなで使えば遅くなる;実際そういう人が出てきてます) </small></small> </div> - 巨大なIPアドレス空間という利点だけでは移行の動機として不十分です - 欧米諸国(1990年代初頭にインターネットを導入した国々)では、 IPv4アドレスをわりとたくさん確保しているため、あえてIPv6に移行する動機が希薄です - 後発の中国やロシア、インド、中東、アフリカはIPv6を使いたいでしょう <wbr> - IPv4でもIPv6の新機能のほとんどが使えるため技術的な動機も希薄です - (NATなしという)「ネットワーク設計が抜本的に異なる」設計・運用を解決する説得力のある提案を聞きません。 これは膠着状態が20年くらい続いている所謂「**鶏が先か、卵が先か**」問題です。 IPv6が普及しないのでIPv6用の機器が進化しませんが、 機器がないからIPv6が使えないわけで...