class: title, smokescreen, shelf, no-footer # <small>インターネット層<br>- ダイジェスト -</small> <div class=footnote> <small><small> インターネット層 通常版: <A HREF="/slides/network/tcpip/inet_intro/"> [概要]</A>、 <A HREF="/slides/network/tcpip/inet_network/">[ネットワーク]</A>、 <A HREF="/slides/network/tcpip/inet_ipaddr/"> [IPアドレス]</A>、 <A HREF="/slides/network/tcpip/inet_nat/"> [NAT]</A>、 <A HREF="/slides/network/tcpip/inet_routing/">[ルーティング]</A> and <A HREF="https://www.youtube.com/playlist?list=PLS2cEmI21XYKUWdzZyvjE3mO0YuNIu0lQ"> [動画再生リスト] </A> </small></small> </div> --- class: img-right,compact # 全体像(再掲) ![width640px](/images/network/end-to-end.png) <small> - 右図: ホストとホストの通信 - ホスト = コンピュータ - END TO END (端〜端)通信 - 用語: 階層(Layer), 〜層 - 用語: プロトコル(取り決め,約束事) - TCP,IP,Ethernetなど - 用語: サーバ,クライアント - 右図: サーバ(左)とクライアント(右) - サーバ (写真の業務用PC) - サービスを提供する側 - WWWサーバ,メールサーバ - クライアント (右端のPC) - サービスを受ける側(お客様) - ブラウザやメールソフト - 人間が操作しているPC </small> --- class: img-right,compact # インターネット層 <div class=footnote> <small><small> (脚注) TCP/IPはOSI7階層モデルと独立に考えられた仕様なので、 OSI7階層モデルとは不整合です (正確にはTCP/IPが先でOSIモデルが後に登場しています)。 また、TCP/IPとOSIの対応関係図を載せている教科書もありますが、 本ごとに解釈が異なっていたりします;-) </small></small> </div> ![width640px](/images/network/end-to-end.png) <small> - 4階層の上から3番目(下から2番目の)階層が「インターネット層」です。 大域的なパケット転送を担当する部分になります - この層を代表的するプロトコルがIPとICMP - IPとICMPもコンビで実装されます </small> --- class: title, smokescreen, shelf, no-footer # <small>Part 1: インターネット層の概要<br></small> <div class=footnote> <small><small> </small></small> </div> --- class: img-right,compact # インターネット層(IPとICMP)の役割 <div class=footnote> <small><small> (脚注) ホスト=コンピュータ。 ホスト(host)というと英語では主人ですが、 かつて(大型コンピュータの時代)、 サービスを提供する(ユーザをおもてなしする)ことから<B>ホストコンピュータ(略してホスト)</B>と呼びました。 その名残り。 当時ユーザはホスト本体には触れず、 ホストにつないだ<B>小型の端末(ターミナル)</B>でコンピュータを使っていました。 <B>ターミナル</B>という名のアプリは、その名残り </small></small> </div> ![](/slides/network/tcpip/inet_intro/images/ip-unreliable.png) - IPは右図のようにインターネット層でのパケット転送を担当します - END-TO-ENDで、 あるホスト(IPアドレス)からホスト(IPアドレス)への転送 - IPは**大域的な転送**の担当、 ネットワークインターフェイス(NI)層 (イーサネットなど)は**隣あった機器間の転送** - TCPとIPはコンビです(再掲) - IPはIPアドレス(**住所**)間の転送を担当 - TCPはアプリケーション(**誰**)宛の担当 --- class: img-right,compact # IPパケット(再掲) <div class=footnote> <small><small> (脚注) [復習] パケットとは封筒のようなもので宛名書きがヘッダにあたります。 それを右下図のように書きます </small></small> </div> ![height240px](/images/network/packet-envelope.png) ![height240px](/images/network/tcp-all-layers.png) - インターネット層(IP,ICMP)は、 トランスポート層(TCP,UDP)から渡されたパケットにIPヘッダを追加し、 IPパケットをネットワークインターフェイス層(NI層,Ethernetなど)へ渡します。 例: - TCPパケットにIPヘッダを追加してIPパケットを作り、 下層(NI層)に託します (図上は封筒に入れて入れて...) - IPパケットサイズの上限も(TCPと同様で)下層の制限で決まります。例: - Ethernt(1500) - PPPoE(IP over PPP over Ethernet(1500)) --- class: img-right,compact # IPヘッダ <div class=footnote> <small><small> (脚注1) IPSec = IP Security (脚注2) ヘッダを丸暗記する必要はありませんが、 IPアドレスが書いてあることを覚えておいてください </small></small> </div> ![height480px](/slides/network/tcpip/inet_intro/images/ip-header.png) - ヘッダに**送信元と送信先のIPアドレス**(図の上から4行目と5行目)があります - ペイロードにトランスポート層のTCPパケットなどが入ります。 3行目にあるprotocol(数字)がペイロードに入っているパケットの種類を表しています - 1 ... ICMP (後述) - 6 ... TCP - 17 ... UDP - 50 ... ESP (IPSec, VPNで利用) - 51 ... AH (IPSec, 最近使わない) - あとの細かいところは省略します --- class: img-right,compact # IPのエラー対応(ICMP) ![](/slides/network/tcpip/inet_intro/images/ip-unreliable.png) - IPはUDPと同様でエラーに対処しません <br> TCP/IPのエラー対策は (1)**TCP**に頼るか (2)**各ソフトウエアの独自対策**のいづれか - **ICMP (Internet Control Message Protocol)** - インターネット層の各種情報を通知する仕組みとしてICMPがあります - 用途: デバッグ、エラー、おすすめの情報などの通知 - ただし悪用を恐れて**実際の運用ではICMPを許可しないことが多い**ため、 かなり使えないプロトコルです - 通信相手の生死確認程度であれば使えることが**多い** e.g. pingコマンド --- class: img-right,compact # ICMPパケットとICMPヘッダ <div class=footnote> <small><small> (脚注) ヘッダを丸暗記する必要はありません </small></small> </div> ![](/slides/network/tcpip/inet_intro/images/icmp-header.png) ![height240px](/slides/network/tcpip/inet_intro/images/icmp-packet.png) - ICMPパケットを転送するのはIP - IPヘッダのプロトコル番号は1 - IPパケットのペイロードがICMP(右下図) - ICMPヘッダはシンプルに3要素32ビット - typeとcode次第でヘッダの次にオプション要素があることもあります - ICMPペイロードにデータを入れることもあります (typeとcode次第もしくは独自拡張も可) --- class: title, smokescreen, shelf, no-footer # <small>Part 2: ネットワーク構成<br></small> <div class=footnote> <small><small> </small></small> </div> --- class: img-right,compact # ネットワークの基本構成 ![](/slides/network/tcpip/inet_intro/images/intranet.png) - **社内/学内**と**社外/学外**という用語があるのは、 1990年代半ば以降、 図のようなネットワーク構成が基本だからです - この基本構成図を覚えてください <br> (家庭のネットワークは右図の劣化版) - くわしくは春学期後半で取り上げます <br> (具体的に設計してもらいます) <div class=footnote> <small><small> (脚注) 正確には、 ルータの先(インターネット側)に通信事業者(キャリア)の機材 (回線終端装置,ONUなど)があるのですが、 (そこはプロバイダ屋の仕事の範囲外、キャリアさんの仕事範囲なので)省略してます </small></small> </div> --- class: col-2,compact # 用語: ネットワークの基本構成(<small>論理的な区分?or文脈依存?</small>) <div class=footnote> <small><small> (脚注1)物理的には(1)(2)も学内 (脚注2) 90年代なかばからDMZ(=非武装地帯)という用語を使っていますが違和感しかない。 ここ別に平和な場所ではないです。 個人的には<B>区画(frame/compartment)</B>と<B>隔壁(bulkhead)</B>という用語を使いたいところです。 なぜなら、われわれは、<B>やられる前提でサーバを置いて</B>いて、 非常時には切り離す場所(<B>ダメージコントロール</B>の対象)だからです </small></small> </div> |場所| 用語|備考| |----|-----|----------------| |学外| WAN | いわゆるインターネットですが(2)より上は世界中と通信できる領域 | |学内| LAN | イントラネットと呼ばれることも | |DMZ | DMZ | インターネット向けサーバなどを置く場所。学外からの通信は厳しく制限しつつ、学内むけサービスも行う | |(1) | | ルータ(+通信事業者との接続に必要な装置)でインターネットに接続| |(2) | | ファイアウォールという装置を置きます(業務用,一般家庭には無し)| ![](/slides/network/tcpip/inet_intro/images/term-intranet-lan.png) --- class: img-right,compact # 用語: ネットワークの基本構成 (セグメント) <div class=footnote> <small><small> (脚注1) セグメントは連続したIPアドレス帯。 例: 192.168.10.0〜192.168.10.255が使えるセグメント </small></small> </div> <!-- さしかえ --> ![](/slides/network/tcpip/inet_intro/images/term-intranet-segment.png) - **セグメント**(segment) - ネットワークの断片、範囲 - 正しくはnetwork segmentですが... - ネットワークも同義語(ですがnetworkも曖昧な用語なので) - **ブロードキャスト**(後述)とセグメント - **一斉送信可**=**ブロードキャストが届く範囲**がセグメント ([Ethernet](https://lectures.fml.org/slides/network/tcpip/ni_ethernet/)で後述) - ネットワーク機器の区別 - **ルータ**は異なるセグメント間の接続 - **スイッチ**は本来**同一セグメント**をつなぐ機材 (学内はスイッチが基本、詳細は春学期後半の設計編へ) --- class: img-right,compact # 用語: ネットワークの基本構成 (学内ではVLANを利用) <div class=footnote> <small><small> (脚注1) VLANを使うと一つのスイッチから複数のセグメントが伸びます (論理的な構成図と物理的な構成図が異なります) <br> (脚注2) 上の図は論理構成図です </small></small> </div> <!-- さしかえ --> ![](/slides/network/tcpip/inet_intro/images/term-intranet-vlan.png) - 大昔は、**一つの部屋**の中にあるPC群が一つの**同じセグメント**に接続されていると思えばよかったのですが、1990年代以降のイントラネットではセグメントを論理的に延長する**VLAN(Virtual LAN)**という技術を使うことが普通です - PC教室のセグメントは、図のように、建物すら越えた複数の部屋にまたがっています。 PC教室セグメントのPCは、すべて172.23.x.yというIPアドレスです - とりあえずPCの引越しは楽ですね... --- class: col-2,compact # ネットワークの基本構成とIPアドレス <div class=footnote> <small><small> (脚注) AWSはglobal IP (addres)のことをPublic IPと称しています。 まぁ普通に英語なので意味は通じますよね? </small></small> </div> |種類 |説明 | |------------------------|----------------------| | グローバルアドレス |住所としての意味があるIPアドレスで、ホストを世界で一意に識別するための数字です。(2)より上側で利用します| | プライベートアドレス |ユーザが自由に**利用してよい**IPアドレスで、(2)より下側つまり社内/学内/家庭内ネットワークで使います。次の3つの範囲が利用可能(アドレスの表記法は後述)| | |10.0.0.0/8 | | |172.16.0.0/12 | | |192.168.0.0/16 | ![](/slides/network/tcpip/inet_intro/images/term-intranet-ipaddr.png) --- class: title, smokescreen, shelf, no-footer # <small>Part 3: IPアドレス<br></small> <div class=footnote> <small><small> </small></small> </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> --- 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アドレスはチャンネルにあたります。 そのチャンネルに参加しているホストすべてに通信が届きます --- 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> --- name: part4-nat class: title, smokescreen, shelf, no-footer # <small>Part 4: NAT<br>Network Address Translation</small> <div class=footnote> <small><small> インターネット層 通常版: <A HREF="/slides/network/tcpip/inet_intro/"> [概要]</A>、 <A HREF="/slides/network/tcpip/inet_network/">[ネットワーク]</A>、 <A HREF="/slides/network/tcpip/inet_ipaddr/"> [IPアドレス]</A>、 <A HREF="/slides/network/tcpip/inet_nat/"> [NAT]</A>、 <A HREF="/slides/network/tcpip/inet_routing/">[ルーティング]</A> and <A HREF="https://www.youtube.com/playlist?list=PLS2cEmI21XYKUWdzZyvjE3mO0YuNIu0lQ"> [動画再生リスト] </A> </small></small> </div> --- class: col-2,compact # IPv4延命策としてのプライベートアドレスとNAT <div class=footnote> <small><small> (脚注) まずIP masqueradeという機能がLinuxカーネルに登場し、 のちにNAPTと呼ぶようにしたため名称が二つあります。 設定にnatではなくmasqueradeという名称を使うことがあるため、 どの用語も覚えること </small></small> </div> <small> - IPv6の開発開始と同時に**IPv4延命策としてプライベートアドレスとNAT**を導入 - 図の(2)でNATを行っていて、 (2)より上はグローバルアドレス、 (2)より下はプライベートアドレス (色がついているところはグローバルIP) |用語 | | |-------------|----------------------------------| |**NAT** |Network Address Translation | |**NAPT** |Network Address Port Translation | |**IPマスカレード**|NAPTと同じ意味| ![](/slides/network/tcpip/inet_intro/images/term-intranet-ipaddr.png) </small> --- class: img-right,compact # NAT 行きの通信 <div class=footnote> <small><small> (脚注) DST = destination, SRC = source </small></small> </div> ![](/slides/network/tcpip/inet_nat/images/napt.png) <small> - 例: 学内のホストからWWWサーバ(IPは182.48.54.220)へのアクセスを考えます - 図(2)の機器のインターネット側インターフェイスのIPアドレスは210.128.52.4です - 図(2)のファイアウォールを通過時、IPヘッダとTCPヘッダを書き換えます - 送信先(DST)のIPアドレスとポートは変えません。 送信元(SRC)のIPアドレスを210.128.52.4へ書き換え、 送信元ポート番号を適当な番号(注: 通信ごとに異なる番号)へ書き換えます - この書換えルールを機器は覚えておきます - WWWサーバには送信元(SRC IP)がグローバルIPアドレス=210.128.52.4に見えるので普通に通信できます </small> --- class: img-right,compact # NAT 返りの通信 ![](/slides/network/tcpip/inet_nat/images/napt-reply.png) <small> - 返りのパケットは、 182.48.54.220(送信元=SRC)から210.128.52.4(送信先=DST)へ送られてきます。 当然ポート番号はHTTPコネクションごとに異なります - 図(2)の機器は各HTTPコネクションの書き換えルールを覚えているので、 IPアドレスとポート番号の組み合わせを見ながらIPとTCPヘッダを逆に書き換えます - 書き換え後、学内側へ送信します - こうすれば、プライベートアドレスでもインターネットのサーバと通信ができるわけです </small> --- class: col-2,compact # NAT メリット <div class=footnote> <small><small> (脚注1) 16ビットの使い方にも流儀があり、 実際には16ビットすべてをNAT変換に利用していません <A HREF=https://www.nic.ad.jp/ja/basics/terms/port-number.html> ->JPNICの解説 </A> <br> (脚注2) アドレスとポートを書き換えてゴマかす小手先芸を、 (NAPTも含めて)総称でNATと呼ぶことが普通ですが、 本来のNATはIPアドレスだけを変換する規格のことです <br> (脚注3) なおIPv6ではNATを使いません。あくまでもNATはIPv4の延命策で邪道な技です </small></small> </div> - 前頁で説明した例では、アドレスとポート番号の両方を変換するので、 **NAPT**もしくは**IPマスカレード**と呼ばれます。 - 通信(例: TCPコネクション、UDPパケット)ごとに、 送信元ポート番号(SRC PORT)を変えていくことで、 ポート番号の大きさ、 つまり16ビット(65536個)分の書き換えルールが(最大)使えます (理論上は使えるという話です;脚注1も参照) <wbr> - 例: 大学のユーザ数は1000人強ですが、 短時間のTCPコネクションも多いため、 1つのグローバルIPで(つまりSRCポート番号変換だけで)十分さばけています - 16ビット以上に書き換えルールを増やすには、 書き換え先のIPアドレス候補も追加します。 例: SRC IPとして210.128.52.4と210.128.52.5の2つを使えば、 最大で約13万とおりの変換が可能となります --- class: col-2,compact # NAT デメリット - IPアドレスに住所の意味が無くなります - ホストにつけるプライベートアドレスは、 世界で一意にホストを識別する数字になっていないので、 正しい意味での住所(ユニキャストアドレス)になっていません <wbr> - 本来のEND-TO-END通信ではないです - 必ず途中にNATをする機材が挟まります。 この機材のせいで、通信がうまくいかないことがあります --- class: col-2,compact # NAT デメリット <div class=footnote> <small><small> </small></small> </div> <small> - 自由な双方向通信が出来ません - 本来のEND-TO-END通信なら特別な制限なく出来るはずです - たとえばIP電話で受信する場合を考えます。 インターネット側から来た(いわば一見さんの)初パケットに対しては、 NATの書き換えルールが分からないので変換できません - 右図は返りのNATの説明(再掲): <br> あくまでも、まず最初に学内から学外へ出て行く通信があり、 そのときに書換えルールが決まります。 そのあとはじめて逆変換も出来るようになるわけです </small> ![](/slides/network/tcpip/inet_nat/images/napt-reply.png) --- class: title, smokescreen, shelf, no-footer # <small>Part 5: ルーティング<br></small> <div class=footnote> <small><small> </small></small> </div> --- class: center,compact # たとえ話: 郵便の配送におけるルーティング <div class=footnote> <small><small> (脚注) くわしくは次頁 </small></small> </div> ![height560px](/slides/network/tcpip/inet_routing/images/routing-image.png) --- class: compact # たとえ話: 郵便の配送におけるルーティング <div class=footnote> <small><small> (脚注) 本質は、これだけです。 現実的な設定は難しいですが、 ルーティング設定はバックボーン担当の醍醐味 </small></small> </div> ![height320px](/slides/network/tcpip/inet_routing/images/routing-image.png) 1. 郵便物を投函すると、郵便局員さんが収集して最寄りの郵便局に集めます 1. 飛行場へ輸送しましたが、今日は天気が悪くて飛行機が飛びません 1. そこで鉄道輸送に切り替えます。 これが**動的経路選択(dynamic routing)** --- class: img-right,compact # 二種類のルーティング(経路選択) <div class=footnote> <small><small> (脚注) 今回は大域的な動的経路制御つまりインターネット側がメインテーマです。 インターネットの醍醐味 </small></small> </div> ![図](/slides/network/tcpip/inet_routing/images/routing-overview.png) - **動的経路制御** (**dynamic routing**) - ルータ群が**自律**的に考え経路変更 - 図のインターネット部分 - **大域的な経路制御**はdynamic - **静的経路制御** (**static routing**) - 設定されたとおりに動作 <br> 障害時は人間が対応 - 大学敷地内はstatic - **大学敷地内は学外(インターネット側)も学内もstatic** (注:インターネットへの出口が一つではdynamic routingする理由も手段もない) --- class: col-2,compact # 図に登場する機器の説明 <div class=footnote> <small><small> (脚注1) L3スイッチとルータは似ていますが、 ルーティング機能(頭のよさ)に力点がある機材がルータ、 スイッチング機能(パケット転送能力)に力点がある機材がL3スイッチ (だと思う) (脚注2) cs,ds,asはCisco用語 (だと思う) </small></small> </div> <small> |機材|説明| |--------------------------|---------------------------------------| |ルータ | インターネットへの経路制御担当<br>この構成では仕事のしがい無し | |スイッチ(cs) | **core switch**<br>**L3スイッチ**<br>VLAN間ルーティングを行う | |スイッチ(ds) | **distribution switch**<br>建物の出口を担当する**L2スイッチ**<br>建物内のアクセススイッチ(as)群<br>への接続を集約する役目<br>coreまでVLANを中継 | |スイッチ(as) | **access switch (edge switch)**<br>末端に置く**L2スイッチ**<br>PCや無線LAN機器などをつなぐ先 | </small> <wbr> ![図](/slides/network/tcpip/inet_routing/images/routing-overview.png) --- class: img-right,compact # 学内ルーティング(static routing) <div class=footnote> <small><small> (脚注1) 用語「学内」が曖昧です。 実際、図の大枠の中は<B>物理的に学内</B>です。 でも、ネットワーク的(or 論理的)には、 ファイアウォールの上(インターネット)側を<B>学外</B>と言うことが多いと思います。 このへん普段から文脈とあうんの呼吸で互いに理解している感じです <br> (脚注2) つまり異なるセグメント間の通信は一度coreまで行って戻ってきます </small></small> </div> ![図](/slides/network/tcpip/inet_routing/images/routing-overview.png) <small> - 最初に設定したまま動作しつづけます - **学内**側:**そうそう学内の構成は変わらない**ので、これで問題ありません - 学外側:インターネット接続回線が一つなので**敷地内の学外側もstatic**です (注:複数のインターネット接続回線があるならdynamicを検討します) - **障害時は人間が対応**する必要あり - coreは**VLAN間ルーティング**をします - 異なるセグメント間(例:PC教室〜研究室)や、 学内セグメントとインターネット側とのパケットのやりとり <br> (学内 -> core -> ファイアウォール -> インターネット,DMZ) </small> --- class: img-right,compact # 学外(敷地内インターネット側)ルーティング <div class=footnote> <small><small> (脚注) さて、次頁ではISP内のdynamic routing(Internetの正体)へ進むことにしましょう </small></small> </div> ![図](/slides/network/tcpip/inet_routing/images/routing-overview.png) <small> - ファイアウォール〜ルータ〜ISP - ファイアウォール〜ルータ <br> (ISP接続ルータ)間はstatic - ISP接続ルータ〜ISP間もstatic <br> (この図ではdynamicの必要が無い) - 図中一番上のインターネットの**ごく一部**がISP(大学の契約先ISP)に当たります </small> --- class: col-2,compact # インターネットは数万のプロバイダの集合体です <iframe width="480" height="270" src="https://www.youtube.com/embed/DdaElt6oP6w?rel=0" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> <br> "The Internet: 1997 - 2021 (1m)" by Barret Lyon, CC-BY 3.0 ルーティング情報をもとに可視化したもの <br> (生物的なイメージ?生命の樹?) ![height480px](/slides/network/tcpip/inet_routing/images/1069646562.LGL.2D.4000x4000.png) <br> The Internet 2003 by Barret Lyon, CC BY 4.0 --- class: img-right,compact # プロバイダ間の通信 <div class=footnote> <small><small> (脚注1) 図の詳細は気にしなくてOKです。 詳細は、通常版の <A HREF="/slides/network/tcpip/inet_routing/">ルーティング</A> を参照してください </small></small> </div> ![height320px](/slides/network/tcpip/inet_routing/images/routing-isp-and-ix.png) <small> - ひとつのプロバイダ=インターネットではありません。 **数万のプロバイダの総体がインターネット**です。 そのため、**プロバイダ同士で通信のやりとりが必要**になります - だからといって、 プロバイダが互いに総あたりで接続しあうといった無茶なことはしいせん:-) - **IX(Internet eXchange)**という場所が世界各地にあり、 そこでプロバイダが相互に接続しあいます </small>