class: title, smokescreen, shelf, no-footer # コンピュータネットワーク(2024-)<br><small>第06回 ルーティング</small> <div class=footnote> <small><small> 3年、春学期、必修; 旧「コンピュータネットワーク」(-2023) </small></small> </div> --- class: compact, img-right # LANの構成を理解する、目に見えない設定(3) <div class=footnote> <small><small> (脚注) 210.128.53.193 は大学にある本科目の演習環境(図(下))の入口 </small></small> </div> ![height240px](../images/tracepath-oregon-to-chitose.png) ![height240px](../images/ex-env/whole-site.png) <small> - インターネットは自律的な分散システムで、 WANとLANでは挙動が異なります - 第2回の`tracepath`は、WANの上を、どのようにデータが流れていくかを可視化しているツール ``` $ tracepath -n 210.128.53.193 1: 172.31.32.1 0.082ms ... 略 ... 7: 206.81.80.237 7.548ms 8: 58.138.88.225 124.263ms ... 12: 210.128.52.7 138.867ms 13: 210.128.53.193 ``` </small> --- class: compact # 用語集 <div class=footnote> <small><small> </small></small> </div> - LAN(発音:らん) ... Local Area Network - WANの反対語 - パケット ... packet - デジタルデータのかたまり(もじどおり「packet = 小包」) - 経路制御、ルーティング ... routing - 経路の選択肢がある場合に、ルールに沿って、いずれかの経路へ通信を曲げる - 静的経路制御 ... static routing - 管理者が設定したルールにそって経路制御すること - おもにLANで使われる設定 - 動的経路制御 ... dynamic routing - 各ネットワーク機器が自律的に考えて経路制御すること - おもにWANで使われる設定 <div class=review-gw-begin></div> --- class: compact,img-right # パケット交換方式 <div class=footnote> <small><small> (脚注) 古典的なアナログ電話は全然ことなり、巨大な糸電話みたいなもので、 電話をしている人間どうしの間に、実際に(物理的に)電話線(銅線)が接続している状態を作っていました。 これを回線交換方式と呼んでいます </small></small> </div> ![height180px](../images/packets-transfer.png) ![height180px](/slides/network/tcpip/intro/images/denpyou_haitatsu.png) ![height180px](../images/souko_shiwake.png) ![height180px](../images/takuhai_truck_woman_nimotsu.png) <small> - デジタルデータの転送は、ある程度の大きさに切って、小包や宅急便のように送る。 <B>大域転送のプロトコルがIP、つかう住所がIPアドレス</B> - 大きいデータは多くの小包に分けられ配送先でつなぎ合わせてデータを再現する(右図(上)) - 現実の伝票と同じく、デジタルデータでも、<B>送り主と宛先の住所、誰から誰、中身について書く必要がある</B>。 デジタルデータの伝票部分つまり制御情報を書く部分を<B>ヘッダ</B>と呼ぶ。 <small> - IPパケットのヘッダには、 IPアドレス(210.128.53.193)やポート番号(WWWサーバの80)、中身(TCP)などの情報が書かれている </small> </small> --- class: compact,img-right # パケットが転送されていく様子は現実の郵便そっくり <div class=footnote> <small><small> </small></small> </div> ![height240px](../images/tracepath-oregon-to-chitose.png) ![height240px](../images/takuhai_truck_woman_nimotsu.png) ![height240px](../images/souko_shiwake.png) <small> - IPパケットの転送は現実の郵便や宅急便そっくり - 小包ごとに配送 - 途中に中継する拠点がある - 伝票の配送は宛先をみながら行う - サイバースペース内でパケットを中継していく様子が、 第2回に体験した`tracepath`の表示 ``` $ tracepath -n 210.128.53.193 1: 172.31.32.1 0.082ms ... 略 ... 7: 206.81.80.237 7.548ms 8: 58.138.88.225 124.263ms ... 12: 210.128.52.7 138.867ms 13: 210.128.53.193 ``` </small> --- class: compact,img-right # 経路制御(ルーティング)とは ![height280px](/slides/network/tcpip/inet_routing/images/routing-image.png) ![height180px](../images/packets-core-routing.png) <small> - `tracepath`は結果だけなので経路が一直線に見えますが実際には選択肢が複数ありえます。 この説明も現実の郵便そっくりです(右図(上)) <small> 1. 札幌から東京行の小包(群)を送り出した 1. 千歳まで持ってきた 1. ふだんは飛行機に載せる 1. 天候が悪くて、今日は飛行機が飛ばない 1. JRに載せかえて送る </small> - 異なるLANをつなぐ機器が行う「どちらの経路を選ぶか?」がルーティング(経路制御)です <small> - 右図(下)は、`インターネット -> router -> firewall(fw)`と来て、 fwから先の経路が2つあるケースです。 ヘッダをみるとportal宛と分かるので、 学内側ではなく、portal側へパケットを転送しています </small> </small> --- class: compact,img-right # 学内の経路制御設計は静的で十分だが大域的には動的 ![height280px](/slides/network/tcpip/inet_routing/images/routing-image.png) ![height180px](../images/packets-core-routing.png) <small> - 右図(上)(下)は事情が異なります <br> 右図(上)は同じ目的地(例:東京)行きの選択肢が複数ある場合、 右図(下)の学内は選択肢なしです(ある目的地までの経路は一つしかない) - 右図(上)の場合は、 自動的に障害を回避するために、各機器が自分の判断で宛先を考えます。 これが動的経路制御です。 大域的なインターネットは動的経路制御で動作しています - 右図(下)の場合は、経路の選択自体がありません。易しく安価なLAN設計。 管理者が事前に設定したルールに沿った静的経路制御で十分です </small> <div class=review-gw-end></div> --- class: title, smokescreen, shelf, no-footer # 本日の演習 --- class: compact # おしながき <div class=footnote> <small><small> </small></small> </div> <small> - 来週はグループワークなのでH101に集合 - 講義編 - EL - 解説 - 演習編 "ルーティング" 1. AWS Academy (vocareum)にログイン 1. VocareumのターミナルからSSHで末端のPCにログインして調査してもらいます 1. まずは例題を一緒にやってみます 1. [必須課題] ルーティングの解説を書き、ポータルのレポート機能で提出してください - 図もあると良いですね - 使う道具はご自由に。最終的にPDFで出してくれればよいです - 本日の目標 - ルーティングを実感すること - ルーティングの説明が出来ること </small> --- class: compact # 用語: LANの様子を調べるための定番コマンド <div class=footnote> <small><small> </small></small> </div> - ping (発音:ぴん) (再掲) - tracepath (発音:とれーすぱす) (再掲) - ip (発音:あいぴー) <small> - 目的: Linuxのネットワーク設定情報を表示する - `ip route`(発音:あいぴーるーと)コマンドはOSに設定されたルーティング情報を表示する </small> --- class: compact # 例題: ファイアウォールをip routeで調べる(1) <div class=footnote> <small><small> </small></small> </div> <small> - (一緒にやります) 1. ファイアウォール(210.128.53.204)にログインしてください 1. `ip route`を実行 1. 先週までに作ったネットワークアドレスの表と見くらべてください ``` $ ip route default via 210.128.53.201 dev enp3s8 onlink 210.128.53.200/29 dev enp3s8 proto kernel scope link src 210.128.53.204 210.128.53.208/29 dev enp1s0 proto kernel scope link src 210.128.53.209 210.128.53.216/29 via 210.128.53.212 dev enp1s0 210.128.53.224/29 via 210.128.53.212 dev enp1s0 210.128.53.232/29 via 210.128.53.212 dev enp1s0 210.128.53.248/29 dev enp2s0 proto kernel scope link src 210.128.53.249 ``` </small> --- class: compact # 例題: ファイアウォールをip routeで調べる(2a) <div class=footnote> <small><small> (脚注1) Cisco用語では<B>directly connected</B>なルーティングです <br> (脚注2) dev右のenp3s8といった文字列は、 OSがネットワークインターフェイス(ケーブルを挿す口)を識別するための名前(デバイス名) <br> OSのネットワーク設定をするなら必要ですが、本演習では設定をしないので関係ありません </small></small> </div> <small> - ip routeの出力で「`via`がない行」を先に説明します - ファイアウォールにはケーブルが3本つまり3つのLANがあるので合計3行(先週の写真を参照) ``` 210.128.53.200/29 dev enp3s8 proto kernel scope link src 210.128.53.204 210.128.53.208/29 dev enp1s0 proto kernel scope link src 210.128.53.209 210.128.53.248/29 dev enp2s0 proto kernel scope link src 210.128.53.249 ``` - この3つは、ファイアウォールに直接つながっているLANです。隣接しているLAN - 先週までに各自が作成したアドレス表とみくらべてください - 順に「LAN(外)」「LAN(内1)」「LAN(DMZ)」と対応していることがわかるはずです - `src`の右側にあるIPが図の(C)(E)(D)に対応していることを確認してください </small> --- class: compact,img-right # 例題: ファイアウォールをip routeで調べる(2b) <div class=footnote> <small><small> </small></small> </div> ![](/slides/skill-network/images/net-ex-lan-survey-02.png) <small> - 210.128.53.200/29, 210.128.53.208/29, 210.128.53.248/29 の3つのLANは、ファイアウォールに直接つながっているLANです。隣接LAN - 順に「LAN(外)」「LAN(内1)」「LAN(DMZ)」と対応していることがわかるはずです - `src`の右側にあるIPが図の(C)(E)(D)に対応していることを確認してください </small> --- class: compact # 例題: ファイアウォールをip routeで調べる(3a) <div class=footnote> <small><small> </small></small> </div> <small> - `via`がついている行について(default以外) ``` default via 210.128.53.201 dev enp3s8 onlink 210.128.53.216/29 via 210.128.53.212 dev enp1s0 210.128.53.224/29 via 210.128.53.212 dev enp1s0 210.128.53.232/29 via 210.128.53.212 dev enp1s0 ``` - ファイアウォールと直接つながっていないLAN(内2,3,4)の設定です - 210.128.53.216/29, 210.128.53.224/29, 210.128.53.232/29が、 LAN(内2), LAN(内3), LAN(内4)と対応していることを、表と見くらべて確認してください - `via 210.128.53.212`とは何か?というと、コアスイッチの(G)のアドレスです。 「(G)を経由(via)LAN(内2,3,4)へ到達できる」と教えられていることがわかります </small> --- class: compact,img-right # 例題: ファイアウォールをip routeで調べる(3b) <div class=footnote> <small><small> </small></small> </div> ![](/slides/skill-network/images/net-ex-lan-survey-02.png) <small> - 210.128.53.216/29, 210.128.53.224/29, 210.128.53.232/29が、 LAN(内2), LAN(内3), LAN(内4)と対応しています - `via 210.128.53.212`とは何か?というと、コアスイッチの(G)のアドレスです。 - 「<B>(G)経由(via)でLAN(内2,3,4)へ到達できる</B>」と教えられていることがわかります </small> --- class: compact # 例題: ファイアウォールをip routeで調べる(4) <div class=footnote> <small><small> (脚注1) ひらたく言うと「(自分が困ったときに)丸投げする先」がデフォルトルート(default route)です;-) <br> (脚注2) インターネットでは大域的な最適化はされていません。 複雑なシステムをガチガチに作ると、逆に動かないです </small></small> </div> <small> - `via`がついている行について(default) ``` default via 210.128.53.201 dev enp3s8 onlink ``` - via 210.128.53.201は図の(B)、つまりルータです - インターネット方向にある機材 - つまり、このLAN群の出口 - <B>`default`は「自分が知らないもの」全部を意味します</B> - 自分が知らないIPアドレスの機器は、きっとインターネットのどこかにあるはずです(たぶん) - <B>とりあえずルータへパケットを転送し、あとの処理はルータに任せます</B> - 本当に目的地に到達できるの?かは、やってみるまでわかりません - いい加減といえば、いい加減ですけどね:-)<B>このくらい緩い設計が大事</B>なのです </small> --- class: compact,img-right # 必須課題 <div class=footnote> <small><small> </small></small> </div> ![](/slides/skill-network/images/net-ex-lan-survey-02.png) <small> - 末端のPC(210.128.53.237)からの経路を説明してください。ポータルのレポートボックスへ提出 1. そこからニセポータル(210.128.53.254)までのルーティングを調べてください - まずtracepathをしてみる - 途中にある機器(必要な全機器)について、 - それぞれの機器でip routeを表示し - 210.128.53.254への経路を選ぶ動作を説明してください 2. 本物のポータル(210.128.52.45)へは、どのようなルーティングになるでしょうか? - 途中までは問1と同じなので、問1との差分だけ解説してくれればよいです </small>