2016年8月30日火曜日

ネットワーク機器

ネットワーク機器の実験手引きを作るため,実際にスイッチングハブを使ってポートがMACアドレスを記憶しているかどうかの実験を行っていたらいろいろな奇妙な現象に遭遇しハマってしまった。

実験1

  1. パソコンAとBをスイッチングハブを介して接続
  2. AからBへpingを送る
  3. BのLANケーブルをスイッチングハブの別にポートに付け替える
  4. AからBへpingを送る
この実験の結果,AからBへpingが送れなかった。ポートがBのMACアドレスを覚えておいたのかと思いきや,別のパソコンCとDの組み合わせで同じことを行うと,LANケーブルの接続ポートを変えても問題なくpingは通った。いったいこれはどうしたことか?

NLA (Networl Location Awareness)

WindowsにはNLAなるものがあり,ネットワークの構成に変更を検知すると,その情報がファイアウォールに通知され,最適なプロファイルが動的に選択される。

ファイアウォールのプロファイル

ファイアウォールのプロファイルにはドメイン,プライベート,パブリックの3つあり,この順で厳しくなる。 今回の現象は,pingの受信をプライベートとパブリックで設定が違っていたことに起因する。具体的には,パブリックプロファイルがアクティブなとき,受信の規則でパブリックのecho要求が「いいえ」に設定されていたらpingは通らない(逆に,プライベートプロファイルがアクティブなとき,受信の規則でプライベートのecho要求が「いいえ」だとpingは通らない)。今回は,まさにこの現象が起きていた。

アクティブなプロファイルが変わる現象

ただ,奇妙なことにアクティブなネットワークのプロファイルが何かのタイミングで変わるという現象が起きた。調べてみると,どのプロファイルが採用されるかはネットワークの状態(Default Gatewayの有無など)によって判断されているようである。確かに,スイッチングハブが学内LANに接続していた場合(つまりDefault Gatewayが存在する状態)では「実験1」の4でpingが通らなかった現象は,1分ほど待てば解消された。これはプロファイルが変更されそれに伴い受信の規則でpingが通るようになったものと思われる。

パブリックかプライベートか誰が決める?

そもそもネットワークがパブリックかプライベートかどこで決まるのか? どうもインストール後ネットワークの場所を選択する画面で「ホーム」「社内」(以上プライベート),「パブリック」「ドメイン」を選んだ時に決まるようだプライベートとパブリックを切り替える方法もあるようだが,よくわからない状態でいろいろ触ると後で困ることになるかもしれないのでやっていない。

実験室のPC

さて,実験室のPCだが,ほとんどは受信の規則にパブリックのecho要求はなかった。ドメインとプライベートのみで,プライベートにチェックが入っていた。これが正しい状態だと考えられる。では,なぜパブリックになってしまったPCがあるのか(該当PC:PCD120, 121, 122, 123, 124, 127, PCE137)?これらのPCは,いずれも実験や卒研に使ったものでVMwareあるいはSoftEtherなどネットワーク関連のソフトがインストールされている。そのあたりに何か関係があるのだろうか。

さて,今回の現象がスイッチングハブのポートがMACアドレスを記憶することと何か関係があるのだろうか。おそらく関係ないと思われる。「実験1」の4でpingが通らなかったのは上述したようにファイアウォールの動的プロファイルの選択と受信の規則の齟齬に起因するものであって,スイッチングハブのポートにMACアドレスが記憶されなかったというわけではないだろう。
実際,LANケーブルをスイッチングハブから抜いて再び挿すと,様々なパケットが流れていた。おそらく自分の存在をネットワークの他のPCに伝えているのだろう。その過程で結果的にスイッチングハブのポートにMACアドレスが記憶されるのだろう。
以上から,今回のほぼ丸一日かけて取り組んだ現象は実験に使えそうにない。スイッチングハブのポートがMACアドレスを記憶するかどうかを確かめる手段がないということだ。

発想の転換

では,この「お知らせパケット」を逆手にとって,LANケーブルの抜き差しによってパケットが流れ,それによってスイッチングハブのMACアドレステーブルが更新されるというシナリオで実験させてみてはどうか?
  1. まず,「実験1」を行い,なぜそのような結果(pingが通る)が出たかを考察させる(スイッチングハブがMACアドレスを学習するならこのようなことは起きないはず)。
  2. 次に,パソコンAでパケットキャプチャを行いながらパソコンBのLANケーブルの抜き差しを行う。このとき大量のパケットが流れるとわかりにくいのでフィルタでBのIPアドレスを含むパケットのみキャプチャする。
 この実験で,2でBからパケットが確認できれば,Bはスイッチングハブのポートを通過したことになり,そのタイミングでBのMACアドレスをMACテーブルに記憶したことになる。

