name: index class: compact # コンピュータネットワーク 第05回 目次/おしながき <div class=footnote> <small><small> </small></small> </div> <small> 1. ネットワークのEL第5回 1. 連絡: 06/01 (第7回)は H101 に集まってください。大学でグループワークをします - 学内ネットワークのミニチュアを実際に(物理的に)作り、 ルーティングとはなにか?を体験します - 事前に、この[再生リスト](https://www.youtube.com/playlist?list=PLS2cEmI21XYJlP3N-J4bOqJHRTdJPX08w)の2[「学内ネットワークのイメージ」](https://youtu.be/-J-dGm7w6Zs?list=PLS2cEmI21XYJlP3N-J4bOqJHRTdJPX08w)を見ておいてください 1. 解説: インターネット層のハイライト(2) 1. 実写: せっかくなので実物で解説しようじゃないか! - やはり物理の実感がないのがいけてないと思うのですよ 1. 解説: 第4回の答え合わせ(ip address編) 1. 解説: IPコマンドでルーティング情報を調べる(CLI) 1. 演習 - 先週のワークシートに追記してください <br> (見つからない人は第4回のところからダウンロードしてください) - いちおうレポートボックスに出してください(出席代わり) 1. 出席パスワードも入れる 1. 質問コーナー </small> --- class: img-right,compact # 解説: インターネット層のハイライト(2) <div class=footnote> <small><small> </small></small> </div> ![height280px](/slides/network/tcpip/inet_nat/images/napt.png) ![height280px](/slides/network/tcpip/inet_routing/images/routing-image.png) <small> - NAT - 普通の通信では、グローバルIPアドレス(=住所)を使います。 プライベートIPのときは? - **IPヘッダとTCP/UDPヘッダを書き換えてフェイク**することで、 プライベートIPアドレスでも普通の通信ができている錯覚を演出 - ルーティング - **右図(下)が理屈のすべて**です。 あとはルーティングプロトコルの各論がつづくだけ - たいていはstaticなので、右図の動作すらしていません。 そして **dynamic routingこそがインターネットらしい**ところなのですが、 そこは省略しているので orz ;-) </small> --- class: compact # <small>実写: ネットワークインターフェイス(IPアドレスをつける場所)</small> <div class=footnote> <small><small> </small></small> </div> ![height320px](../../supplements/ethernet/images/r_IMG_20230511_183253_509.jpg) ![height320px](../../supplements/ethernet/images/r_IMG_20230511_183246_427.jpg) ![height320px](../../supplements/ethernet/images/r_IMG_20230511_183319_905.jpg) <small> PCの裏側にある少し凸型ぽい差し込み口がイーサネット、紫色の口の左側。 これが**ネットワークインターフェイス**になります。 この紫色の差し込み口は有線のPS/2キーボードです。 わざわざ昔のイーサネットボードを現代のPCのとなりに置いて写真をとっています。 むかしは専用ボードがあったけれど、 いまは小さなチップなのでフタを開けてもよくわかりません。 そういうわけで、 わざわざ昔のハードウエアが登場:-) </small> --- class: img-right,compact # <small>第4回の解答編 - IPアドレスは一体どこについているのか?</small> <div class=footnote> <small><small> (脚注) AWSが実装を教えてくれないので、 Public IPについては少し確信がないんですけど、 この図では解答=(2)一択です </small></small> </div> ![](/slides/network/aux/images/worksheet-net-04.png) <small> - (前ページのように)PCにはイーサネットの口があり、そこにIPアドレスをつけます。 無線LANの場合はデバイスが見えませんが、 PCの中にある無線LANチップにIPアドレスがついている気持ち - 問: **EC2のIPは? 答:(4)** - www.pyを動かすEC2についている(4)が妥当 - EC2は論理的なPCですが、その論理的なPCのイーサネットの口に相当するので(4)です - 問: **Public IPはどこ?** 答: **(2)**でしょうね - みなさん気づいていると思いますが、 この**壁の中(つまりVPC内)はプライベートIPアドレス**です (EC2は172.31.x.y/20とかでしょ?) - つまり**門(図(2,3))ではNATが必要**です - NATの説明とおなじで、図の(2)にPublic IPがついていると考えるのが妥当です </small> --- class: img-right,compact # <small>第4回の解答ではなく脱線編 - AWSハードウエアの実体は?</small> <div class=footnote> <small><small> <a href="https://commons.wikimedia.org/wiki/File:Virginia_in_United_States.svg">TUBS</a>, <a href="https://creativecommons.org/licenses/by-sa/3.0">CC BY-SA 3.0</a>, via Wikimedia Commons </small></small> </div> ![height240px](../../supplements/ethernet/images/r_IMG_20230511_183246_427.jpg) ![height240px](../../aux/images/256px-Virginia_in_United_States.svg.png) <small> - こんな安物(右図)ではありませんが、 AWSにも実体がどこかにあります - AWS Academyで使っているサーバは、 us-east-1 と呼ばれているデータセンターにあります。 アメリカ東海岸のバージニア州のどこかです - アメリカの首都ワシントンD.C.の南西側がバージニア州 - 北海道から約2万キロの彼方 - キーボードをうつたびに、そのパケットが(往復で)世界一周 (だから少しモッサリしていますよね?) </small> --- class: compact # 演習の準備: ipコマンドについて少し(ほぼ再掲) <div class=footnote> <small><small> </small></small> </div> <small> - Linuxではネットワーク管理のための`ip`コマンドというものがあります - 書式は階層構造のあるコマンドで、 コマンドの引数その1が対象(原文はOBJECT)で、 address(IPアドレス)やroute(次回やるルーティング)などを指定します。 引数その2がコマンドで、 各対象(OBJECT)ごとのコマンド体系が定義されています (詳細は操作時にヘルプかマニュアルを確認する)。 ``` [書式] ip [オプション] 対象 コマンド 引数 [実行例] $ ip address $ ip route ``` - ちなみに `ip address`は前回つかいました、 `ip route`を今回つかいます。 --- class: compact # 実行例: ip route コマンド <div class=footnote> <small><small> </small></small> </div> <small> ``` $ ip route ``` - `ip route`を実行すれば充分です。 現在のPCのルーティング情報を表示します(デフォルトの動作) ``` [EC2での実行例] $ ip route default via 172.31.80.1 dev eth0 172.31.80.0/20 dev eth0 proto kernel scope link src 172.31.83.21 ``` - 次のように読みます(次頁以降へすすめ) </small> --- class: compact # <small>ip routeコマンドの表示(1行目) デフォルトルート</small> <div class=footnote> <small><small> (脚注) デバイス名は、 パケットを出力するネットワークインターフェイスを意味しています (ここは確認のため,debug情報的) </small></small> </div> <small> ``` default via 172.31.80.1 dev eth0 [読み方] "宛先" via ルータのIPアドレス dev "デバイス名" ``` - "宛先"がdefaultという名前のルール(この行)は**デフォルトルート**と呼ばれています。 これは2行目以降にマッチするルールが無い場合に使うルール。 最後の砦。 わからないときに丸投げする先(w) - おおまかに言えば「(EC2の場合)VPCの外へ行く場合」に使われているルール - パケットを送る先のルータIP(next hop)が3つ目(viaの右)の`172.31.80.1`という意味 ``` [例: パケットが出て行く様子] EC2 -> default route (172.31.80.1) -> (詳細不明) ``` - EC2にはdefault routeの先の詳細は見えてませんが...いつかインターネットへ出て行けるはずです:-) - ふつう、"(詳細不明)"のところでは、目的地まで、たくさんのルータを通過していきます </small> --- class: compact # <small>ip routeコマンドの表示(2行目) directly connected</small> <div class=footnote> <small><small> (脚注) これ以外にもstatic routeという 「ある"宛先"に別のルータBを経由して行ける」ルールもあります。 もっと複雑なネットワークでは登場してきます。 </small></small> </div> <small> ``` 172.31.80.0/20 dev eth0 proto kernel scope link src 172.31.83.21 [読み方] "宛先" dev "デバイス名" proto kernel scope link src "IPアドレス" ``` - IPパケットの目的地(destination)が、このルールの"宛先"に含まれている時、このルールを使います - ここはVPCのネットワークアドレスです。 つまりVPC内の別のEC2やAWSサービスが目的地 - directly connectedなどと呼ばれています。 実際EC2はVPCに直接つながっているので、ルーティングはしません(ルータは介在しません) - src文字どおりソースIPアドレスの部分はパケットを送信するPCです。 当然EC2自身のIPアドレスになります。 当たり前なので深く意識しないで大丈夫でしょう </small> --- class: img-right,compact # <small>ip routeコマンドの表示(2行目) directly connected</small> <div class=footnote> <small><small> (脚注) 同じIPアドレス帯の中での通信はフォワーディング(forwarding)と呼びます。 次回に登場するL2スイッチはフォワーディング専門ですが、 L3スイッチやルータはフォワーディングとルーティング両方をする機材です </small></small> </div> ![](/slides/network/aux/images/worksheet-net-04.png) <small> - 右図を例にとれば、EC2同士の通信(つまり(4)と(7)の間の通信)は、 VPC直結なので、directly connectedのケースです - IPパケットはVPC(172.31.80.0/20)のネットワークの中だけを行き来します - ルーティングはナシ(ルータを経由しません) - まとめ: ルータを通過する必要があるのは**異なるIPアドレス間の通信**です。 directly connectedの場合は、同じIPアドレス帯の中での通信になっています </small> --- class: compact,img-right # <small>演習: 各自のAWS EC2のルーティングを調べて書きこんでみる</small> <div class=footnote> <small><small> このあとは質問コーナー枠です。 流れ解散してOK </small></small> </div> ![](../images/worksheet-net-04.png) <small> 1. 各自のEC2を起動してください 1. 自分のEC2のデフォルトルートを調べ、 <br> ワークシートに書きこんでください <br> (図中の、どの数字に相当するでしょうか?) 1. IPがglobal IPなのかprivate IPなのか?も記入 1. レポートボックスに提出(出席がわり) </small>