追加実験をしてわかったこと

  1. 関係のないトラフィックを押さえるため,実験ではIPv6のチェックを外す。
  2. スイッチ間をストレートケーブルで接続してもちゃんと動く。
  3. よって実験では学内LANとの接続はやめ(トラフィックが多いので),スイッチ間をケーブルで接続する(長めのケーブルが6~7本必要)。 
  4. 先にも書いたように,ネットワークの場所がプライベートになっているPC(PCD120, 121など)もあればパブリックになっているPC(PCD122, 123)もある。
  5. 前者は,学内LANに接続した状態でLANケーブルをスイッチングハブから抜き差しするとプライベートになる(きっとDefault GatewayのARPが解決したのだろう)。
  6. 一方,学内LANに接続していない状態でLANケーブルをスイッチングハブから抜き差しするとパブリックになる。
  7. これらのことから,Default Gatewayがなければパブリック,あればプライベートと認識しているようだ。
  8. したがって,pingを通すには,受信の規則でパブリックとプライベートの両方ともecho要求を「はい」にする。
  9. ただし,後者(PCD122, 123)は同じ操作をしてもプライベートにはならない。
  10. インストール時にパブリックを選択してしまったのかもしれない(ほかの原因かもしれない)。
  11. これらのPCはpingを通すには受信の規則でパブリックのecho要求を「はい」にする。
  12.  1台のPCのLANケーブルを抜き差ししたときのパケットをキャプチャすると大量のTCPパケットが流れていた。
  13. プロトコルの種類はIGMPv3, LLMNR, NBNSなど。
  14.  IGMPv3は,マルチキャストグループに参加し,メンバになるためのもの
  15. LLMNRは,名前解決を要求するパケットをリンクローカル・マルチキャスト・アドレスあてに送信するというもの
  16. NBNSは,NetBIOSネームサービスで使われるプロトコル
  17. 要するに,LANケーブルを抜き差しすれば大量のパケットがPCからスイッチングハブに出ていっている。
  18. これで,MACアドレスが学習されるメカニズムが推察できる。
LANケーブルを抜き差ししたときのパケット



2016年8月16日火曜日

授業の進め方はどうしよう?

講義のコマ数と反転授業

秋学期から始まるネットワークの授業は週3コマ(3限~5限の連続)を全部で15回,しめて45回もある授業です。3コマのうち1コマが講義で2コマが実験です。この授業では反転授業をやってみようと考えています。

授業の流れ

講義の構成

まず,家で動画を見て予習をします。そして,講義日の1コマ目(3限)にその動画のテーマに関する小テストを実施します。その後,小テストの解説を行います。解説が終わったらその日に行う実験についての説明を行います。2コマ目(4限)は実験を行います。そして,実験が終わったら3コマ目(5限)に実験レポートを作成します。最後に実験レポートを教員に確認してもらい,合格したら帰って良しとします。

実験レポート

事前学習と参考図書

2コマ目の実験テーマですが,動画で予習した内容に関係のある実験テーマを設定します。また,事前に学習内容や実験テーマは学生にアナウンスしておき,必要と思われる本を図書館で借りておくように指示しておきます。そして,実験レポートには借りた本を記載する欄を設け,そこに記入させます。こうすることによって,この講義の期間は週に最低1冊の本を図書館から借りなければならないことになります。

実験ノート

2コマ目(4限)の実験では実験ノートへの記載を義務付け,3コマ目(5限)で実験レポートを作成するとき実験ノートを見ながら作成するように指示します。そして,作成したレポートと一緒に実験ノートの内容も確認します。もし,実験ノートに何も書いていなかった場合には再提出です。

2016年8月15日月曜日

いよいよこの秋からネットワーク実験Ⅰ・同演習が始まります!

まだまだ先のことだと思っていた新カリの講義「ネットワーク実験Ⅰ・同実験」がいよいよこの秋から始まります。遅まきながらやっとその準備を今日から始めました。しかし,まだ内容は固まっていません。昨年からいろいろ構想を立てては潰し,また立てては潰しの繰り返しでした。ありきたりの授業だと退屈がって聴いてくれないだろうし,かといって楽しく学べるネットワークの講義や実験なんてあるとは思えないし,右に傾いたり左に傾いたりとなかなか焦点が定まりませんでした。また,コンピュータを使った実験の恐ろしいところは,たとえ簡単な実験であっても想定外のトラブルが発生することです。考えられる全ての原因を事前に把握しておくことなど不可能です。ですから,予期せぬ動作を起こした場合,その原因究明に時間が取られます。そして,何より恐ろしいのは,その間,学生たちは何もしないでただ待っていることです。決して自分たちで解決しようとはしません。本来ならトラブルは最も優れた教材であるはずです。なぜならそのトラブルを解決する過程で多くのことを学ぶはずだからです。しかし,それを学生に期待することはできません。結果,教員は汗だくで必死にトラブルシューティングを行う羽目となり,実験しているのは学生ではなく教員という真に情けない状況が出現するのです。
それはさておき,どのような構成とするか,頭を悩ませるところです。ネットで動画教材をいろいろ探していると,こんなものが見つかりました。


見ての通り,これはITパスポートのオンライン講座(IT塾 講義動画)です。この講座の第84回目講義から第90回目講義までがネットワークになっています。これらの動画は用語の説明が主となっています。使い方としては,家でこれらの動画を見てきて,講義中に関連する小テストとその解説を行うという反転授業が良いのではと考えています。時間も10分未満とお手頃です。全部で10回分あるので不足する分については他の動画を使えばよいと思います。
 また,次のような動画があります。



これは,Iパスワンポイント講座ネットワーク編というシリーズものの最初の動画です。このシリーズは全部で24の動画があります。
 全部無料のe-Learning アイプラスが提供する、情報処理技術者試験講座の中から、「TCP/IPが必要な理由」についてご紹介します。この動画は、ITパスポート試験を目指す方だけではなく、これからコンピュータネットワークについて学ぶ方、LPICレベル1やCCNA、基本情報技術者を目指す方にも、十分お役に立てるかと思います。
とあるように, 先ほどのIT塾 講義動画に比べると本格的なネットワーク講座になっています。
 資格試験の支援のための動画もあります。次の動画はNTTコミュニケーションズが行っているインターネット検定「.com Master ★2009」の解説動画です。



この動画は「NTTコミュニケーションズインターネット検定.com Master★2009公式テキスト」の第3章の解説動画のようですが,残念ながらこの公式テキストは絶版となっています。 このドットコムマスターは,今ではベーシックアドバンスに分かれ,それぞれ公式テキストも出ています。